protected override void Arrange()
            {
                _testProfileResourceNamesProvider = new TestProfileResourceNamesProvider();

                var studentProgramAssociation = _resourceModelProvider.GetResourceModel()
                                                .GetResourceByFullName(
                    new FullName(
                        EdFiConventions
                        .PhysicalSchemaName,
                        "StudentProgramAssociation"));

                var studentSpecialEducationProgramAssociation = _resourceModelProvider
                                                                .GetResourceModel()
                                                                .GetResourceByFullName(
                    new FullName(
                        EdFiConventions
                        .PhysicalSchemaName,
                        "StudentSpecialEducationProgramAssociation"));

                _expectedFilteredResources = new[]
                {
                    new OpenApiMetadataResource(studentProgramAssociation)
                    {
                        Name = "studentProgramAssociation", Readable = true
                    },
                    new OpenApiMetadataResource(studentProgramAssociation)
                    {
                        Name = "studentProgramAssociation", Readable = true,
                        ContextualResource = studentSpecialEducationProgramAssociation
                    },
                    new OpenApiMetadataResource(studentProgramAssociation)
                    {
                        Name     = "studentProgramAssociation_StudentSpecialEducationProgramAssociation", Readable = true,
                        Writable = true
                    },
                    new OpenApiMetadataResource(studentSpecialEducationProgramAssociation)
                    {
                        Name = "studentSpecialEducationProgramAssociation", Readable = true, Writable = true
                    }
                };

                _schemaNameMapProviderStub = Stub <ISchemaNameMapProvider>();

                var profileResourceModel =
                    new ProfileResourceModel(
                        _resourceModelProvider.GetResourceModel(),
                        _testProfileResourceNamesProvider.GetProfileDefinition("ProfileName"));

                _openApiMetadataDocumentContext =
                    new OpenApiMetadataDocumentContext(
                        _resourceModelProvider.GetResourceModel())
                {
                    ProfileContext =
                        new OpenApiMetadataProfileContext
                    {
                        ProfileName          = "ProfileName",
                        ProfileResourceModel = profileResourceModel
                    }
                };
            }
Exemplo n.º 2
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);
            }
 public ExtensionsOpenApiContentProvider(IDomainModelProvider domainModelProvider,
                                         IResourceModelProvider resourceModelProvider, ISchemaNameMapProvider schemaNameMapProvider)
 {
     _domainModelProvider   = Preconditions.ThrowIfNull(domainModelProvider, nameof(domainModelProvider));
     _resourceModelProvider = Preconditions.ThrowIfNull(resourceModelProvider, nameof(resourceModelProvider));
     _schemaNameMapProvider = Preconditions.ThrowIfNull(schemaNameMapProvider, nameof(schemaNameMapProvider));
 }
        public XsdFileInformationProvider(IAssembliesProvider assembliesProvider,
                                          ISchemaNameMapProvider schemaNameMapProvider)
        {
            _assembliesProvider    = assembliesProvider;
            _schemaNameMapProvider = schemaNameMapProvider;

            _xsdFileInformationByUriSegment = new Lazy <IDictionary <string, XsdFileInformation> >(ParseAssemblies);
        }
