Skip to content

Commit 14e2b73

Browse files
committed
test: refactor ExecutionListenerAdapterTests to use Mockito spy
Address reviewer feedback. Signed-off-by: Samaresh Kumar Singh <[email protected]>
1 parent 6a09fd6 commit 14e2b73

File tree

1 file changed

+29
-137
lines changed

1 file changed

+29
-137
lines changed

platform-tests/src/test/java/org/junit/platform/launcher/core/ExecutionListenerAdapterTests.java

Lines changed: 29 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@
1010

1111
package org.junit.platform.launcher.core;
1212

13-
import static org.assertj.core.api.Assertions.assertThat;
1413
import static org.junit.platform.launcher.core.OutputDirectoryCreators.dummyOutputDirectoryCreator;
1514
import static org.mockito.Mockito.mock;
15+
import static org.mockito.Mockito.spy;
16+
import static org.mockito.Mockito.verify;
1617

1718
import java.util.Map;
1819

19-
import org.jspecify.annotations.Nullable;
20+
import org.junit.jupiter.api.BeforeEach;
2021
import org.junit.jupiter.api.Test;
2122
import org.junit.platform.commons.util.ReflectionUtils;
2223
import org.junit.platform.engine.TestDescriptor;
@@ -34,121 +35,80 @@
3435
*/
3536
class ExecutionListenerAdapterTests {
3637

37-
@Test
38-
void testReportingEntryPublished() {
39-
var testDescriptor = getSampleMethodTestDescriptor();
38+
private TestDescriptor testDescriptor;
39+
private InternalTestPlan testPlan;
40+
private TestExecutionListener testExecutionListener;
41+
private ExecutionListenerAdapter executionListenerAdapter;
42+
43+
@BeforeEach
44+
void setUp() {
45+
testDescriptor = getSampleMethodTestDescriptor();
4046

4147
var discoveryResult = new LauncherDiscoveryResult(
4248
Map.of(mock(), EngineResultInfo.completed(testDescriptor, DiscoveryIssueNotifier.NO_ISSUES)), mock(),
4349
dummyOutputDirectoryCreator());
44-
var testPlan = InternalTestPlan.from(discoveryResult);
45-
var testIdentifier = testPlan.getTestIdentifier(testDescriptor.getUniqueId());
50+
testPlan = InternalTestPlan.from(discoveryResult);
4651

47-
//not yet spyable with mockito? -> https://github.com/mockito/mockito/issues/146
48-
var testExecutionListener = new MockTestExecutionListener();
49-
var executionListenerAdapter = new ExecutionListenerAdapter(testPlan, testExecutionListener);
52+
testExecutionListener = spy(TestExecutionListener.class);
53+
executionListenerAdapter = new ExecutionListenerAdapter(testPlan, testExecutionListener);
54+
}
5055

56+
@Test
57+
void testReportingEntryPublished() {
58+
var testIdentifier = testPlan.getTestIdentifier(testDescriptor.getUniqueId());
5159
var entry = ReportEntry.from("one", "two");
60+
5261
executionListenerAdapter.reportingEntryPublished(testDescriptor, entry);
5362

54-
assertThat(testExecutionListener.entry).isEqualTo(entry);
55-
assertThat(testExecutionListener.testIdentifier).isEqualTo(testIdentifier);
63+
verify(testExecutionListener).reportingEntryPublished(testIdentifier, entry);
5664
}
5765

5866
@Test
5967
void testDynamicTestRegistered() {
60-
var testDescriptor = getSampleMethodTestDescriptor();
61-
62-
var discoveryResult = new LauncherDiscoveryResult(
63-
Map.of(mock(), EngineResultInfo.completed(testDescriptor, DiscoveryIssueNotifier.NO_ISSUES)), mock(),
64-
dummyOutputDirectoryCreator());
65-
var testPlan = InternalTestPlan.from(discoveryResult);
66-
67-
var testExecutionListener = new MockTestExecutionListener();
68-
var executionListenerAdapter = new ExecutionListenerAdapter(testPlan, testExecutionListener);
68+
var testIdentifier = testPlan.getTestIdentifier(testDescriptor.getUniqueId());
6969

7070
executionListenerAdapter.dynamicTestRegistered(testDescriptor);
7171

72-
var testIdentifier = testPlan.getTestIdentifier(testDescriptor.getUniqueId());
73-
assertThat(testExecutionListener.dynamicallyRegisteredIdentifier).isEqualTo(testIdentifier);
72+
verify(testExecutionListener).dynamicTestRegistered(testIdentifier);
7473
}
7574

7675
@Test
7776
void testExecutionStarted() {
78-
var testDescriptor = getSampleMethodTestDescriptor();
79-
80-
var discoveryResult = new LauncherDiscoveryResult(
81-
Map.of(mock(), EngineResultInfo.completed(testDescriptor, DiscoveryIssueNotifier.NO_ISSUES)), mock(),
82-
dummyOutputDirectoryCreator());
83-
var testPlan = InternalTestPlan.from(discoveryResult);
8477
var testIdentifier = testPlan.getTestIdentifier(testDescriptor.getUniqueId());
8578

86-
var testExecutionListener = new MockTestExecutionListener();
87-
var executionListenerAdapter = new ExecutionListenerAdapter(testPlan, testExecutionListener);
88-
8979
executionListenerAdapter.executionStarted(testDescriptor);
9080

91-
assertThat(testExecutionListener.startedIdentifier).isEqualTo(testIdentifier);
81+
verify(testExecutionListener).executionStarted(testIdentifier);
9282
}
9383

9484
@Test
9585
void testExecutionSkipped() {
96-
var testDescriptor = getSampleMethodTestDescriptor();
97-
98-
var discoveryResult = new LauncherDiscoveryResult(
99-
Map.of(mock(), EngineResultInfo.completed(testDescriptor, DiscoveryIssueNotifier.NO_ISSUES)), mock(),
100-
dummyOutputDirectoryCreator());
101-
var testPlan = InternalTestPlan.from(discoveryResult);
10286
var testIdentifier = testPlan.getTestIdentifier(testDescriptor.getUniqueId());
103-
104-
var testExecutionListener = new MockTestExecutionListener();
105-
var executionListenerAdapter = new ExecutionListenerAdapter(testPlan, testExecutionListener);
106-
10787
var reason = "Test skipped due to condition";
88+
10889
executionListenerAdapter.executionSkipped(testDescriptor, reason);
10990

110-
assertThat(testExecutionListener.skippedIdentifier).isEqualTo(testIdentifier);
111-
assertThat(testExecutionListener.skipReason).isEqualTo(reason);
91+
verify(testExecutionListener).executionSkipped(testIdentifier, reason);
11292
}
11393

11494
@Test
11595
void testExecutionFinished() {
116-
var testDescriptor = getSampleMethodTestDescriptor();
117-
118-
var discoveryResult = new LauncherDiscoveryResult(
119-
Map.of(mock(), EngineResultInfo.completed(testDescriptor, DiscoveryIssueNotifier.NO_ISSUES)), mock(),
120-
dummyOutputDirectoryCreator());
121-
var testPlan = InternalTestPlan.from(discoveryResult);
12296
var testIdentifier = testPlan.getTestIdentifier(testDescriptor.getUniqueId());
123-
124-
var testExecutionListener = new MockTestExecutionListener();
125-
var executionListenerAdapter = new ExecutionListenerAdapter(testPlan, testExecutionListener);
126-
12797
var result = mock(TestExecutionResult.class);
98+
12899
executionListenerAdapter.executionFinished(testDescriptor, result);
129100

130-
assertThat(testExecutionListener.finishedIdentifier).isEqualTo(testIdentifier);
131-
assertThat(testExecutionListener.executionResult).isEqualTo(result);
101+
verify(testExecutionListener).executionFinished(testIdentifier, result);
132102
}
133103

134104
@Test
135105
void testFileEntryPublished() {
136-
var testDescriptor = getSampleMethodTestDescriptor();
137-
138-
var discoveryResult = new LauncherDiscoveryResult(
139-
Map.of(mock(), EngineResultInfo.completed(testDescriptor, DiscoveryIssueNotifier.NO_ISSUES)), mock(),
140-
dummyOutputDirectoryCreator());
141-
var testPlan = InternalTestPlan.from(discoveryResult);
142106
var testIdentifier = testPlan.getTestIdentifier(testDescriptor.getUniqueId());
143-
144-
var testExecutionListener = new MockTestExecutionListener();
145-
var executionListenerAdapter = new ExecutionListenerAdapter(testPlan, testExecutionListener);
146-
147107
var fileEntry = mock(FileEntry.class);
108+
148109
executionListenerAdapter.fileEntryPublished(testDescriptor, fileEntry);
149110

150-
assertThat(testExecutionListener.fileEntryIdentifier).isEqualTo(testIdentifier);
151-
assertThat(testExecutionListener.publishedFileEntry).isEqualTo(fileEntry);
111+
verify(testExecutionListener).fileEntryPublished(testIdentifier, fileEntry);
152112
}
153113

154114
private TestDescriptor getSampleMethodTestDescriptor() {
@@ -161,72 +121,4 @@ private TestDescriptor getSampleMethodTestDescriptor() {
161121
void nothing() {
162122
}
163123

164-
static class MockTestExecutionListener implements TestExecutionListener {
165-
166-
@Nullable
167-
public TestIdentifier testIdentifier;
168-
169-
@Nullable
170-
public ReportEntry entry;
171-
172-
@Nullable
173-
public TestIdentifier dynamicallyRegisteredIdentifier;
174-
175-
@Nullable
176-
public TestIdentifier startedIdentifier;
177-
178-
@Nullable
179-
public TestIdentifier skippedIdentifier;
180-
181-
@Nullable
182-
public String skipReason;
183-
184-
@Nullable
185-
public TestIdentifier finishedIdentifier;
186-
187-
@Nullable
188-
public TestExecutionResult executionResult;
189-
190-
@Nullable
191-
public TestIdentifier fileEntryIdentifier;
192-
193-
@Nullable
194-
public FileEntry publishedFileEntry;
195-
196-
@Override
197-
public void dynamicTestRegistered(TestIdentifier testIdentifier) {
198-
this.dynamicallyRegisteredIdentifier = testIdentifier;
199-
}
200-
201-
@Override
202-
public void executionStarted(TestIdentifier testIdentifier) {
203-
this.startedIdentifier = testIdentifier;
204-
}
205-
206-
@Override
207-
public void executionSkipped(TestIdentifier testIdentifier, String reason) {
208-
this.skippedIdentifier = testIdentifier;
209-
this.skipReason = reason;
210-
}
211-
212-
@Override
213-
public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) {
214-
this.finishedIdentifier = testIdentifier;
215-
this.executionResult = testExecutionResult;
216-
}
217-
218-
@Override
219-
public void reportingEntryPublished(TestIdentifier testIdentifier, ReportEntry entry) {
220-
this.testIdentifier = testIdentifier;
221-
this.entry = entry;
222-
}
223-
224-
@Override
225-
public void fileEntryPublished(TestIdentifier testIdentifier, FileEntry fileEntry) {
226-
this.fileEntryIdentifier = testIdentifier;
227-
this.publishedFileEntry = fileEntry;
228-
}
229-
230-
}
231-
232124
}

0 commit comments

Comments
 (0)