Skip to content

Commit 3c40369

Browse files
committed
Migrate builder tests to JUnit 5 #903
This change migrates the builder tests to JUnit 5. It replaces the JUnit 4 WorkspaceTestRule with the newly introduced JUnit 5 WorkspaceResetExtension and exchanges all JUnit 4 dependencies with JUnit 5 dependencies, including assertions. Contributes to #903
1 parent 123acf2 commit 3c40369

20 files changed

+446
-371
lines changed

resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/builders/AutoBuildJobTest.java

Lines changed: 28 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
import static org.eclipse.core.tests.resources.ResourceTestUtil.createTestMonitor;
1818
import static org.eclipse.core.tests.resources.ResourceTestUtil.setAutoBuilding;
1919
import static org.eclipse.core.tests.resources.ResourceTestUtil.updateProjectDescription;
20-
import static org.junit.Assert.assertEquals;
21-
import static org.junit.Assert.assertThrows;
20+
import static org.junit.jupiter.api.Assertions.assertEquals;
21+
import static org.junit.jupiter.api.Assertions.assertThrows;
2222

2323
import java.util.Map;
2424
import java.util.concurrent.ExecutionException;
@@ -41,24 +41,18 @@
4141
import org.eclipse.core.runtime.jobs.Job;
4242
import org.eclipse.core.runtime.jobs.JobChangeAdapter;
4343
import org.eclipse.core.tests.internal.builders.TestBuilder.BuilderRuleCallback;
44-
import org.eclipse.core.tests.resources.WorkspaceTestRule;
45-
import org.junit.After;
46-
import org.junit.Before;
47-
import org.junit.Rule;
48-
import org.junit.Test;
49-
import org.junit.rules.TestName;
44+
import org.eclipse.core.tests.resources.util.WorkspaceResetExtension;
45+
import org.junit.jupiter.api.AfterEach;
46+
import org.junit.jupiter.api.BeforeEach;
47+
import org.junit.jupiter.api.Test;
48+
import org.junit.jupiter.api.TestInfo;
49+
import org.junit.jupiter.api.extension.ExtendWith;
5050

5151
/**
5252
* Test for various AutoBuildJob scheduling use cases
5353
*/
54+
@ExtendWith(WorkspaceResetExtension.class)
5455
public class AutoBuildJobTest {
55-
56-
@Rule
57-
public TestName testName = new TestName();
58-
59-
@Rule
60-
public WorkspaceTestRule workspaceRule = new WorkspaceTestRule();
61-
6256
private IProject project;
6357
private AtomicLong running;
6458
private AtomicLong scheduled;
@@ -80,26 +74,26 @@ public void running(IJobChangeEvent event) {
8074
}
8175
};
8276

