< Summary

Information
Class: Spdx3.Model.Security.Classes.CvssV4VulnAssessmentRelationship
Assembly: Spdx3
File(s): /home/runner/work/Spdx3/Spdx3/Spdx3/Model/Security/Classes/CvssV4VulnAssessmentRelationship.cs
Line coverage
100%
Covered lines: 18
Uncovered lines: 0
Coverable lines: 18
Total lines: 59
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
get_Score()100%11100%
get_Severity()100%11100%
get_VectorString()100%11100%
Validate()100%22100%
.ctor()100%11100%
.ctor(...)100%11100%

File(s)

/home/runner/work/Spdx3/Spdx3/Spdx3/Model/Security/Classes/CvssV4VulnAssessmentRelationship.cs

#LineLine coverage
 1using System.Diagnostics.CodeAnalysis;
 2using System.Text.Json.Serialization;
 3using Spdx3.Exceptions;
 4using Spdx3.Model.Core.Classes;
 5using Spdx3.Model.Core.Enums;
 6using Spdx3.Model.Security.Enums;
 7using Spdx3.Serialization;
 8using Spdx3.Utility;
 9
 10namespace Spdx3.Model.Security.Classes;
 11
 12/// <summary>
 13/// Provides a CVSS version 4 assessment for a vulnerability.
 14/// See https://spdx.github.io/spdx-spec/v3.0.1/model/Security/Classes/CvssV4VulnAssessmentRelationship/
 15/// </summary>
 16public class CvssV4VulnAssessmentRelationship : VulnAssessmentRelationship
 17{
 18    [JsonPropertyName("security_score")]
 19    [JsonConverter(typeof(SpdxModelConverterFactory))]
 1120    public required double? Score { get; set; }
 21
 22    [JsonPropertyName("security_severity")]
 23    [JsonConverter(typeof(SpdxModelConverterFactory))]
 1224    public required CvssSeverityType? Severity { get; set; }
 25
 26    [JsonPropertyName("security_vectorString")]
 27    [JsonConverter(typeof(SpdxModelConverterFactory))]
 1128    public required string? VectorString { get; set; }
 29
 30    public override void Validate()
 31    {
 332        base.Validate();
 333        ValidateRequiredProperty(nameof(Score));
 334        ValidateRequiredProperty(nameof(VectorString));
 335        ValidateRequiredProperty(nameof(Severity));
 36
 337        if (RelationshipType.hasAssessmentFor != RelationshipType)
 38        {
 139            throw new Spdx3ValidationException(this, nameof(RelationshipType), "Must be 'hasAssessmentFor'");
 40        }
 241    }
 42
 43    // protected internal no-parm constructor required for deserialization
 44#pragma warning disable CS8618, CS9264
 245    protected internal CvssV4VulnAssessmentRelationship()
 46    {
 247    }
 48#pragma warning restore CS8618, CS9264
 49
 50    [SetsRequiredMembers]
 51    public CvssV4VulnAssessmentRelationship(Catalog catalog, CreationInfo creationInfo, Element from, List<Element> to,
 252        double score, CvssSeverityType severity, string vectorString) : base(catalog, creationInfo,
 253        RelationshipType.hasAssessmentFor, from, to)
 54    {
 255        Score = score;
 256        Severity = severity;
 257        VectorString = vectorString;
 258    }
 59}