< Summary - Combined Code Coverage

Information
Class: NLightning.Infrastructure.Serialization.Messages.Types.TxSignaturesMessageTypeSerializer
Assembly: NLightning.Infrastructure.Serialization
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Serialization/Messages/Types/TxSignaturesMessageTypeSerializer.cs
Tag: 30_15166811759
Line coverage
73%
Covered lines: 14
Uncovered lines: 5
Coverable lines: 19
Total lines: 59
Line coverage: 73.6%
Branch coverage
50%
Covered branches: 4
Total branches: 8
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%4.07483.33%
DeserializeAsync()50%4.25475%
NLightning-Domain-Serialization-Messages-Types-IMessageTypeSerializer-DeserializeAsync()100%210%

File(s)

/home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Serialization/Messages/Types/TxSignaturesMessageTypeSerializer.cs

#LineLine coverage
 1using System.Runtime.Serialization;
 2
 3namespace NLightning.Infrastructure.Serialization.Messages.Types;
 4
 5using Domain.Protocol.Messages;
 6using Domain.Protocol.Messages.Interfaces;
 7using Domain.Protocol.Payloads;
 8using Domain.Serialization.Factories;
 9using Domain.Serialization.Messages.Types;
 10using Exceptions;
 11
 12public class TxSignaturesMessageTypeSerializer : IMessageTypeSerializer<TxSignaturesMessage>
 13{
 14    private readonly IPayloadSerializerFactory _payloadSerializerFactory;
 15
 816    public TxSignaturesMessageTypeSerializer(IPayloadSerializerFactory payloadSerializerFactory)
 17    {
 818        _payloadSerializerFactory = payloadSerializerFactory;
 819    }
 20
 21    public async Task SerializeAsync(IMessage message, Stream stream)
 22    {
 423        if (message is not TxSignaturesMessage)
 024            throw new SerializationException("Message is not of type TxSignaturesMessage");
 25
 26        // Get the payload serializer
 427        var payloadTypeSerializer = _payloadSerializerFactory.GetSerializer(message.Type)
 428                                    ?? throw new SerializationException("No serializer found for payload type");
 429        await payloadTypeSerializer.SerializeAsync(message.Payload, stream);
 430    }
 31
 32    /// <summary>
 33    /// Deserialize a TxSignaturesMessage from a stream.
 34    /// </summary>
 35    /// <param name="stream">The stream to deserialize from.</param>
 36    /// <returns>The deserialized TxSignaturesMessage.</returns>
 37    /// <exception cref="MessageSerializationException">Error deserializing TxSignaturesMessage</exception>
 38    public async Task<TxSignaturesMessage> DeserializeAsync(Stream stream)
 39    {
 40        try
 41        {
 42            // Deserialize payload
 443            var payloadSerializer = _payloadSerializerFactory.GetSerializer<TxSignaturesPayload>()
 444                                    ?? throw new SerializationException("No serializer found for payload type");
 445            var payload = await payloadSerializer.DeserializeAsync(stream)
 446                          ?? throw new SerializationException("Error serializing payload");
 47
 448            return new TxSignaturesMessage(payload);
 49        }
 050        catch (SerializationException e)
 51        {
 052            throw new MessageSerializationException("Error deserializing TxSignaturesMessage", e);
 53        }
 454    }
 55    async Task<IMessage> IMessageTypeSerializer.DeserializeAsync(Stream stream)
 56    {
 057        return await DeserializeAsync(stream);
 058    }
 59}