예제 #1
0
            protected override void Arrange()
            {
                _compositesMetadataProvider = Stub <ICompositesMetadataProvider>();

                _compositesMetadataProvider.Stub(x => x.GetAllCategories())
                .Return(new List <CompositeCategory>());

                _profileResourceModelProvider = Stub <IProfileResourceModelProvider>();
                _profileResourceNamesProvider = Stub <IProfileResourceNamesProvider>();

                _profileResourceNamesProvider.Stub(x => x.GetProfileResourceNames())
                .Return(new List <ProfileAndResourceNames>());

                _schemaNameMapProvider =
                    new SchemaNameMapProvider(
                        DomainModelProvider.GetDomainModel()
                        .Schemas);

                var openApiMetadataRouteProviderStub = Stub <IOpenApiMetadataRouteProvider>();

                openApiMetadataRouteProviderStub.Stub(x => x.GetAllRoutes())
                .Return(GetTestRoutes());

                _openApiMetadataCacheProvider = new LegacyOpenApiMetadataCacheProvider(
                    DomainModelProvider,
                    ResourceModelProvider,
                    _profileResourceModelProvider,
                    _profileResourceNamesProvider,
                    _compositesMetadataProvider,
                    _schemaNameMapProvider,
                    openApiMetadataRouteProviderStub,
                    TestOpenApiContentProviders);
            }
예제 #2
0
        private static SchemaNameMapProvider GetSchemaNameMapProvider(string logicalSchemaName, string physicalSchemaName)
        {
            var domainModelDefinitionsProvider = A.Fake <IDomainModelDefinitionsProvider>();

            A.CallTo(() => domainModelDefinitionsProvider.GetDomainModelDefinitions())
            .Returns(
                new DomainModelDefinitions(
                    new SchemaDefinition(logicalSchemaName, physicalSchemaName),
                    new AggregateDefinition[0],
                    new EntityDefinition[0],
                    new AssociationDefinition[0]));

            // Add a second schema to demonstrate correct matching with multiple schema entries
            var domainModelDefinitionsProvider2 = A.Fake <IDomainModelDefinitionsProvider>();

            A.CallTo(() => domainModelDefinitionsProvider2.GetDomainModelDefinitions())
            .Returns(
                new DomainModelDefinitions(
                    new SchemaDefinition("AnotherSchema", "another"),
                    new AggregateDefinition[0],
                    new EntityDefinition[0],
                    new AssociationDefinition[0]));

            var schemaDefinitions =
                new DomainModelProvider(
                    new[]
            {
                domainModelDefinitionsProvider, domainModelDefinitionsProvider2
            })
                .GetDomainModel()
                .Schemas;

            return(new SchemaNameMapProvider(schemaDefinitions));
        }
예제 #3
0
            protected override void Act()
            {
                IDomainModelProvider domainModelProvider =
                    new DomainModelProvider(
                        new[]
                {
                    _domainModelDefinitionsProvider
                });

                _domainModel = domainModelProvider.GetDomainModel();
            }
예제 #4
0
            public void Should_be_a_valid_swagger_document_for_each_extension_schema_in_the_domain_model()
            {
                var extensionUriSegments = DomainModelProvider.GetDomainModel()
                                           .Schemas.Select(
                    d => _schemaNameMapProvider.GetSchemaMapByLogicalName(d.LogicalName)
                    .UriSegment)
                                           .Where(
                    s =>
                    !s.Equals(EdFiConventions.UriSegment));

                Assert.That(_actualMetadata.Select(m => m.Name), Is.EquivalentTo(extensionUriSegments));
            }
예제 #5
0
            protected override void Act()
            {
                var domainModel =
                    new DomainModelProvider(
                        new IDomainModelDefinitionsProvider[]
                {
                    new DomainModelDefinitionsProvider(), new EdFiDomainModelDefinitionsProvider()
                }).GetDomainModel();

                ExtensionsConventions.GetAggregateExtensionMemberName(
                    domainModel.Entities.FirstOrDefault(e => e.Name == "StaffLeaveExtension"));
            }
예제 #6
0
            protected override void Act()
            {
                _expectedResult = "TestExtension_StaffLeaveReasons";

                var domainModel =
                    new DomainModelProvider(
                        new IDomainModelDefinitionsProvider[]
                {
                    new DomainModelDefinitionsProvider(), new EdFiDomainModelDefinitionsProvider()
                }).GetDomainModel();

                _actualResult = ExtensionsConventions.GetAggregateExtensionMemberName(
                    domainModel.Entities.FirstOrDefault(e => e.Name == "StaffLeaveReason"));
            }
예제 #7
0
            protected override void Act()
            {
                var domainModel =
                    new DomainModelProvider(
                        new IDomainModelDefinitionsProvider[]
                {
                    new DomainModelDefinitionsProvider(), new EdFiDomainModelDefinitionsProvider()
                }).GetDomainModel();

                _entity = domainModel.Entities.First(e => e.Name == _entityName);

                _expectedResult =
                    $"{Namespaces.Entities.NHibernate.BaseNamespace}.{_entity.Aggregate.AggregateRoot.Name}Aggregate.{_extensionPropercaseName}.{_entity.Name}";

                _actualResult = _entity.EntityTypeFullName(_extensionPropercaseName);
            }
예제 #8
0
            protected override void Act()
            {
                var domainModel =
                    new DomainModelProvider(
                        new IDomainModelDefinitionsProvider[]
                {
                    new DomainModelDefinitionsProvider(), new EdFiDomainModelDefinitionsProvider()
                }).GetDomainModel();

                _staffLeaveEntity = domainModel.Entities.First(e => e.Name == "StaffLeave");

                _expectedResult =
                    $"{Namespaces.Entities.NHibernate.BaseNamespace}.{_staffLeaveEntity.Name}Aggregate.{EdFiConventions.ProperCaseName}.{_staffLeaveEntity.Name}";

                _actualResult = _staffLeaveEntity.EntityTypeFullName(EdFiConventions.ProperCaseName);
            }
            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);
            }
예제 #10
0
        internal static Resource_Resource GetTestResourceForWithAnExtension()
        {
            IDomainModelDefinitionsProvider domainCoreDefinitionProvider = BuildCoreModelEntityDefinitionsProvider();
            IDomainModelDefinitionsProvider extensionDefinitionProvider  = BuildTestExtensionDefinitionsProvider();

            List <IDomainModelDefinitionsProvider> providerList = new List <IDomainModelDefinitionsProvider>
            {
                domainCoreDefinitionProvider, extensionDefinitionProvider
            };

            DomainModelProvider ddm = new DomainModelProvider(providerList);

            var domainModel = ddm.GetDomainModel();

            var resourceModel = new ResourceModel(domainModel);
            var resource      = resourceModel.GetResourceByFullName(new FullName(EdFiConventions.PhysicalSchemaName, "CoreEntity"));

            //  force the Lazy-initialization to execute (it will be easier to debug).
            var extensions = resource.Extensions;

            return(resource);
        }