< Summary

Information
Class: ProjectTemplate.Infrastructure.Data.Auditing.Sha256ApplicationMutationManifestHasher
Assembly: ProjectTemplate.Infrastructure
File(s): /home/runner/work/NetCoreApplicationTemplate/NetCoreApplicationTemplate/src/ProjectTemplate.Infrastructure/Data/Auditing/Sha256ApplicationMutationManifestHasher.cs
Line coverage
100%
Covered lines: 4
Uncovered lines: 0
Coverable lines: 4
Total lines: 22
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
get_Algorithm()100%11100%
ComputeHash(...)100%11100%

File(s)

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

#LineLine coverage
 1using System.Security.Cryptography;
 2using System.Text;
 3
 4namespace ProjectTemplate.Infrastructure.Data.Auditing;
 5
 6/// <summary>
 7/// Computes SHA-256 digests for canonical application mutation manifests.
 8/// </summary>
 9public sealed class Sha256ApplicationMutationManifestHasher : IApplicationMutationManifestHasher
 10{
 11    /// <inheritdoc />
 7612    public string Algorithm => "SHA-256";
 13
 14    /// <inheritdoc />
 15    public string ComputeHash(ApplicationMutationManifest manifest)
 16    {
 7817        ArgumentNullException.ThrowIfNull(manifest);
 18
 7819        byte[] digest = SHA256.HashData(Encoding.UTF8.GetBytes(manifest.CanonicalJson));
 7820        return Convert.ToHexString(digest);
 21    }
 22}