< Summary - Syki

Information
Class: Syki.Back.Commands.CommandBackoffStrategies
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Commands/CommandBackoffStrategies.cs
Tag: 56_26538939494
Line coverage
0%
Covered lines: 0
Uncovered lines: 11
Coverable lines: 11
Total lines: 42
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 5
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
GetDelaySeconds(...)0%3050%
Exponential(...)100%210%
Linear(...)100%210%
Fixed(...)100%210%

File(s)

/home/runner/work/syki/syki/Back/Commands/CommandBackoffStrategies.cs

#LineLine coverage
 1using Syki.Back.Domain.Enums;
 2
 3namespace Syki.Back.Commands;
 4
 5public static class CommandBackoffStrategies
 6{
 7    public static int? GetDelaySeconds(BackoffStrategy strategy, int baseDelaySeconds, int retryAttempt)
 8    {
 09        return strategy switch
 010        {
 011            BackoffStrategy.None => null,
 012            BackoffStrategy.Exponential => Exponential(baseDelaySeconds, retryAttempt),
 013            BackoffStrategy.Linear => Linear(baseDelaySeconds, retryAttempt),
 014            BackoffStrategy.Fixed => Fixed(baseDelaySeconds),
 015            _ => null,
 016        };
 17    }
 18
 19    /// <summary>
 20    /// base*1, base*2, base*4, base*8...  (baseDelay * 2^(retryAttempt-1))
 21    /// </summary>
 22    private static int Exponential(int baseDelaySeconds, int retryAttempt)
 23    {
 024        return baseDelaySeconds * (int)Math.Pow(2, retryAttempt - 1);
 25    }
 26
 27    /// <summary>
 28    /// base*1, base*2, base*3, base*4...  (baseDelay * retryAttempt)
 29    /// </summary>
 30    private static int Linear(int baseDelaySeconds, int retryAttempt)
 31    {
 032        return baseDelaySeconds * retryAttempt;
 33    }
 34
 35    /// <summary>
 36    /// base, base, base...
 37    /// </summary>
 38    private static int Fixed(int baseDelaySeconds)
 39    {
 040        return baseDelaySeconds;
 41    }
 42}