• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

alunacjones / LSL.HttpMessageHandlers.Capturing.Dumps / 14

22 Nov 2025 10:38PM UTC coverage: 94.36% (-3.0%) from 97.363%
14

push

appveyor

Alun Jones
and more delegate alternatives

435 of 461 relevant lines covered (94.36%)

8.86 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

87.5
/src/LSL.HttpMessageHandlers.Capturing.Dumps/DefaultHeaderMapper.cs
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using LSL.HttpMessageHandlers.Capturing.Dumps.Infrastructure;
5
using Microsoft.Extensions.Options;
6

7
namespace LSL.HttpMessageHandlers.Capturing.Dumps;
8

9
/// <summary>
10
/// The default header mapper
11
/// </summary>
12
internal class DefaultHeaderMapper : IHeaderMapper
13
{
14
    private readonly IOptionsSnapshot<DefaultHeaderMapperOptions> _optionsSnapshot;
15
    private readonly DefaultHeaderMapperOptions _options;
16
    private readonly Lazy<IObfuscator> _obfuscator;
17

18
    public DefaultHeaderMapper(
2✔
19
        string name,
2✔
20
        IOptionsSnapshot<DefaultHeaderMapperOptions> optionsSnapshot,
2✔
21
        ICompoundFactory compoundFactory)
2✔
22
    {
23
        _optionsSnapshot = optionsSnapshot;
2✔
24
        _options = _optionsSnapshot.Get(name);
2✔
25
        _obfuscator = new Lazy<IObfuscator>(
2✔
26
            () => compoundFactory.CreateBuilder([_options.ObfuscatorFactory]).Services.Single()
4✔
27
        );
2✔
28
    }
2✔
29

30
    public IDictionary<string, IEnumerable<string>> MapHeaders(IDictionary<string, IEnumerable<string>> originalHeaders)
31
    {
32
        foreach (var toRemove in _options.HeadersToRemove.AssertNotNull(nameof(_options.HeadersToRemove)))
×
33
        {
34
            originalHeaders.Remove(toRemove);
×
35
        }
36

37
        foreach (var toObfuscate in _options.HeadersToObfuscate.AssertNotNull(nameof(_options.HeadersToObfuscate)))
16✔
38
        {
39
            if (originalHeaders.TryGetValue(toObfuscate, out var value))
4✔
40
            {
41
                originalHeaders[toObfuscate] = value.Select(v => _obfuscator.Value.Obfuscate(toObfuscate, v));
4✔
42
            }
43
        }
44

45
        return originalHeaders;
4✔
46
    }
47
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc