protected override void Arrange() { AssemblyLoader.EnsureLoaded <Marker_EdFi_Ods_Composites_Test>(); var compositeMetadataProvider = new CompositesMetadataProvider(); var resourceModel = DomainModelDefinitionsProviderHelper.DomainModelProvider.GetDomainModel() .ResourceModel; var definitionProcessor = new CompositeDefinitionProcessor <CompositeResourceModelBuilderContext, global::EdFi.Ods.Common.Models.Resource.Resource>( new CompositeResourceModelBuilder()); // It is possible to add validation on composite names within the MetadataController logic if it's needed. // Get all the category names var categoryNames = compositeMetadataProvider.GetAllCategories() .First(c => c.Name.Equals("test") && c.DisplayName.Equals("Test")); IReadOnlyList <XElement> compositeDefinitions; compositeMetadataProvider.TryGetCompositeDefinitions(categoryNames.OrganizationCode, categoryNames.Name, out compositeDefinitions); var compositeResources = new List <global::EdFi.Ods.Common.Models.Resource.Resource>(); foreach (var compositeDefinition in compositeDefinitions) { // Enable this for composite xml validation. definitionProcessor.UseCompositeValidation(); var compositeResource = definitionProcessor.Process( compositeDefinition, resourceModel, new CompositeResourceModelBuilderContext()); compositeResources.Add(compositeResource); } var compositesResource = compositeResources.First(c => c.Name.Equals("BaseAssessmentUnflattenedEmbeddedObject")); _embeddedObject = compositesResource.EmbeddedObjects.First(e => e.PropertyName.Equals("AssessmentContentStandard")); }
protected override void Arrange() { _schemaNameMapProvider = new SchemaNameMapProvider( DomainModelProvider.GetDomainModel() .Schemas); var apiSettings = CreateApiSettings(); AssemblyLoader.EnsureLoaded <Marker_EdFi_Ods_Composites_Test>(); var openApiMetadataRouteInformation = new List <IOpenApiMetadataRouteInformation>(); var _resourceModelProvider = Stub <IResourceModelProvider>(); var resourceModel = ResourceModelProvider.GetResourceModel(); A.CallTo(() => _resourceModelProvider.GetResourceModel()).Returns(resourceModel); var openapicontentproviderlist = new List <IOpenApiContentProvider>(); var compositemetadataprovider = new CompositesMetadataProvider(); var defaultPageSieLimitProvider = new DefaultPageSizeLimitProvider(GetConfiguration()); var openApiMetadataDocumentFactory = new OpenApiMetadataDocumentFactory(apiSettings, defaultPageSieLimitProvider); var compositeOpenApiContentProvider = new CompositesOpenApiContentProvider( compositemetadataprovider, ResourceModelProvider, openApiMetadataDocumentFactory); var extensionsOpenApiContentProvider = new ExtensionsOpenApiContentProvider( DomainModelProvider, ResourceModelProvider, SchemaNameMapProvider, openApiMetadataDocumentFactory); var identityprovider = new IdentityOpenApiContentProvider(); openapicontentproviderlist.Add(identityprovider); openapicontentproviderlist.Add(compositeOpenApiContentProvider); openapicontentproviderlist.Add(extensionsOpenApiContentProvider); _openApiMetadataCacheProvider = new OpenApiMetadataCacheProvider( ResourceModelProvider, GetTestRouteInformation(apiSettings).ToList(), openapicontentproviderlist, openApiMetadataDocumentFactory); }
public static void BeforeCompositeResourceModelFeature() { // Ensure that the assembly containing the composites metadata has been loaded AssemblyLoader.EnsureLoaded <Marker_EdFi_Ods_Composites_Test>(); var compositeMetadataProvider = new CompositesMetadataProvider(); FeatureContext.Current.Set(compositeMetadataProvider, FeatureContextKeys.CompositesMetadataProvider); var domainModel = _startup.InternalContainer.Resolve <IDomainModelProvider>() .GetDomainModel(); var resourceModel = new ResourceModel(domainModel); var resourceModelBuilderCompositeProcessor = new CompositeDefinitionProcessor <CompositeResourceModelBuilderContext, Resource>(new CompositeResourceModelBuilder()); FeatureContext.Current.Set(resourceModel, FeatureContextKeys.ResourceModel); FeatureContext.Current.Set(resourceModelBuilderCompositeProcessor, FeatureContextKeys.CompositeDefinitionProcessor); }