< Summary - Combined Code Coverage

Information
Class: NLightning.Infrastructure.Serialization.Messages.Types.FundingSignedMessageTypeSerializer
Assembly: NLightning.Infrastructure.Serialization
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Serialization/Messages/Types/FundingSignedTypeSerializer.cs
Tag: 36_15743069263
Line coverage
0%
Covered lines: 0
Uncovered lines: 19
Coverable lines: 19
Total lines: 59
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 8
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%210%
SerializeAsync()0%2040%
DeserializeAsync()0%2040%
NLightning-Domain-Serialization-Interfaces-IMessageTypeSerializer-DeserializeAsync()100%210%

File(s)

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

#LineLine coverage
 1using System.Runtime.Serialization;
 2using NLightning.Domain.Protocol.Interfaces;
 3using NLightning.Domain.Serialization.Interfaces;
 4
 5namespace NLightning.Infrastructure.Serialization.Messages.Types;
 6
 7using Domain.Protocol.Messages;
 8using Domain.Protocol.Payloads;
 9using Exceptions;
 10
 11public class FundingSignedMessageTypeSerializer : IMessageTypeSerializer<FundingSignedMessage>
 12{
 13    private readonly IPayloadSerializerFactory _payloadSerializerFactory;
 14
 015    public FundingSignedMessageTypeSerializer(IPayloadSerializerFactory payloadSerializerFactory)
 16    {
 017        _payloadSerializerFactory = payloadSerializerFactory;
 018    }
 19
 20    public async Task SerializeAsync(IMessage message, Stream stream)
 21    {
 022        if (message is not FundingSignedMessage)
 023            throw new SerializationException($"Message is not of type {nameof(FundingSignedMessage)}");
 24
 25        // Get the payload serializer
 026        var payloadTypeSerializer = _payloadSerializerFactory.GetSerializer(message.Type)
 027                                 ?? throw new SerializationException("No serializer found for payload type");
 028        await payloadTypeSerializer.SerializeAsync(message.Payload, stream);
 029    }
 30
 31    /// <summary>
 32    /// Deserialize a FundingSignedMessage from a stream.
 33    /// </summary>
 34    /// <param name="stream">The stream to deserialize from.</param>
 35    /// <returns>The deserialized FundingSignedMessage.</returns>
 36    /// <exception cref="MessageSerializationException">Error deserializing FundingSignedMessage</exception>
 37    public async Task<FundingSignedMessage> DeserializeAsync(Stream stream)
 38    {
 39        try
 40        {
 41            // Deserialize payload
 042            var payloadSerializer = _payloadSerializerFactory.GetSerializer<FundingSignedPayload>()
 043                                 ?? throw new SerializationException("No serializer found for payload type");
 044            var payload = await payloadSerializer.DeserializeAsync(stream)
 045                       ?? throw new SerializationException("Error serializing payload");
 46
 047            return new FundingSignedMessage(payload);
 48        }
 049        catch (SerializationException e)
 50        {
 051            throw new MessageSerializationException("Error deserializing FundingSignedMessage", e);
 52        }
 053    }
 54
 55    async Task<IMessage> IMessageTypeSerializer.DeserializeAsync(Stream stream)
 56    {
 057        return await DeserializeAsync(stream);
 058    }
 59}