< Summary - Combined Code Coverage

Information
Class: NLightning.Domain.Node.Models.PeerModel
Assembly: NLightning.Domain
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Domain/Node/Models/PeerModel.cs
Tag: 36_15743069263
Line coverage
59%
Covered lines: 13
Uncovered lines: 9
Coverable lines: 22
Total lines: 61
Line coverage: 59%
Branch coverage
33%
Covered branches: 2
Total branches: 6
Branch coverage: 33.3%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_NodeId()100%210%
get_Host()100%210%
get_Port()100%210%
get_LastSeenAt()100%11100%
get_PeerAddressInfo()0%620%
get_Channels()100%210%
.ctor(...)100%11100%
TryGetPeerService(...)50%2.26260%
SetPeerService(...)50%2.03280%

File(s)

/home/runner/work/nlightning/nlightning/src/NLightning.Domain/Node/Models/PeerModel.cs

#LineLine coverage
 1using System.Diagnostics.CodeAnalysis;
 2
 3namespace NLightning.Domain.Node.Models;
 4
 5using Channels.Models;
 6using Crypto.ValueObjects;
 7using Interfaces;
 8using ValueObjects;
 9
 10public class PeerModel
 11{
 12    private PeerAddressInfo? _peerAddressInfo;
 13
 14    private IPeerService? _peerService;
 15
 016    public CompactPubKey NodeId { get; }
 017    public string Host { get; }
 018    public uint Port { get; }
 6019    public DateTime LastSeenAt { get; set; }
 20
 21    public PeerAddressInfo PeerAddressInfo
 22    {
 23        get
 24        {
 025            _peerAddressInfo ??= new PeerAddressInfo($"{NodeId}@{Host}:{Port}");
 26
 027            return _peerAddressInfo.Value;
 28        }
 29    }
 30
 031    public ICollection<ChannelModel>? Channels { get; set; }
 32
 6033    public PeerModel(CompactPubKey nodeId, string host, uint port)
 34    {
 6035        NodeId = nodeId;
 6036        Host = host;
 6037        Port = port;
 6038    }
 39
 40    public bool TryGetPeerService([MaybeNullWhen(false)] out IPeerService peerService)
 41    {
 4442        if (_peerService is not null)
 43        {
 4444            peerService = _peerService;
 4445            return true;
 46        }
 47
 048        peerService = null;
 049        return false;
 50    }
 51
 52    public void SetPeerService(IPeerService peerService)
 53    {
 6054        ArgumentNullException.ThrowIfNull(peerService);
 55
 6056        if (_peerService is not null)
 057            throw new InvalidOperationException("Peer service already set.");
 58
 6059        _peerService = peerService;
 6060    }
 61}