< Summary

Information
Class: NanoRoute.HttpRequestMessageExtensions
Assembly: NanoRoute.dll
File(s): /home/runner/work/nanoroute/nanoroute/Src/NanoRoute/Public/Extensions/HttpRequestMessageExtensions.cs
Line coverage
100%
Covered lines: 15
Uncovered lines: 0
Coverable lines: 15
Total lines: 54
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBlocks covered Blocks not covered
HttpRequestMessageExtensions()150

File(s)

/home/runner/work/nanoroute/nanoroute/Src/NanoRoute/Public/Extensions/HttpRequestMessageExtensions.cs

#LineLine coverage
 1/********************************************************************************
 2* HttpRequestMessageExtensions.cs                                               *
 3*                                                                               *
 4* Author: Denes Solti                                                           *
 5********************************************************************************/
 6using System;
 7using System.Collections.Frozen;
 8using System.Collections.Generic;
 9using System.Diagnostics;
 10using System.Net.Http;
 11
 12namespace NanoRoute
 13{
 14    /// <summary>
 15    /// <see cref="HttpResponseMessage"/> extensions.
 16    /// </summary>
 17    /// <example>
 18    /// <code>
 19    /// bool isContentHeader = HttpRequestMessage.ContentHeaders.Contains("Content-Type");
 20    /// </code>
 21    /// </example>
 22    public static class HttpRequestMessageExtensions
 23    {
 24        [DebuggerBrowsable(DebuggerBrowsableState.Never)]
 225        private static readonly FrozenSet<string> s_contentHeaders = new List<string>
 226        {
 227            "Allow",
 228            "Content-Disposition",
 229            "Content-Encoding",
 230            "Content-Language",
 231            "Content-Length",
 232            "Content-Location",
 233            "Content-MD5",
 234            "Content-Range",
 235            "Content-Type",
 236            "Expires",
 237            "Last-Modified"
 238        }.ToFrozenSet(StringComparer.OrdinalIgnoreCase);
 39
 40        extension(HttpRequestMessage)
 41        {
 42            /// <summary>
 43            /// Content header names.
 44            /// </summary>
 45            /// <example>
 46            /// <code>
 47            /// if (HttpRequestMessage.ContentHeaders.Contains(headerName))
 48            ///     request.Content!.Headers.TryAddWithoutValidation(headerName, values);
 49            /// </code>
 50            /// </example>
 251            public static FrozenSet<string> ContentHeaders => s_contentHeaders;
 52        }
 53    }
 54}