public void Should_be_a_swagger_document_for_each_category_in_the_CompositesMetadataProvider()
            {
                var compositeCategoryNames = _compositesMetadataProvider.GetAllCategories()
                                             .Select(c => c.Name);

                Assert.That(
                    _actualMetadata.Select(m => m.Name)
                    .OrderBy(n => n),
                    Is.EquivalentTo(compositeCategoryNames));
            }
예제 #2
0
            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"));
            }