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);
            }
        }
Ejemplo n.º 2
0
 /// <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;
 }