Example #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>());

                var openApiMetadataRouteProviderStub = Stub <IOpenApiMetadataRouteProvider>();

                openApiMetadataRouteProviderStub.Stub(x => x.GetAllRoutes())
                .Return(
                    GetTestRoutes()
                    .Where(r => r.GetDataTokenRouteName() != MetadataRouteConstants.Profiles));

                _openApiMetadataCacheProvider = new LegacyOpenApiMetadataCacheProvider(
                    DomainModelProvider,
                    ResourceModelProvider,
                    _profileResourceModelProvider,
                    _profileResourceNamesProvider,
                    _compositesMetadataProvider,
                    SchemaNameMapProvider,
                    openApiMetadataRouteProviderStub,
                    TestOpenApiContentProviders);
            }
Example #2
0
            protected override void Arrange()
            {
                AssemblyLoader.EnsureLoaded <Marker_EdFi_Ods_Composites_Test>();
                AssemblyLoader.EnsureLoaded <Marker_EdFi_Ods_Profiles_Test>();

                _compositesMetadataProvider = new CompositesMetadataProvider();

                _profileResourceNamesProvider = new ProfileResourceNamesProvider();
                _profileResourceModelProvider = new ProfileResourceModelProvider(ResourceModelProvider, new ProfileResourceNamesProvider());

                var openApiMetadataRouteProviderStub = Stub <IOpenApiMetadataRouteProvider>();

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

                _openApiMetadataCacheProvider = new LegacyOpenApiMetadataCacheProvider(
                    DomainModelProvider,
                    ResourceModelProvider,
                    _profileResourceModelProvider,
                    _profileResourceNamesProvider,
                    _compositesMetadataProvider,
                    SchemaNameMapProvider,
                    openApiMetadataRouteProviderStub,
                    TestOpenApiContentProviders);
            }
            protected override void Arrange()
            {
                _compositesMetadataProvider = Stub <ICompositesMetadataProvider>();

                A.CallTo(() => _compositesMetadataProvider.GetAllCategories())
                .Returns(new List <CompositeCategory>());

                _profileResourceNamesProvider = new ProfileResourceNamesProvider();

                _profileResourceModelProvider = new ProfileResourceModelProvider(
                    ResourceModelProvider, new ProfileResourceNamesProvider());

                var _openAPIMetadataRouteInformation = Stub <List <IOpenApiMetadataRouteInformation> >();
                var _openApiContentProviders         = Stub <List <IOpenApiContentProvider> >();

                var openApiMetadataRouteInformation = new List <IOpenApiMetadataRouteInformation>();

                var defaultPageSizeLimitProvider = new DefaultPageSizeLimitProvider(GetConfiguration());

                var openApiMetadataDocumentFactory = new OpenApiMetadataDocumentFactory(CreateApiSettings(), defaultPageSizeLimitProvider);

                var resourceModelProvider = Stub <IResourceModelProvider>();

                var resourceModel = ResourceModelProvider.GetResourceModel();

                A.CallTo(() => resourceModelProvider.GetResourceModel()).Returns(resourceModel);

                _openApiMetadataCacheProvider = new OpenApiMetadataCacheProvider(
                    resourceModelProvider, GetTestRouteInformation(CreateApiSettings()).ToList(), TestOpenApiContentProviders, openApiMetadataDocumentFactory);
            }
Example #4
0
        public ProfilesHttpConfigurator(IApiKeyContextProvider apiKeyContextProvider,
                                        IProfileResourceNamesProvider profileResourceNamesProvider)
        {
            _apiKeyContextProvider = Preconditions.ThrowIfNull(apiKeyContextProvider, nameof(apiKeyContextProvider));

            _profileResourceNamesProvider = Preconditions.ThrowIfNull(
                profileResourceNamesProvider, nameof(profileResourceNamesProvider));
        }
        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);
        }
Example #6
0
 public ProfilesOpenApiContentProvider(IProfileResourceModelProvider profileResourceModelProvider,
                                       IProfileResourceNamesProvider profileResourceNamesProvider,
                                       IResourceModelProvider resourceModelProvider,
                                       IOpenApiMetadataDocumentFactory documentFactory)
 {
     _profileResourceModelProvider   = Preconditions.ThrowIfNull(profileResourceModelProvider, nameof(profileResourceModelProvider));
     _profileResourceNamesProvider   = Preconditions.ThrowIfNull(profileResourceNamesProvider, nameof(profileResourceNamesProvider));
     _resourceModelProvider          = Preconditions.ThrowIfNull(resourceModelProvider, nameof(resourceModelProvider));
     _openApiMetadataDocumentFactory = Preconditions.ThrowIfNull(documentFactory, nameof(documentFactory));
 }
Example #7
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;
 }
        public ProfilesOpenApiContentProvider(IProfileResourceModelProvider profileResourceModelProvider,
                                              IProfileResourceNamesProvider profileResourceNamesProvider,
                                              IResourceModelProvider resourceModelProvider)
        {
            _profileResourceModelProvider =
                Preconditions.ThrowIfNull(profileResourceModelProvider, nameof(profileResourceModelProvider));

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

            _resourceModelProvider = Preconditions.ThrowIfNull(resourceModelProvider, nameof(resourceModelProvider));
        }
Example #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;
        }
Example #10
0
        public object Generate(TemplateContext templateContext)
        {
            TemplateContext       = Preconditions.ThrowIfNull(templateContext, nameof(templateContext));
            ResourceModelProvider = new ResourceModelProvider(TemplateContext.DomainModelProvider);

            ValidatingProfileMetadataProvider = new ValidatingProfileMetadataProvider(TemplateContext.ProjectPath, ResourceModelProvider);
            ProfileResourceNamesProvider      = ValidatingProfileMetadataProvider;
            ProfileResourceModelProvider      = new ProfileResourceModelProvider(ResourceModelProvider, ValidatingProfileMetadataProvider);
            ProjectHasProfileDefinition       = ValidatingProfileMetadataProvider.HasProfileData;

            Configure();

            return(Build());
        }
Example #11
0
        public ResourceProfileProvider(
            IResourceModelProvider resourceModelProvider,
            TemplateContext templateContext)
        {
            var validatingProfileMetadataProvider = new ValidatingProfileMetadataProvider(
                templateContext.ProjectPath,
                resourceModelProvider);

            _profileResourceNamesProvider = validatingProfileMetadataProvider;

            _profileResourceModelProvider = new ProfileResourceModelProvider(
                resourceModelProvider,
                validatingProfileMetadataProvider);

            ProjectHasProfileDefinition = validatingProfileMetadataProvider.HasProfileData;

            ResourceModel = resourceModelProvider.GetResourceModel();
        }
Example #12
0
 public AdminProfileNamesPublisher(IUsersContextFactory usersContextFactory, IProfileResourceNamesProvider profileResourceNamesProvider)
 {
     _usersContextFactory          = Preconditions.ThrowIfNull(usersContextFactory, nameof(usersContextFactory));
     _profileResourceNamesProvider = Preconditions.ThrowIfNull(profileResourceNamesProvider, nameof(profileResourceNamesProvider));
 }
Example #13
0
 public ProfilesAuthorizationFilter(IApiKeyContextProvider apiKeyContextProvider, IProfileResourceNamesProvider profileResourceNamesProvider)
 {
     _apiKeyContextProvider        = apiKeyContextProvider;
     _profileResourceNamesProvider = profileResourceNamesProvider;
 }