Skip to content

Commit 52baeeb

Browse files
committed
Add StatExtractorTest for 100% coverage
- Test abstract class through concrete implementation - Test constructor and all methods - Test null value extraction - Test container management - Test multiple extractions
1 parent 6036a7e commit 52baeeb

File tree

1 file changed

+117
-0
lines changed

1 file changed

+117
-0
lines changed
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
/*
2+
* Scanner Core - A Modular Framework for Probe Definition, Execution, and Result Analysis.
3+
*
4+
* Copyright 2017-2023 Ruhr University Bochum, Paderborn University, Technology Innovation Institute, and Hackmanit GmbH
5+
*
6+
* Licensed under Apache License, Version 2.0
7+
* http://www.apache.org/licenses/LICENSE-2.0.txt
8+
*/
9+
package de.rub.nds.scanner.core.passive;
10+
11+
import static org.junit.jupiter.api.Assertions.*;
12+
13+
import java.util.List;
14+
import org.junit.jupiter.api.BeforeEach;
15+
import org.junit.jupiter.api.Test;
16+
17+
public class StatExtractorTest {
18+
19+
private TestStatExtractor extractor;
20+
private TestState state1;
21+
private TestState state2;
22+
23+
@BeforeEach
24+
public void setUp() {
25+
extractor = new TestStatExtractor();
26+
state1 = new TestState("value1");
27+
state2 = new TestState("value2");
28+
}
29+
30+
@Test
31+
public void testConstructor() {
32+
assertNotNull(extractor.getContainer());
33+
assertNotNull(extractor.getValueType());
34+
assertEquals(0, extractor.getContainer().getNumberOfExtractedValues());
35+
}
36+
37+
@Test
38+
public void testGetValueType() {
39+
TrackableValue valueType = extractor.getValueType();
40+
assertNotNull(valueType);
41+
assertTrue(valueType instanceof TestTrackableValue);
42+
}
43+
44+
@Test
45+
public void testPut() {
46+
TestTrackableValue value = new TestTrackableValue("test");
47+
extractor.put(value);
48+
49+
assertEquals(1, extractor.getContainer().getNumberOfExtractedValues());
50+
assertEquals(value, extractor.getContainer().getExtractedValueList().get(0));
51+
}
52+
53+
@Test
54+
public void testPutNull() {
55+
extractor.put(null);
56+
57+
assertEquals(1, extractor.getContainer().getNumberOfExtractedValues());
58+
assertNull(extractor.getContainer().getExtractedValueList().get(0));
59+
}
60+
61+
@Test
62+
public void testExtract() {
63+
extractor.extract(state1);
64+
extractor.extract(state2);
65+
66+
List<TestTrackableValue> values = extractor.getContainer().getExtractedValueList();
67+
assertEquals(2, values.size());
68+
assertEquals("value1", values.get(0).getValue());
69+
assertEquals("value2", values.get(1).getValue());
70+
}
71+
72+
@Test
73+
public void testExtractWithNullState() {
74+
extractor.extract(null);
75+
assertEquals(0, extractor.getContainer().getNumberOfExtractedValues());
76+
}
77+
78+
@Test
79+
public void testExtractWithNullValue() {
80+
TestState nullValueState = new TestState(null);
81+
extractor.extract(nullValueState);
82+
assertEquals(0, extractor.getContainer().getNumberOfExtractedValues());
83+
}
84+
85+
@Test
86+
public void testExtractNullValue() {
87+
extractor.setShouldExtractNull(true);
88+
extractor.extract(state1);
89+
90+
assertEquals(1, extractor.getContainer().getNumberOfExtractedValues());
91+
assertNull(extractor.getContainer().getExtractedValueList().get(0));
92+
}
93+
94+
@Test
95+
public void testGetContainer() {
96+
ExtractedValueContainer<TestTrackableValue> container = extractor.getContainer();
97+
assertNotNull(container);
98+
99+
// Verify it's the same container
100+
extractor.put(new TestTrackableValue("test"));
101+
assertEquals(1, container.getNumberOfExtractedValues());
102+
}
103+
104+
@Test
105+
public void testMultipleExtractions() {
106+
// Test multiple extractions maintain order
107+
for (int i = 0; i < 5; i++) {
108+
extractor.extract(new TestState("value" + i));
109+
}
110+
111+
List<TestTrackableValue> values = extractor.getContainer().getExtractedValueList();
112+
assertEquals(5, values.size());
113+
for (int i = 0; i < 5; i++) {
114+
assertEquals("value" + i, values.get(i).getValue());
115+
}
116+
}
117+
}

0 commit comments

Comments
 (0)