< Summary - Combined Code Coverage

Information
Class: NLightning.Infrastructure.Protocol.Tlv.Converters.NetworksTlvConverter
Assembly: NLightning.Infrastructure
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure/Protocol/Tlv/Converters/NetworksTlvConverter.cs
Tag: 30_15166811759
Line coverage
77%
Covered lines: 7
Uncovered lines: 2
Coverable lines: 9
Total lines: 51
Line coverage: 77.7%
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
ConvertToBase(...)100%11100%
ConvertFromBase(...)66.67%6.56675%

File(s)

/home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure/Protocol/Tlv/Converters/NetworksTlvConverter.cs

#LineLine coverage
 1using System.Diagnostics.CodeAnalysis;
 2
 3namespace NLightning.Infrastructure.Protocol.Tlv.Converters;
 4
 5using Domain.Protocol.Constants;
 6using Domain.Protocol.Tlv;
 7using Domain.Protocol.Tlv.Converters;
 8using Domain.ValueObjects;
 9
 10public class NetworksTlvConverter : ITlvConverter<NetworksTlv>
 11{
 12    public BaseTlv ConvertToBase(NetworksTlv tlv)
 13    {
 814        return tlv;
 15    }
 16
 17    public NetworksTlv ConvertFromBase(BaseTlv baseTlv)
 18    {
 819        if (baseTlv.Type != TlvConstants.NETWORKS)
 20        {
 021            throw new InvalidCastException("Invalid TLV type");
 22        }
 23
 824        if (baseTlv.Length % ChainHash.LENGTH != 0)
 25        {
 026            throw new InvalidCastException("Invalid length");
 27        }
 28
 829        var chainHashes = new List<ChainHash>();
 30        // split the Value into 32 bytes chunks and add it to the list
 3231        for (var i = 0; i < baseTlv.Length; i += ChainHash.LENGTH)
 32        {
 833            chainHashes.Add(baseTlv.Value[i..(i + ChainHash.LENGTH)]);
 34        }
 35
 836        return new NetworksTlv(chainHashes);
 37    }
 38
 39    [ExcludeFromCodeCoverage]
 40    BaseTlv ITlvConverter.ConvertFromBase(BaseTlv tlv)
 41    {
 42        return ConvertFromBase(tlv);
 43    }
 44
 45    [ExcludeFromCodeCoverage]
 46    BaseTlv ITlvConverter.ConvertToBase(BaseTlv tlv)
 47    {
 48        return ConvertToBase(tlv as NetworksTlv
 49                             ?? throw new InvalidCastException($"Error converting BaseTlv to {nameof(NetworksTlv)}"));
 50    }
 51}