< Summary - Combined Code Coverage

Information
Class: NLightning.Infrastructure.Serialization.ValueObjects.ChannelFlagTypeSerializer
Assembly: NLightning.Infrastructure.Serialization
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Serialization/ValueObjects/ChannelFlagTypeSerializer.cs
Tag: 30_15166811759
Line coverage
72%
Covered lines: 8
Uncovered lines: 3
Coverable lines: 11
Total lines: 37
Line coverage: 72.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
SerializeAsync()50%2.06275%
DeserializeAsync()100%11100%
NLightning-Domain-Serialization-ValueObjects-IValueObjectTypeSerializer-DeserializeAsync()100%210%

File(s)

/home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Serialization/ValueObjects/ChannelFlagTypeSerializer.cs

#LineLine coverage
 1using System.Buffers;
 2
 3namespace NLightning.Infrastructure.Serialization.ValueObjects;
 4
 5using Domain.Serialization.ValueObjects;
 6using Domain.ValueObjects;
 7using Domain.ValueObjects.Interfaces;
 8public class ChannelFlagTypeSerializer : IValueObjectTypeSerializer<ChannelFlags>
 9{
 10    public async Task SerializeAsync(IValueObject valueObject, Stream stream)
 11    {
 1212        if (valueObject is not ChannelFlags channelFlags)
 013            throw new ArgumentException("Value object must be of type ChannelFlags.", nameof(valueObject));
 14
 1215        await stream.WriteAsync(new ReadOnlyMemory<byte>([channelFlags]));
 1216    }
 17
 18    public async Task<ChannelFlags> DeserializeAsync(Stream stream)
 19    {
 2020        var buffer = ArrayPool<byte>.Shared.Rent(1);
 21
 22        try
 23        {
 2024            await stream.ReadExactlyAsync(buffer.AsMemory()[..1]);
 1625            return new ChannelFlags(buffer[0]);
 26        }
 27        finally
 28        {
 2029            ArrayPool<byte>.Shared.Return(buffer);
 30        }
 1631    }
 32
 33    async Task<IValueObject> IValueObjectTypeSerializer.DeserializeAsync(Stream stream)
 34    {
 035        return await DeserializeAsync(stream);
 036    }
 37}