Exemplo n.º 5
0
 public ExtensionsOpenApiContentProvider(IDomainModelProvider domainModelProvider,
                                         IResourceModelProvider resourceModelProvider, ISchemaNameMapProvider schemaNameMapProvider,
                                         IOpenApiMetadataDocumentFactory documentFactory)
 {
     _domainModelProvider            = Preconditions.ThrowIfNull(domainModelProvider, nameof(domainModelProvider));
     _resourceModelProvider          = Preconditions.ThrowIfNull(resourceModelProvider, nameof(resourceModelProvider));
     _schemaNameMapProvider          = Preconditions.ThrowIfNull(schemaNameMapProvider, nameof(schemaNameMapProvider));
     _openApiMetadataDocumentFactory = Preconditions.ThrowIfNull(documentFactory, nameof(documentFactory));
 }
        public LegacyOpenApiMetadataCacheProvider(
            IDomainModelProvider domainModelProvider,
            IResourceModelProvider resourceModelProvider,
            IProfileResourceModelProvider profileResourceModelProvider,
            IProfileResourceNamesProvider profileResourceNamesProvider,
            ICompositesMetadataProvider compositesMetadataProvider,
            ISchemaNameMapProvider schemaNameMapProvider,
            IOpenApiMetadataRouteProvider openApiMetadataRouteProvider,
            IOpenApiContentProvider[] openApiContentProviders)
        {
            _domainModelProvider          = domainModelProvider;
            _resourceModelProvider        = resourceModelProvider;
            _compositesMetadataProvider   = compositesMetadataProvider;
            _schemaNameMapProvider        = schemaNameMapProvider;
            _openApiMetadataRouteProvider = openApiMetadataRouteProvider;
            _profileResourceModelProvider = profileResourceModelProvider;
            _profileResourceNamesProvider = profileResourceNamesProvider;

            _openApiMetadataResourceFilters =
                new Dictionary <string, IOpenApiMetadataResourceStrategy>(StringComparer.InvariantCultureIgnoreCase)
            {
                { Descriptors, new SwaggerUiDescriptorOnlyStrategy() },
                { Resources, new SwaggerUiResourceOnlyStrategy() },
                { Extensions, new SdkGenExtensionResourceStrategy() },
                { EdFi, new SdkGenAllEdFiResourceStrategy() },
                { Profiles, new OpenApiProfileStrategy() },
                { Composites, new OpenApiCompositeStrategy(_compositesMetadataProvider) },
                { All, new SdkGenAllResourceStrategy() }
            };

            _openApiMetadataSectionByRoute =
                new Dictionary <string, Func <IEnumerable <OpenApiContent> > >
            {
                { MetadataRouteConstants.Schema, CreateSchemaSpecificSections },
                { MetadataRouteConstants.All, CreateSdkGenAllSection },
                { MetadataRouteConstants.Profiles, CreateProfileSection },
                { MetadataRouteConstants.Composites, CreateCompositeSection },
                { MetadataRouteConstants.ResourceTypes, CreateSwaggerUiSection }
            };

            foreach (var openApiContentProvider in openApiContentProviders)
            {
                var routeName = openApiContentProvider.RouteName;

                if (_openApiMetadataSectionByRoute.ContainsKey(routeName))
                {
                    throw new InvalidOperationException(
                              $"Duplicate metadata route '{routeName}' encountered during initialization.  Source: {openApiContentProvider.GetType().FullName}");
                }

                _openApiMetadataSectionByRoute.Add(routeName, openApiContentProvider.GetOpenApiContent);
            }

            _swaggerMetadataCache =
                new ConcurrentDictionary <string, OpenApiContent>(StringComparer.InvariantCultureIgnoreCase);
        }
Exemplo n.º 7
0
        public EnabledOpenApiMetadataDocumentProvider(
            IOpenApiMetadataCacheProvider openApiMetadataCacheProvider,
            IList <IOpenApiMetadataRouteInformation> routeInformations,
            ISchemaNameMapProvider schemaNameMapProvider,
            ApiSettings apiSettings)
        {
            _openApiMetadataCacheProvider = openApiMetadataCacheProvider;
            _routeInformations            = routeInformations;
            _useReverseProxyHeaders       = apiSettings.UseReverseProxyHeaders.HasValue && apiSettings.UseReverseProxyHeaders.Value;

            _schemaNameMaps = new Lazy <IReadOnlyList <SchemaNameMap> >(schemaNameMapProvider.GetSchemaNameMaps);
        }
Exemplo n.º 8
0
 public ProfilesAwareHttpControllerSelector(
     HttpConfiguration config,
     IProfileResourceNamesProvider profileResourceNamesProvider,
     ISchemaNameMapProvider schemaNameMapProvider)
     : base(config)
 {
     _configuration = config;
     _profileResourceNamesProvider = profileResourceNamesProvider;
     _duplicates            = new HashSet <string>(StringComparer.OrdinalIgnoreCase);
     _controllers           = new Lazy <Dictionary <string, HttpControllerDescriptor> >(InitializeControllerDictionary);
     _schemaNameMapProvider = schemaNameMapProvider;
 }
