< Summary

Information
Class: Spdx3.Model.Security.Classes.EpssVulnAssessmentRelationship
Assembly: Spdx3
File(s): /home/runner/work/Spdx3/Spdx3/Spdx3/Model/Security/Classes/EpssVulnAssessmentRelationship.cs
Line coverage
100%
Covered lines: 19
Uncovered lines: 0
Coverable lines: 19
Total lines: 67
Line coverage: 100%
Branch coverage
100%
Covered branches: 12
Total branches: 12
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_Percentile()100%11100%
set_Percentile(...)100%66100%
get_Probability()100%11100%
set_Probability(...)100%66100%
.ctor()100%11100%
.ctor(...)100%11100%

File(s)

/home/runner/work/Spdx3/Spdx3/Spdx3/Model/Security/Classes/EpssVulnAssessmentRelationship.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.Serialization;
 7using Spdx3.Utility;
 8
 9namespace Spdx3.Model.Security.Classes;
 10
 11/// <summary>
 12/// Provides an EPSS assessment for a vulnerability.
 13/// See https://spdx.github.io/spdx-spec/v3.0.1/model/Security/Classes/EpssVulnAssessmentRelationship/
 14/// </summary>
 15public class EpssVulnAssessmentRelationship : VulnAssessmentRelationship
 16{
 17    private double _percentile;
 18    private double _probability;
 19
 20    [JsonPropertyName("security_percentile")]
 21    [JsonConverter(typeof(SpdxModelConverterFactory))]
 22    public required double Percentile
 23    {
 424        get => _percentile;
 25        set
 26        {
 1127            if (value is < 0.0 or > 1.0)
 28            {
 429                throw new Spdx3Exception("Illegal value for Percentile",
 430                    new ArgumentException("The value must be between 0.0 and 1.0 (inclusive)"));
 31            }
 732            _percentile = value;
 733        }
 34    }
 35
 36    [JsonPropertyName("security_probability")]
 37    [JsonConverter(typeof(SpdxModelConverterFactory))]
 38    public required double Probability
 39    {
 440        get => _probability;
 41        set
 42        {
 943            if (value is < 0.0 or > 1.0)
 44            {
 445                throw new Spdx3Exception("Illegal value for Probability",
 446                    new ArgumentException("The value must be between 0.0 and 1.0 (inclusive)"));
 47            }
 548            _probability = value;
 549        }
 50    }
 51
 52    // protected internal no-parm constructor required for deserialization
 53#pragma warning disable CS8618, CS9264
 754    protected internal EpssVulnAssessmentRelationship()
 55    {
 756    }
 57#pragma warning restore CS8618, CS9264
 58
 59    [SetsRequiredMembers]
 60    public EpssVulnAssessmentRelationship(Catalog catalog, CreationInfo creationInfo, Element from, List<Element> to,
 261        double percentile, double probability) : base(catalog, creationInfo, RelationshipType.hasAssessmentFor, from,
 262        to)
 63    {
 264        Percentile = percentile;
 265        Probability = probability;
 266    }
 67}