< Summary

Information
Class: Spdx3.Model.Core.Classes.Hash
Assembly: Spdx3
File(s): /home/runner/work/Spdx3/Spdx3/Spdx3/Model/Core/Classes/Hash.cs
Line coverage
100%
Covered lines: 14
Uncovered lines: 0
Coverable lines: 14
Total lines: 48
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%
get_HashValue()100%11100%
.ctor()100%11100%
.ctor(...)100%11100%
Validate()100%11100%
Accept(...)100%11100%

File(s)

/home/runner/work/Spdx3/Spdx3/Spdx3/Model/Core/Classes/Hash.cs

#LineLine coverage
 1using System.Diagnostics.CodeAnalysis;
 2using System.Text.Json.Serialization;
 3using Spdx3.Model.Core.Enums;
 4using Spdx3.Model.Lite;
 5using Spdx3.Serialization;
 6using Spdx3.Utility;
 7
 8namespace Spdx3.Model.Core.Classes;
 9
 10/// <summary>
 11///     A mathematically calculated representation of a grouping of data.
 12///     See https://spdx.github.io/spdx-spec/v3.0.1/model/Core/Classes/Hash/
 13/// </summary>
 14public class Hash : IntegrityMethod, ILiteDomainCompliantElement
 15{
 16    [JsonPropertyName("algorithm")]
 17    [JsonConverter(typeof(SpdxModelConverterFactory))]
 3318    public required HashAlgorithm Algorithm { get; set; }
 19
 20    [JsonPropertyName("hashValue")]
 21    [JsonConverter(typeof(SpdxModelConverterFactory))]
 3322    public required string HashValue { get; set; }
 23
 24    // protected internal no-parm constructor required for deserialization
 25    // ReSharper disable once UnusedMember.Global
 126    protected internal Hash()
 27    {
 128    }
 29
 30    [SetsRequiredMembers]
 2231    public Hash(Catalog catalog, HashAlgorithm algorithm, string hashValue) : base(catalog)
 32    {
 2233        Algorithm = algorithm;
 2234        HashValue = hashValue;
 2235    }
 36
 37    public override void Validate()
 38    {
 439        base.Validate();
 340        ValidateRequiredProperty(nameof(Algorithm));
 341        ValidateRequiredProperty(nameof(HashValue));
 142    }
 43
 44    public void Accept(ILiteDomainComplianceVisitor visitor)
 45    {
 346        visitor.Visit(this);
 347    }
 48}