< Summary

Information
Class: ProjectTemplate.Infrastructure.Data.Auditing.ApplicationAuditValueDecision
Assembly: ProjectTemplate.Infrastructure
File(s): /home/runner/work/NetCoreApplicationTemplate/NetCoreApplicationTemplate/src/ProjectTemplate.Infrastructure/Data/Auditing/ApplicationAuditValueDecision.cs
Line coverage
100%
Covered lines: 8
Uncovered lines: 0
Coverable lines: 8
Total lines: 35
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
HmacSha256(...)100%11100%

File(s)

/home/runner/work/NetCoreApplicationTemplate/NetCoreApplicationTemplate/src/ProjectTemplate.Infrastructure/Data/Auditing/ApplicationAuditValueDecision.cs

#LineLine coverage
 1namespace ProjectTemplate.Infrastructure.Data.Auditing;
 2
 3/// <summary>
 4/// Describes how an audited property value should be represented.
 5/// </summary>
 206public sealed record ApplicationAuditValueDecision(
 207    ApplicationAuditValueDisposition Disposition,
 208    int? MaximumLength = null)
 9{
 10    /// <summary>
 11    /// Gets the UTF-8 key used when <see cref="Disposition" /> is <see cref="ApplicationAuditValueDisposition.HmacSha25
 12    /// Required for HMAC-SHA-256 and ignored for other dispositions.
 13    /// </summary>
 14    public string? HmacSha256Key { get; init; }
 15
 16    public static ApplicationAuditValueDecision Include { get; } = new(ApplicationAuditValueDisposition.Include);
 17
 18    /// <summary>
 19    /// Gets a decision that records the property as changed while replacing its value with a fixed mask.
 20    /// </summary>
 21    public static ApplicationAuditValueDecision Mask { get; } = new(ApplicationAuditValueDisposition.Mask);
 22
 23    /// <summary>
 24    /// Creates a decision that records an HMAC-SHA-256 digest using the supplied key.
 25    /// </summary>
 26    public static ApplicationAuditValueDecision HmacSha256(string key)
 27    {
 228        ArgumentException.ThrowIfNullOrWhiteSpace(key);
 29
 230        return new(ApplicationAuditValueDisposition.HmacSha256)
 231        {
 232            HmacSha256Key = key
 233        };
 34    }
 35}