Exemplo n.º 9
0
        public HttpRouteConfigurator(IRouteConfiguration[] routeConfigurations,
                                     IProfileResourceNamesProvider profileResourceNamesProvider,
                                     ISchemaNameMapProvider schemaNameMapProvider, bool useSchoolYear = false)
        {
            _routeConfigurations = Preconditions.ThrowIfNull(routeConfigurations, nameof(routeConfigurations));

            _profileResourceNamesProvider = Preconditions.ThrowIfNull(
                profileResourceNamesProvider, nameof(profileResourceNamesProvider));

            _schemaNameMapProvider = Preconditions.ThrowIfNull(schemaNameMapProvider, nameof(schemaNameMapProvider));

            _useSchoolYear = useSchoolYear;
        }
Exemplo n.º 10
0
            protected override void Arrange()
            {
                _swaggerDocumentContext = new SwaggerDocumentContext(
                    DomainModelDefinitionsProviderHelper
                    .ResourceModelProvider
                    .GetResourceModel());

                _genericSwaggerDefinitionFactory =
                    SwaggerDocumentFactoryHelper.CreateSwaggerDefinitionsFactory(
                        _swaggerDocumentContext);

                _domainModelProvider = DomainModelDefinitionsProviderHelper.DomainModelProvider;

                _schemaNameMapProvider = _domainModelProvider.GetDomainModel()
                                         .SchemaNameMapProvider;
            }
            protected override void Arrange()
            {
                _openApiMetadataDocumentContext = new OpenApiMetadataDocumentContext(
                    DomainModelDefinitionsProviderHelper
                    .ResourceModelProvider
                    .GetResourceModel());

                _genericOpenApiMetadataDefinitionFactory =
                    OpenApiMetadataDocumentFactoryHelper.CreateOpenApiMetadataDefinitionsFactory(
                        _openApiMetadataDocumentContext);

                _domainModelProvider = DomainModelDefinitionsProviderHelper.DomainModelProvider;

                _schemaNameMapProvider = _domainModelProvider.GetDomainModel()
                                         .SchemaNameMapProvider;
            }
Exemplo n.º 12
0
 private IEnumerable <string> GetSchemaProperCaseNames(
     List <ResourceProfileData> profileDatas,
     ISchemaNameMapProvider schemaNameMapProvider)
 {
     return(new[] { EdFiConventions.ProperCaseName }
            .Concat(
                TemplateContext.IsExtension
                 ? profileDatas
                .SelectMany(pd => pd.SuppliedResource.AllContainedItemTypes)
                .Select(x => x.FullName.Schema)
                .Except(EdFiConventions.PhysicalSchemaName)
                .Distinct()
                 : new string[0])
            .Select(
                sch => schemaNameMapProvider.GetSchemaMapByPhysicalName(sch)
                .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);
            }
Exemplo n.º 14
0
        public FilterContext GetExtensionContext(string properCaseName)
        {
            // Supports the NullFilterContext usage
            if (_filterProvider == null)
            {
                return(this);
            }

            ISchemaNameMapProvider schemaNameMapProvider = UnfilteredResourceClass.ResourceModel.SchemaNameMapProvider;

            if (schemaNameMapProvider == null)
            {
                return(this);
            }

            var logicalName = schemaNameMapProvider.GetSchemaMapByProperCaseName(properCaseName)
                              .LogicalName;

            var extensionDefinition = Definition.XPathSelectElement(
                $"Extension[@name='{logicalName}']");

            if (extensionDefinition == null)
            {
                return(null);
            }

            Extension extensionMember;

            if (!UnfilteredResourceClass.ExtensionByName.TryGetValue(properCaseName, out extensionMember))
            {
                throw new Exception(
                          $"Unable to find extension '{properCaseName}' of resource class '{UnfilteredResourceClass.Name}'.");
            }

            return(new FilterContext(_filterProvider, extensionDefinition, extensionMember.ObjectType));
        }
Exemplo n.º 15
0
 public ApiDefaultRouteConfiguration(ISchemaNameMapProvider schemaNameMapProvider)
 {
     _schemaNameMapProvider = Preconditions.ThrowIfNull(schemaNameMapProvider, nameof(schemaNameMapProvider));
 }
Exemplo n.º 16
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ResourceClaimUriProvider" /> class using the supplied schema name map provider.
 /// </summary>
 /// <param name="schemaNameMapProvider">The provider for mapping between schema names.</param>
 public ResourceClaimUriProvider(ISchemaNameMapProvider schemaNameMapProvider)
 {
     _schemaNameMapProvider = Preconditions.ThrowIfNull(schemaNameMapProvider, nameof(schemaNameMapProvider));
 }