< 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@5f1d2b981c9d7292c11fd448428c6ab6c811c5de
Line coverage
100%
Covered lines: 17
Uncovered lines: 0
Coverable lines: 17
Total lines: 45
Line coverage: 100%
Branch coverage
95%
Covered branches: 43
Total branches: 45
Branch coverage: 95.5%
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@8cf7f77e55fd1fd046ea4e5413eb9ef96e49fe6a03/26/2026 - 03:54:59 Line coverage: 100% (17/17) Branch coverage: 95.5% (43/45) Total lines: 45 Tag: Kestrun/Kestrun@844b5179fb0492dc6b1182bae3ff65fa7365521d 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@8cf7f77e55fd1fd046ea4e5413eb9ef96e49fe6a03/26/2026 - 03:54:59 Line coverage: 100% (17/17) Branch coverage: 95.5% (43/45) Total lines: 45 Tag: Kestrun/Kestrun@844b5179fb0492dc6b1182bae3ff65fa7365521d

Coverage delta

Coverage delta 100 -100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ParseOpenApiSpecVersion(...)95%4040100%
ToVersionString(...)100%55100%

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    {
 1517        var normalized = version.TrimStart('v', 'V');  // e.g. "2.0", "3.0", "3.1"
 1518        return normalized switch
 1519        {
 120            "2.0" => OpenApiSpecVersion.OpenApi2_0,
 521            "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,
 322            "3.1" or "3.1.0" or "3.1.1" => OpenApiSpecVersion.OpenApi3_1,
 223            "3.2" or "3.2.0" => OpenApiSpecVersion.OpenApi3_2,
 424            _ => throw new ArgumentException($"Unsupported OpenAPI spec version: {version}", nameof(version)),
 1525        };
 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    {
 636        return specVersion switch
 637        {
 138            OpenApiSpecVersion.OpenApi2_0 => "2.0",
 139            OpenApiSpecVersion.OpenApi3_0 => "3.0.4",
 240            OpenApiSpecVersion.OpenApi3_1 => "3.1.2",
 141            OpenApiSpecVersion.OpenApi3_2 => "3.2.0",
 142            _ => throw new ArgumentOutOfRangeException(nameof(specVersion), specVersion, null)
 643        };
 44    }
 45}