< Summary - Envilder .NET SDK

Information
Class: Envilder.Infrastructure.Configuration.EnvilderConfigurationProvider
Assembly: Envilder
File(s): /home/runner/work/envilder/envilder/src/sdks/dotnet/Infrastructure/Configuration/EnvilderConfigurationProvider.cs
Tag: 151_24479375065
Line coverage
100%
Covered lines: 14
Uncovered lines: 0
Coverable lines: 14
Total lines: 41
Line coverage: 100%
Branch coverage
66%
Covered branches: 4
Total branches: 6
Branch coverage: 66.6%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)50%44100%
Load()100%22100%
NormalizeKey(...)100%11100%

File(s)

/home/runner/work/envilder/envilder/src/sdks/dotnet/Infrastructure/Configuration/EnvilderConfigurationProvider.cs

#LineLine coverage
 1namespace Envilder.Infrastructure.Configuration;
 2
 3using Envilder.Application;
 4using Envilder.Domain;
 5using Microsoft.Extensions.Configuration;
 6using System;
 7
 8public class EnvilderConfigurationProvider : ConfigurationProvider
 9{
 10    private readonly EnvilderClient _client;
 11    private readonly ParsedMapFile _mapFile;
 12
 113    public EnvilderConfigurationProvider(EnvilderClient client, ParsedMapFile mapFile)
 14    {
 115        _client = client ?? throw new ArgumentNullException(nameof(client));
 116        _mapFile = mapFile ?? throw new ArgumentNullException(nameof(mapFile));
 117    }
 18
 19    // ConfigurationProvider.Load() is synchronous by design.
 20    // ResolveSecretsAsync uses ConfigureAwait(false) throughout to avoid deadlocks.
 21    public override void Load()
 22    {
 123        var secrets = _client.ResolveSecretsAsync(_mapFile)
 124            .ConfigureAwait(false)
 125            .GetAwaiter()
 126            .GetResult();
 27
 128        Data.Clear();
 29
 130        foreach (var kvp in secrets)
 31        {
 132            var key = NormalizeKey(kvp.Key);
 133            Data[key] = kvp.Value;
 34        }
 135    }
 36
 37    private static string NormalizeKey(string key)
 38    {
 139        return key.Replace("/", ConfigurationPath.KeyDelimiter);
 40    }
 41}