< Summary - Combined Code Coverage

Information
Class: NLightning.Infrastructure.Transport.Handshake.MessagePatterns.HandshakePattern
Assembly: NLightning.Infrastructure
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure/Transport/Handshake/MessagePatterns/HandshakePattern.cs
Tag: 30_15166811759
Line coverage
100%
Covered lines: 15
Uncovered lines: 0
Coverable lines: 15
Total lines: 56
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Initiator()100%11100%
get_Responder()100%11100%
get_Patterns()100%11100%
.cctor()100%11100%
.ctor(...)100%11100%

File(s)

/home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure/Transport/Handshake/MessagePatterns/HandshakePattern.cs

#LineLine coverage
 1using System.Diagnostics;
 2
 3namespace NLightning.Infrastructure.Transport.Handshake.MessagePatterns;
 4
 5using Enums;
 6
 7/// <summary>
 8/// A <see href="https://noiseprotocol.org/noise.html#handshake-patterns">handshake pattern</see>
 9/// consists of a pre-message pattern for the initiator, a pre-message pattern for the responder,
 10/// and a sequence of message patterns for the actual handshake messages.
 11/// </summary>
 12internal sealed class HandshakePattern
 13{
 14    /// <summary>
 15    /// Gets the pre-message pattern for the initiator.
 16    /// </summary>
 9617    public PreMessagePattern Initiator { get; }
 18
 19    /// <summary>
 20    /// Gets the pre-message pattern for the responder.
 21    /// </summary>
 9622    public PreMessagePattern Responder { get; }
 23
 24    /// <summary>
 25    /// Gets the sequence of message patterns for the handshake messages.
 26    /// </summary>
 9627    public IEnumerable<MessagePattern> Patterns { get; }
 28
 29    /// <summary>
 30    /// XK():
 31    /// <para>- ← s</para>
 32    /// <para>- ...</para>
 33    /// <para>- → e, es</para>
 34    /// <para>- ← e, ee</para>
 35    /// <para>- → s, se</para>
 36    /// </summary>
 437    public static readonly HandshakePattern XK = new(
 438        PreMessagePattern.EMPTY,
 439        PreMessagePattern.S,
 440        new MessagePattern(Token.E, Token.ES),
 441        new MessagePattern(Token.E, Token.EE),
 442        new MessagePattern(Token.S, Token.SE)
 443    );
 44
 445    internal HandshakePattern(PreMessagePattern initiator, PreMessagePattern responder, params MessagePattern[] patterns
 46    {
 47        Debug.Assert(initiator != null);
 48        Debug.Assert(responder != null);
 49        Debug.Assert(patterns != null);
 50        Debug.Assert(patterns.Length > 0);
 51
 452        Initiator = initiator;
 453        Responder = responder;
 454        Patterns = patterns;
 455    }
 56}