protected override void Arrange() { _compositesMetadataProvider = Stub <ICompositesMetadataProvider>(); var routes = new List <XElement>(OpenApiCompositeHelper.Routes).ToReadOnlyList(); var definitions = new List <XElement>(OpenApiCompositeHelper.CompositeDefinitions).ToReadOnlyList(); A.CallTo(() => _compositesMetadataProvider.TryGetRoutes( A <string> ._, A <string> ._, out routes)) .Returns(true); A.CallTo(() => _compositesMetadataProvider.TryGetCompositeDefinitions( A <string> ._, A <string> ._, out definitions)) .Returns(true); _swaggerDocumentContext = new SwaggerDocumentContext( _resourceModelProvider.GetResourceModel()) { CompositeContext = new SwaggerCompositeContext { CategoryName = OpenApiCompositeHelper.CategoryName } }; }
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>(); _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); }
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); }
public CompositesOpenApiContentProvider(ICompositesMetadataProvider compositesMetadataProvider, IResourceModelProvider resourceModelProvider) { _compositesMetadataProvider = Preconditions.ThrowIfNull( compositesMetadataProvider, nameof(compositesMetadataProvider)); _resourceModelProvider = Preconditions.ThrowIfNull(resourceModelProvider, nameof(resourceModelProvider)); }
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); }
public CompositeResourceController( ICompositeResourceResponseProvider compositeResourceResponseProvider, ICompositesMetadataProvider compositeMetadataProvider, IRESTErrorProvider restErrorProvider, IDefaultPageSizeLimitProvider defaultPageSizeLimitProvider) { _compositeResourceResponseProvider = compositeResourceResponseProvider; _compositeMetadataProvider = compositeMetadataProvider; _restErrorProvider = restErrorProvider; _defaultPageSizeLimitProvider = defaultPageSizeLimitProvider; }
public CompositesOpenApiContentProvider(ICompositesMetadataProvider compositesMetadataProvider, IResourceModelProvider resourceModelProvider, IOpenApiMetadataDocumentFactory openApiMetadataDocumentFactory) { _compositesMetadataProvider = Preconditions.ThrowIfNull( compositesMetadataProvider, nameof(compositesMetadataProvider)); _resourceModelProvider = Preconditions.ThrowIfNull(resourceModelProvider, nameof(resourceModelProvider)); _openApiMetadataDocumentFactory = Preconditions.ThrowIfNull( openApiMetadataDocumentFactory, nameof(openApiMetadataDocumentFactory)); }
public CompositeResourceController( ICompositeResourceResponseProvider compositeResourceResponseProvider, ICompositesMetadataProvider compositeMetadataProvider, IRESTErrorProvider restErrorProvider, ApiSettings apiSettings) { _compositeResourceResponseProvider = compositeResourceResponseProvider; _compositeMetadataProvider = compositeMetadataProvider; _restErrorProvider = restErrorProvider; _isEnabled = apiSettings.IsFeatureEnabled(ApiFeature.Composites.GetConfigKeyName()); }
public CompositesRouteConfiguration(ICompositesMetadataProvider compositesMetadataProvider) { _compositesMetadataProvider = Preconditions.ThrowIfNull(compositesMetadataProvider, nameof(compositesMetadataProvider)); }
protected override void Arrange() { _compositesMetadataProvider = Stub <ICompositesMetadataProvider>(); var definitions = new List <XElement>(OpenApiCompositeHelper.CompositeDefinitions).ToReadOnlyList(); var routes = new List <XElement>(OpenApiCompositeHelper.Routes).ToReadOnlyList(); A.CallTo( () => _compositesMetadataProvider.TryGetCompositeDefinitions( A <string> ._, A <string> ._, out definitions)) .Returns(true); A.CallTo( () => _compositesMetadataProvider.TryGetRoutes( A <string> ._, A <string> ._, out routes)) .Returns(true); _swaggerDocumentContext = new SwaggerDocumentContext( _resourceModelProvider.GetResourceModel()) { CompositeContext = new SwaggerCompositeContext { CategoryName = OpenApiCompositeHelper .CategoryName } }; _filteredResources = new OpenApiCompositeStrategy(_compositesMetadataProvider) .GetFilteredResources(_swaggerDocumentContext); var assessmentResource = _resourceModelProvider .GetResourceModel() .GetResourceByFullName(new FullName(EdFiConventions.PhysicalSchemaName, "Assessment")); _expectedStrategyAppliedResources = OpenApiCompositeHelper.Routes .Where(r => !IsBaseResourceRoute(r)) .Select( r => new SwaggerPathsResource(assessmentResource) { CompositeResourceContext = new CompositeResourceContext(), Path = GetCompositeResourcePath( assessmentResource, r) .ToCamelCase(), OperationId = GetCompositeResourceOperationId( assessmentResource, r), Readable = true, Writable = false }) .Concat( new[] { new SwaggerPathsResource(assessmentResource) { CompositeResourceContext = new CompositeResourceContext(), Path = $"{_swaggerDocumentContext.CompositeContext.CategoryName}/{assessmentResource.PluralName}", OperationId = "getAssessments", Readable = true, Writable = false } }); }
public CompositesRouteConvention(ICompositesMetadataProvider compositesMetadataProvider, ApiSettings apiSettings) { _compositesMetadataProvider = compositesMetadataProvider; _apiSettings = apiSettings; }
public OpenApiCompositeStrategy(ICompositesMetadataProvider compositesMetadataProvider) { _compositesMetadataProvider = compositesMetadataProvider; }