< Summary - AsyncResponse (Release / net8.0+net10.0 / unit+integration)

Information
Class: AsyncResponse.Transports.SQS.SqsQueueAddress
Assembly: AsyncResponse.Transports.SQS
File(s): /home/runner/work/AsyncResponse/AsyncResponse/src/Transports/AsyncResponse.Transports.SQS/SqsQueueAddress.cs
Line coverage
100%
Covered lines: 8
Uncovered lines: 0
Coverable lines: 8
Total lines: 28
Line coverage: 100%
Branch coverage
83%
Covered branches: 5
Total branches: 6
Branch coverage: 83.3%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
IsUrl(...)100%22100%
IsFifo(...)100%11100%
QueueName(...)75%44100%

File(s)

/home/runner/work/AsyncResponse/AsyncResponse/src/Transports/AsyncResponse.Transports.SQS/SqsQueueAddress.cs

#LineLine coverage
 1namespace AsyncResponse.Transports.SQS;
 2
 3/// <summary>
 4/// Interprets the queue strings accepted by <see cref="SqsAsyncResponseOptions"/>: either a plain
 5/// queue name (resolved through <c>GetQueueUrl</c>) or a full queue URL.
 6/// </summary>
 7internal static class SqsQueueAddress
 8{
 9    /// <summary>Returns <c>true</c> when the configured queue string is a full queue URL.</summary>
 10    public static bool IsUrl(string queue)
 311        => queue.StartsWith("http://", StringComparison.OrdinalIgnoreCase)
 312            || queue.StartsWith("https://", StringComparison.OrdinalIgnoreCase);
 13
 14    /// <summary>Returns <c>true</c> when the queue (name or URL) addresses an SQS FIFO queue.</summary>
 15    public static bool IsFifo(string queue)
 316        => QueueName(queue).EndsWith(".fifo", StringComparison.OrdinalIgnoreCase);
 17
 18    /// <summary>Extracts the queue name from a queue string (the last URL segment, or the string itself).</summary>
 19    public static string QueueName(string queue)
 20    {
 321        var trimmed = queue.TrimEnd('/');
 322        if (!IsUrl(trimmed))
 323            return trimmed;
 24
 225        var lastSegment = trimmed.LastIndexOf('/');
 226        return lastSegment >= 0 ? trimmed[(lastSegment + 1)..] : trimmed;
 27    }
 28}