< Summary

Information
Class: IceRpc.Internal.InvalidPipeReader
Assembly: IceRpc
File(s): /home/runner/work/icerpc-csharp/icerpc-csharp/src/IceRpc/Internal/InvalidPipeReader.cs
Tag: 275_13775359185
Line coverage
72%
Covered lines: 8
Uncovered lines: 3
Coverable lines: 11
Total lines: 36
Line coverage: 72.7%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage
62%
Covered methods: 5
Total methods: 8
Method coverage: 62.5%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Instance()100%11100%
TryRead(...)100%11100%
ReadAsync(...)100%11100%
AdvanceTo(...)100%210%
AdvanceTo(...)100%210%
CancelPendingRead()100%210%
Complete(...)100%11100%
.ctor()100%11100%

File(s)

/home/runner/work/icerpc-csharp/icerpc-csharp/src/IceRpc/Internal/InvalidPipeReader.cs

#LineLine coverage
 1// Copyright (c) ZeroC, Inc.
 2
 3using System.IO.Pipelines;
 4
 5namespace IceRpc.Internal;
 6
 7/// <summary>A PipeReader that does nothing and always throws InvalidOperationException except for Complete.</summary>
 8internal sealed class InvalidPipeReader : PipeReader
 9{
 10    /// <summary>Gets the invalid pipe reader singleton instance.</summary>
 86211    public static PipeReader Instance { get; } = new InvalidPipeReader();
 12
 13    private const string ExceptionMessage = "Reading an invalid pipe reader is not allowed.";
 14
 1215    public override bool TryRead(out ReadResult result) => throw new InvalidOperationException(ExceptionMessage);
 16
 17    public override ValueTask<ReadResult> ReadAsync(CancellationToken cancellationToken = default) =>
 218        throw new InvalidOperationException(ExceptionMessage);
 19
 020    public override void AdvanceTo(SequencePosition consumed) => throw new InvalidOperationException(ExceptionMessage);
 21
 22    public override void AdvanceTo(SequencePosition consumed, SequencePosition examined) =>
 023        throw new InvalidOperationException(ExceptionMessage);
 24
 025    public override void CancelPendingRead() => throw new InvalidOperationException(ExceptionMessage);
 26
 27    public override void Complete(Exception? exception = null)
 16228    {
 29        // no-op
 16230    }
 31
 532    private InvalidPipeReader()
 533    {
 34        // ensures there is only one instance
 535    }
 36}