< 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@0d738bf294e6281b936d031e1979d928007495ff
Line coverage
0%
Covered lines: 0
Uncovered lines: 15
Coverable lines: 15
Total lines: 43
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 40
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@826bf9dcf9db118c5de4c78a3259bce9549f0dcd 12/12/2025 - 17:27:19 Line coverage: 0% (0/15) Branch coverage: 0% (0/40) Total lines: 43 Tag: Kestrun/Kestrun@826bf9dcf9db118c5de4c78a3259bce9549f0dcd

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ParseOpenApiSpecVersion(...)0%1332360%
ToVersionString(...)0%2040%

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            _ => throw new ArgumentException($"Unsupported OpenAPI spec version: {version}", nameof(version)),
 024        };
 25    }
 26
 27    /// <summary>
 28    /// Converts an <see cref="OpenApiSpecVersion"/> enum value to its string representation.
 29    /// </summary>
 30    /// <param name="specVersion">The <see cref="OpenApiSpecVersion"/> enum value.</param>
 31    /// <returns>The string representation of the OpenAPI spec version.</returns>
 32    /// <exception cref="ArgumentOutOfRangeException">Thrown when the provided enum value is not recognized.</exception>
 33    public static string ToVersionString(this OpenApiSpecVersion specVersion)
 34    {
 035        return specVersion switch
 036        {
 037            OpenApiSpecVersion.OpenApi2_0 => "2.0",
 038            OpenApiSpecVersion.OpenApi3_0 => "3.0.1",
 039            OpenApiSpecVersion.OpenApi3_1 => "3.1.0",
 040            _ => throw new ArgumentOutOfRangeException(nameof(specVersion), specVersion, null)
 041        };
 42    }
 43}