< 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: 36_15743069263
Line coverage
77%
Covered lines: 7
Uncovered lines: 2
Coverable lines: 9
Total lines: 52
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.Crypto.Constants;
 6using Domain.Protocol.Constants;
 7using Domain.Protocol.Interfaces;
 8using Domain.Protocol.Tlv;
 9using Domain.Protocol.ValueObjects;
 10
 11public class NetworksTlvConverter : ITlvConverter<NetworksTlv>
 12{
 13    public BaseTlv ConvertToBase(NetworksTlv tlv)
 14    {
 815        return tlv;
 16    }
 17
 18    public NetworksTlv ConvertFromBase(BaseTlv baseTlv)
 19    {
 820        if (baseTlv.Type != TlvConstants.Networks)
 21        {
 022            throw new InvalidCastException("Invalid TLV type");
 23        }
 24
 825        if (baseTlv.Length % CryptoConstants.Sha256HashLen != 0)
 26        {
 027            throw new InvalidCastException("Invalid length");
 28        }
 29
 830        var chainHashes = new List<ChainHash>();
 31        // split the Value into 32 bytes chunks and add it to the list
 3232        for (var i = 0; i < baseTlv.Length; i += CryptoConstants.Sha256HashLen)
 33        {
 834            chainHashes.Add(baseTlv.Value[i..(i + CryptoConstants.Sha256HashLen)]);
 35        }
 36
 837        return new NetworksTlv(chainHashes);
 38    }
 39
 40    [ExcludeFromCodeCoverage]
 41    BaseTlv ITlvConverter.ConvertFromBase(BaseTlv tlv)
 42    {
 43        return ConvertFromBase(tlv);
 44    }
 45
 46    [ExcludeFromCodeCoverage]
 47    BaseTlv ITlvConverter.ConvertToBase(BaseTlv tlv)
 48    {
 49        return ConvertToBase(tlv as NetworksTlv
 50                          ?? throw new InvalidCastException($"Error converting BaseTlv to {nameof(NetworksTlv)}"));
 51    }
 52}