< Summary - Kestrun — Combined Coverage

Information
Class: Kestrun.OpenApi.OpenApiSpecVersionExtensions
Assembly: Kestrun
File(s): /home/runner/work/Kestrun/Kestrun/src/CSharp/Kestrun/OpenApi/OpenApiSpecVersionExtensions.cs
Tag: Kestrun/Kestrun@ca54e35c77799b76774b3805b6f075cdbc0c5fbe
Line coverage
0%
Covered lines: 0
Uncovered lines: 17
Coverable lines: 17
Total lines: 45
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 45
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100 12/12/2025 - 17:27:19 Line coverage: 0% (0/15) Branch coverage: 0% (0/40) Total lines: 43 Tag: Kestrun/Kestrun@826bf9dcf9db118c5de4c78a3259bce9549f0dcd12/21/2025 - 06:07:10 Line coverage: 0% (0/17) Branch coverage: 0% (0/45) Total lines: 45 Tag: Kestrun/Kestrun@8cf7f77e55fd1fd046ea4e5413eb9ef96e49fe6a 12/12/2025 - 17:27:19 Line coverage: 0% (0/15) Branch coverage: 0% (0/40) Total lines: 43 Tag: Kestrun/Kestrun@826bf9dcf9db118c5de4c78a3259bce9549f0dcd12/21/2025 - 06:07:10 Line coverage: 0% (0/17) Branch coverage: 0% (0/45) Total lines: 45 Tag: Kestrun/Kestrun@8cf7f77e55fd1fd046ea4e5413eb9ef96e49fe6a

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ParseOpenApiSpecVersion(...)0%1640400%
ToVersionString(...)0%3050%

File(s)

/home/runner/work/Kestrun/Kestrun/src/CSharp/Kestrun/OpenApi/OpenApiSpecVersionExtensions.cs

#LineLine coverage
 1using Microsoft.OpenApi;
 2
 3namespace Kestrun.OpenApi;
 4/// <summary>
 5/// Extension methods for OpenApiSpecVersion enum.
 6/// </summary>
 7public static class OpenApiSpecVersionExtensions
 8{
 9    /// <summary>
 10    /// Converts a string representation of an OpenAPI spec version to the corresponding enum value.
 11    /// </summary>
 12    /// <param name="version">The string representation of the OpenAPI spec version.</param>
 13    /// <returns>The corresponding <see cref="OpenApiSpecVersion"/> enum value.</returns>
 14    /// <exception cref="ArgumentException">Thrown when the provided version string is not recognized.</exception>
 15    public static OpenApiSpecVersion ParseOpenApiSpecVersion(this string version)
 16    {
 017        var normalized = version.TrimStart('v', 'V');  // e.g. "2.0", "3.0", "3.1"
 018        return normalized switch
 019        {
 020            "2.0" => OpenApiSpecVersion.OpenApi2_0,
 021            "3.0" or "3.0.0" or "3.0.1" or "3.0.2" or "3.0.3" or "3.0.4" => OpenApiSpecVersion.OpenApi3_0,
 022            "3.1" or "3.1.0" or "3.1.1" => OpenApiSpecVersion.OpenApi3_1,
 023            "3.2" or "3.2.0" => OpenApiSpecVersion.OpenApi3_2,
 024            _ => throw new ArgumentException($"Unsupported OpenAPI spec version: {version}", nameof(version)),
 025        };
 26    }
 27
 28    /// <summary>
 29    /// Converts an <see cref="OpenApiSpecVersion"/> enum value to its string representation.
 30    /// </summary>
 31    /// <param name="specVersion">The <see cref="OpenApiSpecVersion"/> enum value.</param>
 32    /// <returns>The string representation of the OpenAPI spec version.</returns>
 33    /// <exception cref="ArgumentOutOfRangeException">Thrown when the provided enum value is not recognized.</exception>
 34    public static string ToVersionString(this OpenApiSpecVersion specVersion)
 35    {
 036        return specVersion switch
 037        {
 038            OpenApiSpecVersion.OpenApi2_0 => "2.0",
 039            OpenApiSpecVersion.OpenApi3_0 => "3.0.4",
 040            OpenApiSpecVersion.OpenApi3_1 => "3.1.2",
 041            OpenApiSpecVersion.OpenApi3_2 => "3.2.0",
 042            _ => throw new ArgumentOutOfRangeException(nameof(specVersion), specVersion, null)
 043        };
 44    }
 45}