83-
@Before
84-
public void setUp() throws Exception {
77+
@BeforeEach
78+
public void setUp(TestInfo testInfo) throws Exception {
8579
scheduled = new AtomicLong(0);
8680
running = new AtomicLong(0);
87-
setupProjectWithOurBuilder();
81+
setupProjectWithOurBuilder(testInfo.getTestMethod().get().getName());
8882
setAutoBuilding(true);
8983
Job.getJobManager().addJobChangeListener(jobChangeListener);
9084
}
9185

92-
@After
86+
@AfterEach
9387
public void tearDown() throws Exception {
9488
Job.getJobManager().removeJobChangeListener(jobChangeListener);
9589
}
9690

97-
private void setupProjectWithOurBuilder() throws CoreException {
98-
project = getWorkspace().getRoot().getProject(testName.getMethodName());
91+
private void setupProjectWithOurBuilder(String testMethodName) throws CoreException {
92+
project = getWorkspace().getRoot().getProject(testMethodName);
9993
project.create(createTestMonitor());
10094
project.open(createTestMonitor());
10195
updateProjectDescription(project).addingCommand(EmptyDeltaBuilder.BUILDER_NAME)
102-
.withTestBuilderId(testName.getMethodName()).apply();
96+
.withTestBuilderId(testMethodName).apply();
10397
}
10498

10599
private void requestAutoBuildJobExecution() {
@@ -139,8 +133,8 @@ public IProject[] build(int kind, Map<String, String> args, IProgressMonitor mon
139133

140134
triggerAutoBuildAndWait();
141135
Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, null);
142-
assertEquals("Should see one scheduled() call", 1, scheduled.get());
143-
assertEquals("Should see one running() call", 1, running.get());
136+
assertEquals(1, scheduled.get(), "Should see one scheduled() call");
137+
assertEquals(1, running.get(), "Should see one running() call");
144138

145139
if (cancel) {
146140
assertEquals(true, cancelled.get());
@@ -167,23 +161,23 @@ public IProject[] build(int kind, Map<String, String> args, IProgressMonitor mon
167161

168162
triggerAutoBuildAndWait();
169163
Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, null);
170-
assertEquals("Should see two scheduled() calls", 2, scheduled.get());
171-
assertEquals("Should see two running() calls", 2, running.get());
164+
assertEquals(2, scheduled.get(), "Should see two scheduled() calls");
165+
assertEquals(2, running.get(), "Should see two running() calls");
172166
}
173167

174168
@Test
175169
public void testWaitForAutoBuild_JobManagerIsSuspended_ExceptionIsThrown() throws Exception {
176170
try {
177171
Job.getJobManager().suspend();
178172

179-
assertEquals("Scheduled calls", 0, scheduled.get());
180-
assertEquals("Running calls", 0, running.get());
173+
assertEquals(0, scheduled.get(), "Scheduled calls");
174+
assertEquals(0, running.get(), "Running calls");
181175

182176
triggerAutoBuildAndWait();
183177
Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, null);
184178

185-
assertEquals("Scheduled calls", 1, scheduled.get());
186-
assertEquals("Running calls", 0, running.get());
179+
assertEquals(1, scheduled.get(), "Scheduled calls");
180+
assertEquals(0, running.get(), "Running calls");
187181

188182
assertThrows(JobManagerSuspendedException.class, () -> waitForAutoBuild(2_000));
189183
} finally {
@@ -193,14 +187,14 @@ public void testWaitForAutoBuild_JobManagerIsSuspended_ExceptionIsThrown() throw
193187

194188
@Test
195189
public void testWaitForAutoBuild_JobManagerIsRunning_NoExceptionIsThrown() throws Throwable {
196-
assertEquals("Scheduled calls", 0, scheduled.get());
197-
assertEquals("Running calls", 0, running.get());
190+
assertEquals(0, scheduled.get(), "Scheduled calls");
191+
assertEquals(0, running.get(), "Running calls");
198192

199193
triggerAutoBuildAndWait();
200194
Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, null);
201195

202-
assertEquals("Scheduled calls", 1, scheduled.get());
203-
assertEquals("Running calls", 1, running.get());
196+
assertEquals(1, scheduled.get(), "Scheduled calls");
197+
assertEquals(1, running.get(), "Running calls");
204198

205199
waitForAutoBuild(2_000);
206200
}

resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/builders/BuildConfigurationsTest.java

Lines changed: 39 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
import static org.eclipse.core.tests.resources.ResourceTestUtil.createTestMonitor;
2121
import static org.eclipse.core.tests.resources.ResourceTestUtil.setAutoBuilding;
2222
import static org.eclipse.core.tests.resources.ResourceTestUtil.updateProjectDescription;
23-
import static org.junit.Assert.assertEquals;
24-
import static org.junit.Assert.assertFalse;
25-
import static org.junit.Assert.assertNotNull;
26-
import static org.junit.Assert.assertTrue;
23+
import static org.junit.jupiter.api.Assertions.assertEquals;
24+
import static org.junit.jupiter.api.Assertions.assertFalse;
25+
import static org.junit.jupiter.api.Assertions.assertNotNull;
26+
import static org.junit.jupiter.api.Assertions.assertTrue;
2727

2828
import java.util.Map;
2929
import org.eclipse.core.resources.IBuildConfiguration;
@@ -38,29 +38,27 @@
3838
import org.eclipse.core.runtime.IProgressMonitor;
3939
import org.eclipse.core.tests.internal.builders.TestBuilder.BuilderRuleCallback;
4040
import org.eclipse.core.tests.resources.ResourceDeltaVerifier;
41-
import org.eclipse.core.tests.resources.WorkspaceTestRule;
42-
import org.junit.Before;
43-
import org.junit.Rule;
44-
import org.junit.Test;
41+
import org.eclipse.core.tests.resources.util.WorkspaceResetExtension;
42+
import org.junit.jupiter.api.BeforeEach;
43+
import org.junit.jupiter.api.Test;
44+
import org.junit.jupiter.api.extension.ExtendWith;
4545

4646
/**
4747
* These tests exercise the project buildConfigs functionality which allows a different
4848
* builder to be run for different project buildConfigs.
4949
*/
50+
@ExtendWith(WorkspaceResetExtension.class)
5051
public class BuildConfigurationsTest {
51-
52-
@Rule
53-
public WorkspaceTestRule workspaceRule = new WorkspaceTestRule();
52+
private static final String variant0 = "Variant0";
53+
private static final String variant1 = "Variant1";
54+
private static final String variant2 = "Variant2";
5455

5556
private IProject project0;
5657
private IProject project1;
5758
private IFile file0;
5859
private IFile file1;
59-
private static final String variant0 = "Variant0";
60-
private static final String variant1 = "Variant1";
61-
private static final String variant2 = "Variant2";
6260

63-
@Before
61+
@BeforeEach
6462
public void setUp() throws Exception {
6563
// Create resources
6664
IWorkspaceRoot root = getWorkspace().getRoot();
@@ -165,22 +163,22 @@ public void testCloseAndOpenProject_Bug361675() throws CoreException {
165163
// was last built
166164
incrementalBuild(6, tempProject, variant0, true, 1, IncrementalProjectBuilder.INCREMENTAL_BUILD);
167165
ConfigurationBuilder builder0 = ConfigurationBuilder.getBuilder(tempProject.getBuildConfig(variant0));
168-
assertNotNull("6.10", builder0);
166+
assertNotNull(builder0);
169167
ResourceDeltaVerifier verifier0 = new ResourceDeltaVerifier();
170168
verifier0.addExpectedChange(tempFile0, tempProject, IResourceDelta.CHANGED, IResourceDelta.CONTENT);
171169
verifier0.addExpectedChange(tempFile1, tempProject, IResourceDelta.CHANGED, IResourceDelta.CONTENT);
172170
verifier0.verifyDelta(builder0.deltaForLastBuild);
173-
assertTrue("6.11: " + verifier0.getMessage(), verifier0.isDeltaValid());
171+
assertTrue(verifier0.isDeltaValid(), verifier0.getMessage());
174172

175173
// verify variant1 - only File1 is expected to have changed since it was last
176174
// built
177175
incrementalBuild(7, tempProject, variant1, true, 1, IncrementalProjectBuilder.INCREMENTAL_BUILD);
178176
ConfigurationBuilder builder1 = ConfigurationBuilder.getBuilder(tempProject.getBuildConfig(variant1));
179-
assertNotNull("7.10", builder1);
177+
assertNotNull(builder1);
180178
ResourceDeltaVerifier verifier1 = new ResourceDeltaVerifier();
181179
verifier1.addExpectedChange(tempFile1, tempProject, IResourceDelta.CHANGED, IResourceDelta.CONTENT);
182180
verifier1.verifyDelta(builder1.deltaForLastBuild);
183-
assertTrue("7.11: " + verifier1.getMessage(), verifier1.isDeltaValid());
181+
assertTrue(verifier1.isDeltaValid(), verifier1.getMessage());
184182

185183
// verify variant2 - no changes are expected since it was last built
186184
incrementalBuild(8, tempProject, variant2, false, 0, 0);
@@ -213,11 +211,11 @@ public void testBuildReferences() throws CoreException {
213211
setReferences(project0, variant0, new IBuildConfiguration[] {project0.getBuildConfig(variant1), project1.getBuildConfig(variant2), project1.getBuildConfig(variant0)});
214212
getWorkspace().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, createTestMonitor());
215213

216-
assertEquals("1.0", 4, ConfigurationBuilder.buildOrder.size());
217-
assertEquals("1.1", project0.getBuildConfig(variant1), ConfigurationBuilder.buildOrder.get(0));
218-
assertEquals("1.2", project1.getBuildConfig(variant0), ConfigurationBuilder.buildOrder.get(1));
219-
assertEquals("1.3", project1.getBuildConfig(variant2), ConfigurationBuilder.buildOrder.get(2));
220-
assertEquals("1.4", project0.getBuildConfig(variant0), ConfigurationBuilder.buildOrder.get(3));
214+
assertEquals(4, ConfigurationBuilder.buildOrder.size());
215+
assertEquals(project0.getBuildConfig(variant1), ConfigurationBuilder.buildOrder.get(0));
216+
assertEquals(project1.getBuildConfig(variant0), ConfigurationBuilder.buildOrder.get(1));
217+
assertEquals(project1.getBuildConfig(variant2), ConfigurationBuilder.buildOrder.get(2));
218+
assertEquals(project0.getBuildConfig(variant0), ConfigurationBuilder.buildOrder.get(3));
221219
checkBuild(2, project0, variant0, true, 1, IncrementalProjectBuilder.FULL_BUILD);
222220
checkBuild(3, project0, variant1, true, 1, IncrementalProjectBuilder.FULL_BUILD);
223221
checkBuild(4, project0, variant2, false, 0, 0);
@@ -231,9 +229,9 @@ public void testBuildReferences() throws CoreException {
231229
ConfigurationBuilder.clearBuildOrder();
232230
getWorkspace().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, createTestMonitor());
233231

234-
assertEquals("8.0", 2, ConfigurationBuilder.buildOrder.size());
235-
assertEquals("8.1", project1.getBuildConfig(variant0), ConfigurationBuilder.buildOrder.get(0));
236-
assertEquals("8.2", project1.getBuildConfig(variant2), ConfigurationBuilder.buildOrder.get(1));
232+
assertEquals(2, ConfigurationBuilder.buildOrder.size());
233+
assertEquals(project1.getBuildConfig(variant0), ConfigurationBuilder.buildOrder.get(0));
234+
assertEquals(project1.getBuildConfig(variant2), ConfigurationBuilder.buildOrder.get(1));
237235
checkBuild(9, project0, variant0, false, 1, 0);
238236
checkBuild(10, project0, variant1, false, 1, 0);
239237
checkBuild(11, project0, variant2, false, 0, 0);
@@ -262,16 +260,16 @@ public void testBuildReferencesOfClosedProject() throws CoreException {
262260
project1.close(createTestMonitor());
263261
// should still be able to build project 0.
264262
getWorkspace().build(new IBuildConfiguration[] {project0.getBuildConfig(variant0)}, IncrementalProjectBuilder.FULL_BUILD, true, createTestMonitor());
265-
assertEquals("1.0", 1, ConfigurationBuilder.buildOrder.size());
266-
assertEquals("1.1", project0.getBuildConfig(variant0), ConfigurationBuilder.buildOrder.get(0));
263+
assertEquals(1, ConfigurationBuilder.buildOrder.size());
264+
assertEquals(project0.getBuildConfig(variant0), ConfigurationBuilder.buildOrder.get(0));
267265
checkBuild(2, project0, variant0, true, 1, IncrementalProjectBuilder.FULL_BUILD);
268266

269267
// Workspace full build should also build project 0
270268
ConfigurationBuilder.clearStats();
271269
ConfigurationBuilder.clearBuildOrder();
272270
getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, createTestMonitor());
273-
assertEquals("1.0", 1, ConfigurationBuilder.buildOrder.size());
274-
assertEquals("1.1", project0.getBuildConfig(variant0), ConfigurationBuilder.buildOrder.get(0));
271+
assertEquals(1, ConfigurationBuilder.buildOrder.size());
272+
assertEquals(project0.getBuildConfig(variant0), ConfigurationBuilder.buildOrder.get(0));
275273
checkBuild(2, project0, variant0, true, 1, IncrementalProjectBuilder.FULL_BUILD);
276274

277275
// re-open project 1
@@ -281,9 +279,9 @@ public void testBuildReferencesOfClosedProject() throws CoreException {
281279
ConfigurationBuilder.clearBuildOrder();
282280
getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, createTestMonitor());
283281

284-
assertEquals("8.0", 2, ConfigurationBuilder.buildOrder.size());
285-
assertEquals("8.1", project1.getBuildConfig(variant0), ConfigurationBuilder.buildOrder.get(0));
286-
assertEquals("8.2", project0.getBuildConfig(variant0), ConfigurationBuilder.buildOrder.get(1));
282+
assertEquals(2, ConfigurationBuilder.buildOrder.size());
283+
assertEquals(project1.getBuildConfig(variant0), ConfigurationBuilder.buildOrder.get(0));
284+
assertEquals(project0.getBuildConfig(variant0), ConfigurationBuilder.buildOrder.get(1));
287285
}
288286

289287
/**
@@ -321,9 +319,9 @@ private void incrementalBuild(int testId, IProject project, String variant, bool
321319
private void clean(int testId, IProject project, String variant, int expectedCount) throws CoreException {
322320
project.build(project.getBuildConfig(variant), IncrementalProjectBuilder.CLEAN_BUILD, createTestMonitor());
323321
ConfigurationBuilder builder = ConfigurationBuilder.getBuilder(project.getBuildConfig(variant));
324-
assertNotNull(testId + ".0", builder);
325-
assertEquals(testId + ".1", expectedCount, builder.buildCount);
326-
assertEquals(testId + ".2", IncrementalProjectBuilder.CLEAN_BUILD, builder.triggerForLastBuild);
322+
assertNotNull(builder, testId + "");
323+
assertEquals(expectedCount, builder.buildCount, testId);
324+
assertEquals(IncrementalProjectBuilder.CLEAN_BUILD, builder.triggerForLastBuild, testId);
327325
}
328326

329327
/**
@@ -333,12 +331,12 @@ private void checkBuild(int testId, IProject project, String variant, boolean sh
333331
project.getBuildConfig(variant);
334332
ConfigurationBuilder builder = ConfigurationBuilder.getBuilder(project.getBuildConfig(variant));
335333
if (builder == null) {
336-
assertFalse(testId + ".1", shouldBuild);
337-
assertEquals(testId + ".2", 0, expectedCount);
334+
assertFalse(shouldBuild, testId + "");
335+
assertEquals(0, expectedCount, testId);
338336
} else {
339-
assertEquals(testId + ".3", expectedCount, builder.buildCount);
337+
assertEquals(expectedCount, builder.buildCount, testId);
340338
if (shouldBuild) {
341-
assertEquals(testId + ".4", expectedTrigger, builder.triggerForLastBuild);
339+
assertEquals(expectedTrigger, builder.triggerForLastBuild, testId);
342340
}
343341
}
344342
}

resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/internal/builders/BuildContextTest.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,27 +31,24 @@
3131
import org.eclipse.core.resources.IWorkspaceRoot;
3232
import org.eclipse.core.resources.IncrementalProjectBuilder;
3333
import org.eclipse.core.runtime.CoreException;
34-
import org.eclipse.core.tests.resources.WorkspaceTestRule;
35-
import org.junit.Before;
36-
import org.junit.Rule;
37-
import org.junit.Test;
34+
import org.eclipse.core.tests.resources.util.WorkspaceResetExtension;
35+
import org.junit.jupiter.api.BeforeEach;
36+
import org.junit.jupiter.api.Test;
37+
import org.junit.jupiter.api.extension.ExtendWith;
3838

3939
/**
4040
* These tests exercise the build context functionality that tells a builder in what context
4141
* it was called.
4242
*/
43+
@ExtendWith(WorkspaceResetExtension.class)
4344
public class BuildContextTest {
44-
45-
@Rule
46-
public WorkspaceTestRule workspaceRule = new WorkspaceTestRule();
47-
4845
private IProject project0;
4946
private IProject project1;
5047
private IProject project2;
5148
private static final String variant0 = "Variant0";
5249
private static final String variant1 = "Variant1";
5350

54-
@Before
51+
@BeforeEach
5552
public void setUp() throws Exception {
5653
// Create resources
5754
IWorkspaceRoot root = getWorkspace().getRoot();

0 commit comments

Comments
 (0)