< Summary - Combined Code Coverage

Information
Class: NLightning.Infrastructure.Protocol.Tlv.Converters.FundingOutputContributionTlvConverter
Assembly: NLightning.Infrastructure
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure/Protocol/Tlv/Converters/FundingOutputContributionTlvConverter.cs
Tag: 30_15166811759
Line coverage
71%
Covered lines: 5
Uncovered lines: 2
Coverable lines: 7
Total lines: 48
Line coverage: 71.4%
Branch coverage
50%
Covered branches: 2
Total branches: 4
Branch coverage: 50%
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(...)50%4.59466.67%

File(s)

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

#LineLine coverage
 1using System.Diagnostics.CodeAnalysis;
 2using NLightning.Domain.Money;
 3
 4namespace NLightning.Infrastructure.Protocol.Tlv.Converters;
 5
 6using Domain.Protocol.Constants;
 7using Domain.Protocol.Tlv;
 8using Domain.Protocol.Tlv.Converters;
 9using Infrastructure.Converters;
 10
 11public class FundingOutputContributionTlvConverter : ITlvConverter<FundingOutputContributionTlv>
 12{
 13    public BaseTlv ConvertToBase(FundingOutputContributionTlv tlv)
 14    {
 1615        return new BaseTlv(tlv.Type, EndianBitConverter.GetBytesBigEndian(tlv.Amount.Satoshi));
 16    }
 17
 18    public FundingOutputContributionTlv ConvertFromBase(BaseTlv baseTlv)
 19    {
 1220        if (baseTlv.Type != TlvConstants.FUNDING_OUTPUT_CONTRIBUTION)
 21        {
 022            throw new InvalidCastException("Invalid TLV type");
 23        }
 24
 1225        if (baseTlv.Length != 8) // long (64 bits) is 8 bytes
 26        {
 027            throw new InvalidCastException("Invalid length");
 28        }
 29
 1230        var amount = LightningMoney.Satoshis(EndianBitConverter.ToInt64BigEndian(baseTlv.Value));
 31
 1232        return new FundingOutputContributionTlv(amount);
 33    }
 34
 35    [ExcludeFromCodeCoverage]
 36    BaseTlv ITlvConverter.ConvertFromBase(BaseTlv tlv)
 37    {
 38        return ConvertFromBase(tlv);
 39    }
 40
 41    [ExcludeFromCodeCoverage]
 42    BaseTlv ITlvConverter.ConvertToBase(BaseTlv tlv)
 43    {
 44        return ConvertToBase(tlv as FundingOutputContributionTlv
 45                              ?? throw new InvalidCastException(
 46                                  $"Error casting BaseTlv to {nameof(FundingOutputContributionTlv)}"));
 47    }
 48}