< Summary - Kestrun — Combined Coverage

Information
Class: Kestrun.OpenApi.OaParameterExtensions
Assembly: Kestrun
File(s): /home/runner/work/Kestrun/Kestrun/src/CSharp/Kestrun/OpenApi/OaParameterExtensions.cs
Tag: Kestrun/Kestrun@0d738bf294e6281b936d031e1979d928007495ff
Line coverage
8%
Covered lines: 4
Uncovered lines: 42
Coverable lines: 46
Total lines: 98
Line coverage: 8.6%
Branch coverage
2%
Covered branches: 1
Total branches: 36
Branch coverage: 2.7%
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: 8.6% (4/46) Branch coverage: 2.7% (1/36) Total lines: 98 Tag: Kestrun/Kestrun@826bf9dcf9db118c5de4c78a3259bce9549f0dcd 12/12/2025 - 17:27:19 Line coverage: 8.6% (4/46) Branch coverage: 2.7% (1/36) Total lines: 98 Tag: Kestrun/Kestrun@826bf9dcf9db118c5de4c78a3259bce9549f0dcd

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ToOpenApi(...)0%3050%
ToOpenApi(...)12.5%24836.36%
ToParameterLocation(...)0%3050%
ToParameterStyle(...)0%110100%
ToOpenApiParameterLocation(...)0%7280%

File(s)

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

#LineLine coverage
 1using Microsoft.OpenApi;
 2
 3namespace Kestrun.OpenApi;
 4
 5/// <summary>
 6/// Extensions for <see cref="OaParameterLocation"/>.
 7/// </summary>
 8public static class OaParameterExtensions
 9{
 10    /// <summary>Convert to Microsoft.OpenApi ParameterLocation.</summary>
 11    /// <param name="location">The OaParameterLocation value.</param>
 12    /// <returns>The corresponding ParameterLocation value.</returns>
 13    public static ParameterLocation ToOpenApi(this OaParameterLocation location)
 014        => location switch
 015        {
 016            OaParameterLocation.Query => ParameterLocation.Query,
 017            OaParameterLocation.Header => ParameterLocation.Header,
 018            OaParameterLocation.Path => ParameterLocation.Path,
 019            OaParameterLocation.Cookie => ParameterLocation.Cookie,
 020            _ => throw new ArgumentOutOfRangeException(nameof(location), location, null)
 021        };
 22
 23    /// <summary>
 24    /// Convert to Microsoft.OpenApi ParameterStyle.
 25    /// </summary>
 26    /// <param name="style"></param>
 27    /// <returns></returns>
 28    /// <exception cref="ArgumentOutOfRangeException"></exception>
 29    public static ParameterStyle ToOpenApi(this OaParameterStyle style)
 130        => style switch
 131        {
 132            OaParameterStyle.Simple => ParameterStyle.Simple,
 033            OaParameterStyle.Form => ParameterStyle.Form,
 034            OaParameterStyle.Matrix => ParameterStyle.Matrix,
 035            OaParameterStyle.Label => ParameterStyle.Label,
 036            OaParameterStyle.SpaceDelimited => ParameterStyle.SpaceDelimited,
 037            OaParameterStyle.PipeDelimited => ParameterStyle.PipeDelimited,
 038            OaParameterStyle.DeepObject => ParameterStyle.DeepObject,
 039            _ => throw new ArgumentOutOfRangeException(nameof(style), style, null)
 140        };
 41
 42    /// <summary>
 43    /// Convert to Microsoft.OpenApi ParameterLocation.
 44    /// </summary>
 45    /// <param name="location">The OaParameterLocation value.</param>
 46    /// <returns>The corresponding ParameterLocation value.</returns>
 47    /// <exception cref="ArgumentOutOfRangeException">Thrown when the location is not recognized.</exception>
 48    public static ParameterLocation ToParameterLocation(this OaParameterLocation location)
 49    {
 050        return location switch
 051        {
 052            OaParameterLocation.Query => ParameterLocation.Query,
 053            OaParameterLocation.Header => ParameterLocation.Header,
 054            OaParameterLocation.Path => ParameterLocation.Path,
 055            OaParameterLocation.Cookie => ParameterLocation.Cookie,
 056            _ => throw new ArgumentOutOfRangeException(nameof(location), location, null)
 057        };
 58    }
 59
 60    /// <summary>
 61    /// Convert to Microsoft.OpenApi ParameterStyle.
 62    /// </summary>
 63    /// <param name="style">The OaParameterStyle value.</param>
 64    /// <returns>The corresponding ParameterStyle value.</returns>
 65    /// <exception cref="ArgumentOutOfRangeException">Thrown when the style is not recognized.</exception>
 66    public static ParameterStyle ToParameterStyle(this OaParameterStyle? style)
 67    {
 068        return style switch
 069        {
 070            OaParameterStyle.Simple => ParameterStyle.Simple,
 071            OaParameterStyle.Form => ParameterStyle.Form,
 072            OaParameterStyle.Matrix => ParameterStyle.Matrix,
 073            OaParameterStyle.Label => ParameterStyle.Label,
 074            OaParameterStyle.SpaceDelimited => ParameterStyle.SpaceDelimited,
 075            OaParameterStyle.PipeDelimited => ParameterStyle.PipeDelimited,
 076            OaParameterStyle.DeepObject => ParameterStyle.DeepObject,
 077            _ => throw new ArgumentOutOfRangeException(nameof(style), style, null)
 078        };
 79    }
 80
 81    /// <summary>
 82    /// Convert string to Microsoft.OpenApi ParameterLocation.
 83    /// </summary>
 84    /// <param name="location">The string representation of the parameter location.</param>
 85    /// <returns>The corresponding OpenApi ParameterLocation value.</returns>
 86    /// <exception cref="ArgumentOutOfRangeException">Thrown when the location is not recognized.</exception>
 87    public static ParameterLocation ToOpenApiParameterLocation(this string location)
 88    {
 089        return location.ToLower() switch
 090        {
 091            "query" => ParameterLocation.Query,
 092            "header" => ParameterLocation.Header,
 093            "path" => ParameterLocation.Path,
 094            "cookie" => ParameterLocation.Cookie,
 095            _ => throw new ArgumentOutOfRangeException(nameof(location), location, null)
 096        };
 97    }
 98}