Skip to content

Commit b0d160b

Browse files
committed
save requirementLevel in GuidelineCheckResult
1 parent f9ee1bd commit b0d160b

12 files changed

+126
-64
lines changed

src/main/java/de/rub/nds/scanner/core/guideline/FailedCheckGuidelineResult.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,13 @@ private FailedCheckGuidelineResult() {
1616
super(null, null);
1717
}
1818

19-
public FailedCheckGuidelineResult(String checkName, GuidelineAdherence adherence) {
20-
super(checkName, adherence);
19+
public FailedCheckGuidelineResult(GuidelineCheck check, GuidelineAdherence adherence) {
20+
super(check, adherence);
2121
}
2222

23-
public FailedCheckGuidelineResult(String checkName, GuidelineAdherence adherence, String hint) {
24-
super(checkName, adherence, hint);
23+
public FailedCheckGuidelineResult(
24+
GuidelineCheck check, GuidelineAdherence adherence, String hint) {
25+
super(check, adherence, hint);
2526
}
2627

2728
@Override

src/main/java/de/rub/nds/scanner/core/guideline/GuidelineCheckResult.java

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,30 @@
1414
public abstract class GuidelineCheckResult {
1515

1616
private String checkName;
17+
private RequirementLevel level;
1718
private GuidelineAdherence adherence;
1819
private String hint;
1920

2021
@SuppressWarnings("unused")
2122
// Default constructor for deserialization
2223
private GuidelineCheckResult() {
2324
this.checkName = null;
25+
this.level = null;
2426
this.adherence = null;
2527
this.hint = null;
2628
}
2729

28-
protected GuidelineCheckResult(String checkName, GuidelineAdherence adherence) {
29-
this.checkName = checkName;
30+
protected GuidelineCheckResult(GuidelineCheck check, GuidelineAdherence adherence) {
31+
this.checkName = check != null ? check.getName() : null;
32+
this.level = check != null ? check.getRequirementLevel() : null;
3033
this.adherence = adherence;
3134
this.hint = null;
3235
}
3336

34-
protected GuidelineCheckResult(String checkName, GuidelineAdherence adherence, String hint) {
35-
this.checkName = checkName;
37+
protected GuidelineCheckResult(
38+
GuidelineCheck check, GuidelineAdherence adherence, String hint) {
39+
this.checkName = check.getName();
40+
this.level = check.getRequirementLevel();
3641
this.adherence = adherence;
3742
this.hint = hint;
3843
}
@@ -90,4 +95,22 @@ public String getHint() {
9095
public void setHint(String hint) {
9196
this.hint = hint;
9297
}
98+
99+
/**
100+
* Sets the requirement level of the check.
101+
*
102+
* @return the requirementLevel to set
103+
*/
104+
public RequirementLevel getLevel() {
105+
return level;
106+
}
107+
108+
/**
109+
* Sets the requirement level of the check.
110+
*
111+
* @param level the requirementLevel or null if non is set
112+
*/
113+
public void setLevel(RequirementLevel level) {
114+
this.level = level;
115+
}
93116
}

src/main/java/de/rub/nds/scanner/core/guideline/GuidelineChecker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public void fillReport(ReportT report) {
3737
if (!check.passesCondition(report)) {
3838
result =
3939
new MissingRequirementGuidelineResult(
40-
check.getName(),
40+
check,
4141
GuidelineAdherence.CONDITION_NOT_MET,
4242
"Condition was not met => Check is skipped.");
4343
} else {
@@ -47,7 +47,7 @@ public void fillReport(ReportT report) {
4747
LOGGER.debug("Failed evaluating check: ", throwable);
4848
result =
4949
new FailedCheckGuidelineResult(
50-
check.getName(),
50+
check,
5151
GuidelineAdherence.CHECK_FAILED,
5252
throwable.getLocalizedMessage());
5353
}

src/main/java/de/rub/nds/scanner/core/guideline/MissingRequirementGuidelineResult.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ private MissingRequirementGuidelineResult() {
1717
super(null, null);
1818
}
1919

20-
public MissingRequirementGuidelineResult(String checkName, GuidelineAdherence adherence) {
21-
super(checkName, adherence);
20+
public MissingRequirementGuidelineResult(GuidelineCheck check, GuidelineAdherence adherence) {
21+
super(check, adherence);
2222
}
2323

2424
public MissingRequirementGuidelineResult(
25-
String checkName, GuidelineAdherence adherence, String hint) {
26-
super(checkName, adherence, hint);
25+
GuidelineCheck check, GuidelineAdherence adherence, String hint) {
26+
super(check, adherence, hint);
2727
}
2828
}

src/test/java/de/rub/nds/scanner/core/guideline/FailedCheckGuidelineResultTest.java

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,33 +12,35 @@
1212
import static org.junit.jupiter.api.Assertions.assertNotNull;
1313
import static org.junit.jupiter.api.Assertions.assertNull;
1414

15+
import de.rub.nds.scanner.core.guideline.testutil.IOTestGuidelineCheck;
1516
import java.lang.reflect.Constructor;
1617
import org.junit.jupiter.api.Test;
1718

1819
class FailedCheckGuidelineResultTest {
1920

2021
@Test
21-
void testConstructorWithNameAndAdherence() {
22-
String checkName = "TestCheck";
22+
void testConstructorWithCheckAndAdherence() {
23+
GuidelineCheck check = new IOTestGuidelineCheck("Test name", RequirementLevel.MUST);
2324
GuidelineAdherence adherence = GuidelineAdherence.CHECK_FAILED;
2425

25-
FailedCheckGuidelineResult result = new FailedCheckGuidelineResult(checkName, adherence);
26+
FailedCheckGuidelineResult result = new FailedCheckGuidelineResult(check, adherence);
2627

27-
assertEquals(checkName, result.getCheckName());
28+
assertEquals(check.getName(), result.getCheckName());
29+
assertEquals(check.getRequirementLevel(), result.getLevel());
2830
assertEquals(adherence, result.getAdherence());
2931
assertNull(result.getHint());
3032
}
3133

3234
@Test
33-
void testConstructorWithNameAdherenceAndHint() {
34-
String checkName = "TestCheck";
35+
void testConstructorWithCheckAdherenceAndHint() {
36+
GuidelineCheck check = new IOTestGuidelineCheck("Test name", RequirementLevel.MUST);
3537
GuidelineAdherence adherence = GuidelineAdherence.CHECK_FAILED;
3638
String hint = "This check failed due to an exception";
3739

38-
FailedCheckGuidelineResult result =
39-
new FailedCheckGuidelineResult(checkName, adherence, hint);
40+
FailedCheckGuidelineResult result = new FailedCheckGuidelineResult(check, adherence, hint);
4041

41-
assertEquals(checkName, result.getCheckName());
42+
assertEquals(check.getName(), result.getCheckName());
43+
assertEquals(check.getRequirementLevel(), result.getLevel());
4244
assertEquals(adherence, result.getAdherence());
4345
assertEquals(hint, result.getHint());
4446
}
@@ -54,20 +56,24 @@ void testDefaultConstructorUsedInReflection() throws Exception {
5456
assertNotNull(instance);
5557
FailedCheckGuidelineResult result = (FailedCheckGuidelineResult) instance;
5658
assertNull(result.getCheckName());
59+
assertNull(result.getLevel());
5760
assertNull(result.getAdherence());
5861
}
5962

6063
@Test
6164
void testInheritanceFromGuidelineCheckResult() {
65+
GuidelineCheck check = new IOTestGuidelineCheck("Test name", RequirementLevel.MUST);
6266
FailedCheckGuidelineResult result =
63-
new FailedCheckGuidelineResult("Test", GuidelineAdherence.CHECK_FAILED);
67+
new FailedCheckGuidelineResult(check, GuidelineAdherence.CHECK_FAILED);
6468

6569
// Test inherited setters
6670
result.setCheckName("NewName");
6771
result.setAdherence(GuidelineAdherence.VIOLATED);
6872
result.setHint("New hint");
73+
result.setLevel(RequirementLevel.MAY);
6974

7075
assertEquals("NewName", result.getCheckName());
76+
assertEquals(RequirementLevel.MAY, result.getLevel());
7177
assertEquals(GuidelineAdherence.VIOLATED, result.getAdherence());
7278
assertEquals("New hint", result.getHint());
7379
}

src/test/java/de/rub/nds/scanner/core/guideline/GuidelineCheckResultTest.java

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,21 @@
1212
import static org.junit.jupiter.api.Assertions.assertNotNull;
1313
import static org.junit.jupiter.api.Assertions.assertNull;
1414

15+
import de.rub.nds.scanner.core.guideline.testutil.IOTestGuidelineCheck;
1516
import java.lang.reflect.Constructor;
1617
import org.junit.jupiter.api.Test;
1718

1819
class GuidelineCheckResultTest {
1920

2021
// Concrete implementation for testing
2122
private static class ConcreteGuidelineCheckResult extends GuidelineCheckResult {
22-
public ConcreteGuidelineCheckResult(String checkName, GuidelineAdherence adherence) {
23-
super(checkName, adherence);
23+
public ConcreteGuidelineCheckResult(GuidelineCheck check, GuidelineAdherence adherence) {
24+
super(check, adherence);
2425
}
2526

2627
public ConcreteGuidelineCheckResult(
27-
String checkName, GuidelineAdherence adherence, String hint) {
28-
super(checkName, adherence, hint);
28+
GuidelineCheck check, GuidelineAdherence adherence, String hint) {
29+
super(check, adherence, hint);
2930
}
3031

3132
@SuppressWarnings("unused")
@@ -35,42 +36,46 @@ private ConcreteGuidelineCheckResult() {
3536
}
3637

3738
@Test
38-
void testConstructorWithNameAndAdherence() {
39-
String checkName = "TestCheck";
39+
void testConstructorWithCheckAndAdherence() {
40+
GuidelineCheck check = new IOTestGuidelineCheck("Test name", RequirementLevel.MUST);
4041
GuidelineAdherence adherence = GuidelineAdherence.ADHERED;
4142

42-
ConcreteGuidelineCheckResult result =
43-
new ConcreteGuidelineCheckResult(checkName, adherence);
43+
ConcreteGuidelineCheckResult result = new ConcreteGuidelineCheckResult(check, adherence);
4444

45-
assertEquals(checkName, result.getCheckName());
45+
assertEquals(check.getName(), result.getCheckName());
46+
assertEquals(check.getRequirementLevel(), result.getLevel());
4647
assertEquals(adherence, result.getAdherence());
4748
assertNull(result.getHint());
4849
}
4950

5051
@Test
51-
void testConstructorWithNameAdherenceAndHint() {
52-
String checkName = "TestCheck";
52+
void testConstructorWithCheckAdherenceAndHint() {
53+
GuidelineCheck check = new IOTestGuidelineCheck("Test name", RequirementLevel.MUST);
5354
GuidelineAdherence adherence = GuidelineAdherence.VIOLATED;
5455
String hint = "Test hint";
5556

5657
ConcreteGuidelineCheckResult result =
57-
new ConcreteGuidelineCheckResult(checkName, adherence, hint);
58+
new ConcreteGuidelineCheckResult(check, adherence, hint);
5859

59-
assertEquals(checkName, result.getCheckName());
60+
assertEquals(check.getName(), result.getCheckName());
61+
assertEquals(check.getRequirementLevel(), result.getLevel());
6062
assertEquals(adherence, result.getAdherence());
6163
assertEquals(hint, result.getHint());
6264
}
6365

6466
@Test
6567
void testSettersAndGetters() {
68+
GuidelineCheck check = new IOTestGuidelineCheck("Test name", RequirementLevel.MUST);
6669
ConcreteGuidelineCheckResult result =
67-
new ConcreteGuidelineCheckResult("InitialName", GuidelineAdherence.ADHERED);
70+
new ConcreteGuidelineCheckResult(check, GuidelineAdherence.ADHERED);
6871

6972
result.setCheckName("UpdatedName");
7073
result.setAdherence(GuidelineAdherence.VIOLATED);
74+
result.setLevel(RequirementLevel.MAY);
7175
result.setHint("Updated hint");
7276

7377
assertEquals("UpdatedName", result.getCheckName());
78+
assertEquals(RequirementLevel.MAY, result.getLevel());
7479
assertEquals(GuidelineAdherence.VIOLATED, result.getAdherence());
7580
assertEquals("Updated hint", result.getHint());
7681
}
@@ -87,6 +92,7 @@ void testDefaultConstructorUsedInReflection() throws Exception {
8792
ConcreteGuidelineCheckResult result = (ConcreteGuidelineCheckResult) instance;
8893
assertNull(result.getCheckName());
8994
assertNull(result.getAdherence());
95+
assertNull(result.getLevel());
9096
assertNull(result.getHint());
9197
}
9298
}

src/test/java/de/rub/nds/scanner/core/guideline/GuidelineCheckTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public ConcreteGuidelineCheck(
8686

8787
@Override
8888
public <ReportT extends ScanReport> GuidelineCheckResult evaluate(ReportT report) {
89-
return new FailedCheckGuidelineResult(getName(), fixedResult);
89+
return new FailedCheckGuidelineResult(this, fixedResult);
9090
}
9191
}
9292

src/test/java/de/rub/nds/scanner/core/guideline/GuidelineCheckerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public PassingCheck(String name) {
8484

8585
@Override
8686
public <ReportT extends ScanReport> GuidelineCheckResult evaluate(ReportT report) {
87-
return new FailedCheckGuidelineResult(getName(), GuidelineAdherence.ADHERED);
87+
return new FailedCheckGuidelineResult(this, GuidelineAdherence.ADHERED);
8888
}
8989
}
9090

@@ -95,7 +95,7 @@ public FailingCheck(String name) {
9595

9696
@Override
9797
public <ReportT extends ScanReport> GuidelineCheckResult evaluate(ReportT report) {
98-
return new FailedCheckGuidelineResult(getName(), GuidelineAdherence.VIOLATED);
98+
return new FailedCheckGuidelineResult(this, GuidelineAdherence.VIOLATED);
9999
}
100100
}
101101

@@ -106,7 +106,7 @@ public ConditionalCheck(String name, GuidelineCheckCondition condition) {
106106

107107
@Override
108108
public <ReportT extends ScanReport> GuidelineCheckResult evaluate(ReportT report) {
109-
return new FailedCheckGuidelineResult(getName(), GuidelineAdherence.ADHERED);
109+
return new FailedCheckGuidelineResult(this, GuidelineAdherence.ADHERED);
110110
}
111111
}
112112

0 commit comments

Comments
 (0)