public void GetDocs( SwaggerAggregateRoute aggregateRoute, IEnumerable <RouteDocs> routeDocs, OpenApiOperation expected) { IRoutesDocumentationProvider provider = Substitute.For <IRoutesDocumentationProvider>(); provider.GetRouteDocs(Arg.Any <IEnumerable <string> >(), Arg.Any <IEnumerable <RouteOptions> >()) .Returns(routeDocs); var generator = new AggregateRouteDocumentationGenerator( Routes, provider, Substitute.For <IDefinedAggregatorProvider>(), AggregateRouteDocumentationGenerator.DefaultPostProcess, Substitute.For <ISchemaGenerator>()); OpenApiPathItem docs = generator.GenerateDocs(aggregateRoute, new OpenApiDocument()); OpenApiOperation actual = docs.Operations.First().Value; actual.Summary.Should().Be(expected.Summary); actual.Description.Should().Be(expected.Description); actual.Parameters.Should().HaveCount(expected.Parameters.Count); for (int i = 0; i < expected.Parameters.Count; i++) { actual.Parameters[i].Name.Should().Be(expected.Parameters[i].Name); actual.Parameters[i].In.Should().Be(expected.Parameters[i].In); actual.Parameters[i].Description.Should().Be(expected.Parameters[i].Description); } }
/// <summary> /// Initializes a new instance of the <see cref="AggregateRouteDocumentationGenerator"/> class. /// </summary> /// <param name="routes">Routes.</param> /// <param name="routesDocumentationProvider">Routes documentation provider.</param> /// <param name="definedAggregatorProvider">Aggregator provider.</param> public AggregateRouteDocumentationGenerator( IOptions <List <RouteOptions> > routes, IRoutesDocumentationProvider routesDocumentationProvider, IDefinedAggregatorProvider definedAggregatorProvider, Action <SwaggerAggregateRoute, IEnumerable <RouteDocs>, OpenApiPathItem, OpenApiDocument> postProcess, ISchemaGenerator schemaGenerator) { _routes = routes; _routesDocumentationProvider = routesDocumentationProvider; _definedAggregatorProvider = definedAggregatorProvider; _postProcess = postProcess; _schemaGenerator = schemaGenerator; }