< Summary - Combined Code Coverage

Information
Class: NLightning.Infrastructure.Serialization.Payloads.InitPayloadSerializer
Assembly: NLightning.Infrastructure.Serialization
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Serialization/Payloads/InitPayloadSerializer.cs
Tag: 30_15166811759
Line coverage
68%
Covered lines: 11
Uncovered lines: 5
Coverable lines: 16
Total lines: 49
Line coverage: 68.7%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
SerializeAsync()50%2.03280%
DeserializeAsync()100%1.04166.67%
NLightning-Domain-Serialization-Payloads-IPayloadSerializer-DeserializeAsync()100%210%

File(s)

/home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Serialization/Payloads/InitPayloadSerializer.cs

#LineLine coverage
 1using System.Runtime.Serialization;
 2using NLightning.Domain.Node;
 3using NLightning.Domain.Serialization.Payloads;
 4
 5namespace NLightning.Infrastructure.Serialization.Payloads;
 6
 7using Domain.Protocol.Payloads;
 8using Domain.Protocol.Payloads.Interfaces;
 9using Exceptions;
 10using Interfaces;
 11
 12public class InitPayloadSerializer : IPayloadSerializer<InitPayload>
 13{
 14    private readonly IFeatureSetSerializer _featureSetSerializer;
 15
 416    public InitPayloadSerializer(IFeatureSetSerializer featureSetSerializer)
 17    {
 418        _featureSetSerializer = featureSetSerializer;
 419    }
 20
 21    public async Task SerializeAsync(IMessagePayload payload, Stream stream)
 22    {
 823        if (payload is not InitPayload initPayload)
 024            throw new SerializationException($"Payload is not of type {nameof(InitPayload)}");
 25
 826        await _featureSetSerializer.SerializeAsync(initPayload.FeatureSet, stream, true);
 827        await _featureSetSerializer.SerializeAsync(initPayload.FeatureSet, stream);
 828    }
 29
 30    public async Task<InitPayload?> DeserializeAsync(Stream stream)
 31    {
 32        try
 33        {
 1234            var globalFeatures = await _featureSetSerializer.DeserializeAsync(stream);
 1235            var features = await _featureSetSerializer.DeserializeAsync(stream);
 36
 1237            return new InitPayload(FeatureSet.Combine(globalFeatures, features));
 38        }
 039        catch (Exception e)
 40        {
 041            throw new PayloadSerializationException("Error deserializing InitPayload", e);
 42        }
 1243    }
 44
 45    async Task<IMessagePayload?> IPayloadSerializer.DeserializeAsync(Stream stream)
 46    {
 047        return await DeserializeAsync(stream);
 048    }
 49}