Skip to content

Commit d384dec

Browse files
authored
Merge pull request #110 from ruromero/TC-4723
feat(api): add unknown severity field and enum value
2 parents ea9aaad + 75dbb13 commit d384dec

3 files changed

Lines changed: 26 additions & 8 deletions

File tree

api/v5/openapi.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,9 @@ components:
448448
low:
449449
type: integer
450450
default: 0
451+
unknown:
452+
type: integer
453+
default: 0
451454
remediations:
452455
type: integer
453456
default: 0
@@ -491,6 +494,7 @@ components:
491494
- HIGH
492495
- MEDIUM
493496
- LOW
497+
- UNKNOWN
494498
Issue:
495499
type: object
496500
properties:

src/main/java/io/github/guacsec/trustifyda/api/v5/SeverityUtils.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ public static Severity fromValue(String value) {
2727
}
2828

2929
// From: https://nvd.nist.gov/vuln-metrics/cvss
30-
public static Severity fromScore(float score) {
30+
public static Severity fromScore(Float score) {
31+
if (score == null) {
32+
return Severity.UNKNOWN;
33+
}
3134
if (score < 4) {
3235
return Severity.LOW;
3336
}

src/test/java/io/github/guacsec/trustifyda/api/v5/SeverityUtilsTest.java

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,30 @@ void fromValueIsCaseInsensitive() {
3737
}
3838

3939
@Test
40-
void fromValueRejectsUnknownSeverity() {
41-
assertThrows(IllegalArgumentException.class, () -> SeverityUtils.fromValue("unknown"));
40+
void fromValueParsesUnknownSeverity() {
41+
assertEquals(Severity.UNKNOWN, SeverityUtils.fromValue("unknown"));
42+
assertEquals(Severity.UNKNOWN, SeverityUtils.fromValue("UNKNOWN"));
43+
}
44+
45+
@Test
46+
void fromValueRejectsInvalidSeverity() {
47+
assertThrows(IllegalArgumentException.class, () -> SeverityUtils.fromValue("invalid"));
48+
}
49+
50+
@Test
51+
void fromScoreReturnsUnknownForNullInput() {
52+
assertEquals(Severity.UNKNOWN, SeverityUtils.fromScore(null));
4253
}
4354

4455
@Test
4556
void fromScoreMapsCvssRanges() {
46-
assertEquals(Severity.LOW, SeverityUtils.fromScore(0));
57+
assertEquals(Severity.LOW, SeverityUtils.fromScore(0f));
4758
assertEquals(Severity.LOW, SeverityUtils.fromScore(3.9f));
48-
assertEquals(Severity.MEDIUM, SeverityUtils.fromScore(4));
59+
assertEquals(Severity.MEDIUM, SeverityUtils.fromScore(4f));
4960
assertEquals(Severity.MEDIUM, SeverityUtils.fromScore(6.9f));
50-
assertEquals(Severity.HIGH, SeverityUtils.fromScore(7));
61+
assertEquals(Severity.HIGH, SeverityUtils.fromScore(7f));
5162
assertEquals(Severity.HIGH, SeverityUtils.fromScore(8.9f));
52-
assertEquals(Severity.CRITICAL, SeverityUtils.fromScore(9));
53-
assertEquals(Severity.CRITICAL, SeverityUtils.fromScore(10));
63+
assertEquals(Severity.CRITICAL, SeverityUtils.fromScore(9f));
64+
assertEquals(Severity.CRITICAL, SeverityUtils.fromScore(10f));
5465
}
5566
}

0 commit comments

Comments
 (0)