< Summary

Information
Class: WebApiVersioning.ConfigureSwaggerOptions
Assembly: WebApiVersioning
File(s): /home/runner/work/api-versioining-dot-net/api-versioining-dot-net/WebApiVersioning/ConfigureSwaggerOptions.cs
Line coverage
87%
Covered lines: 21
Uncovered lines: 3
Coverable lines: 24
Total lines: 60
Line coverage: 87.5%
Branch coverage
75%
Covered branches: 3
Total branches: 4
Branch coverage: 75%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
Configure(...)100%22100%
Configure(...)100%11100%
CreateVersionInfo(...)50%2275%

File(s)

/home/runner/work/api-versioining-dot-net/api-versioining-dot-net/WebApiVersioning/ConfigureSwaggerOptions.cs

#LineLine coverage
 1using Asp.Versioning.ApiExplorer;
 2using Microsoft.Extensions.Options;
 3using Microsoft.OpenApi.Models;
 4using Swashbuckle.AspNetCore.SwaggerGen;
 5
 6namespace WebApiVersioning;
 7
 18public class ConfigureSwaggerOptions(IApiVersionDescriptionProvider provider)
 9    : IConfigureNamedOptions<SwaggerGenOptions>
 10{
 11    /// <summary>
 12    /// Configure each API discovered for Swagger Documentation
 13    /// </summary>
 14    /// <param name="options"></param>
 15    public void Configure(SwaggerGenOptions options)
 116    {
 17        // add swagger document for every API version discovered
 718        foreach (var description in provider.ApiVersionDescriptions)
 219        {
 220            options.SwaggerDoc(
 221                description.GroupName,
 222                CreateVersionInfo(description));
 223        }
 124    }
 25
 26    /// <summary>
 27    /// Configure Swagger Options. Inherited from the Interface
 28    /// </summary>
 29    /// <param name="name"></param>
 30    /// <param name="options"></param>
 31    public void Configure(string? name, SwaggerGenOptions options)
 132    {
 133        Configure(options);
 134    }
 35
 36
 37
 38
 39    /// <summary>
 40    /// Create information about the version of the API
 41    /// </summary>
 42    /// <param name="description"></param>
 43    /// <returns>Information about the API</returns>
 44    private OpenApiInfo CreateVersionInfo(
 45        ApiVersionDescription description)
 246    {
 247        var info = new OpenApiInfo()
 248        {
 249            Title = ".NET Web API Versioning",
 250            Version = description.ApiVersion.ToString()
 251        };
 52
 253        if (description.IsDeprecated)
 054        {
 055            info.Description += " This API version has been deprecated. Please use one of the new APIs available from th
 056        }
 57
 258        return info;
 259    }
 60}