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

Information
Class: AsyncResponse.Transports.Redis.RedisTransportKeySchema
Assembly: AsyncResponse.Transports.Redis
File(s): /home/runner/work/AsyncResponse/AsyncResponse/src/Transports/AsyncResponse.Transports.Redis/RedisTransportKeySchema.cs
Line coverage
100%
Covered lines: 7
Uncovered lines: 0
Coverable lines: 7
Total lines: 19
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
get_WorkerStream()100%11100%
get_ResponseStream()100%11100%
get_DeadLetterStream()100%11100%
Resolve(...)100%22100%

File(s)

/home/runner/work/AsyncResponse/AsyncResponse/src/Transports/AsyncResponse.Transports.Redis/RedisTransportKeySchema.cs

#LineLine coverage
 1using StackExchange.Redis;
 2
 3namespace AsyncResponse.Transports.Redis;
 4
 5/// <summary>
 6/// Resolves Redis stream names from transport options. These names are deployment contracts: changing
 7/// them while entries are in flight strands unprocessed worker or response messages in the old stream.
 8/// </summary>
 39internal sealed class RedisTransportKeySchema(RedisAsyncResponseTransportOptions _options)
 10{
 311    public RedisKey WorkerStream => Resolve(_options.WorkerStream, "worker");
 312    public RedisKey ResponseStream => Resolve(_options.ResponseStream, "response");
 313    public RedisKey DeadLetterStream => Resolve(_options.DeadLetterStream, "deadletter");
 14
 15    private RedisKey Resolve(string? configured, string role)
 316        => !string.IsNullOrWhiteSpace(configured)
 317            ? configured
 318            : $"{_options.KeyPrefix}:transport:{role}";
 19}