Skip to content

Commit 4422c7c

Browse files
committed
Migrate non-serialization WorkspaceSessionTests to JUnit 5 #903
This migrates all WorkspaceSessionTests that are not specializations of WorkspaceSerializationTest to JUnit 5, using the SessionTestExtension with the CustomSessionWorkspace. It extends the SessionTestExtension with functionality to set a system property as required for specific tests. Contributes to #903
1 parent 5a1c925 commit 4422c7c

28 files changed

+599
-344
lines changed

resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/content/TestBug94498.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,28 @@
1616
import static org.assertj.core.api.Assertions.assertThat;
1717
import static org.eclipse.core.tests.resources.ResourceTestPluginConstants.PI_RESOURCES_TESTS;
1818

19-
import junit.framework.Test;
20-
import junit.framework.TestCase;
2119
import org.eclipse.core.runtime.CoreException;
2220
import org.eclipse.core.runtime.Platform;
2321
import org.eclipse.core.runtime.content.IContentType;
2422
import org.eclipse.core.runtime.content.IContentTypeManager;
25-
import org.eclipse.core.tests.session.WorkspaceSessionTestSuite;
23+
import org.eclipse.core.tests.harness.session.SessionTestExtension;
24+
import org.junit.jupiter.api.MethodOrderer;
25+
import org.junit.jupiter.api.Order;
26+
import org.junit.jupiter.api.Test;
27+
import org.junit.jupiter.api.TestMethodOrder;
28+
import org.junit.jupiter.api.extension.RegisterExtension;
2629

27-
public class TestBug94498 extends TestCase {
30+
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
31+
public class TestBug94498 {
2832

2933
private static final String FILE_NAME = "foo.bar.zoo";
3034

31-
public static Test suite() {
32-
return new WorkspaceSessionTestSuite(PI_RESOURCES_TESTS, TestBug94498.class);
33-
}
35+
@RegisterExtension
36+
static SessionTestExtension sessionTestExtension = SessionTestExtension.forPlugin(PI_RESOURCES_TESTS)
37+
.withCustomization(SessionTestExtension.createCustomWorkspace()).create();
3438

39+
@Test
40+
@Order(1)
3541
public void test1() throws CoreException {
3642
IContentType text = Platform.getContentTypeManager().getContentType(IContentTypeManager.CT_TEXT);
3743
assertThat(text).isNotNull();
@@ -40,10 +46,13 @@ public void test1() throws CoreException {
4046
assertThat(fileSpecs).containsExactly(FILE_NAME);
4147
}
4248

49+
@Test
50+
@Order(2)
4351
public void test2() {
4452
IContentType text = Platform.getContentTypeManager().getContentType(IContentTypeManager.CT_TEXT);
4553
assertThat(text).isNotNull();
4654
String[] fileSpecs = text.getFileSpecs(IContentType.FILE_NAME_SPEC | IContentType.IGNORE_PRE_DEFINED);
4755
assertThat(fileSpecs).containsExactly(FILE_NAME);
4856
}
57+
4958
}

resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/regression/TestMultipleBuildersOfSameType.java

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,32 +23,41 @@
2323
import static org.eclipse.core.tests.resources.ResourceTestUtil.updateProjectDescription;
2424

2525
import java.io.ByteArrayInputStream;
26-
import junit.framework.Test;
2726
import org.eclipse.core.resources.IFile;
2827
import org.eclipse.core.resources.IFolder;
2928
import org.eclipse.core.resources.IProject;
3029
import org.eclipse.core.resources.IResource;
3130
import org.eclipse.core.resources.IWorkspaceRoot;
3231
import org.eclipse.core.resources.IncrementalProjectBuilder;
3332
import org.eclipse.core.runtime.CoreException;
33+
import org.eclipse.core.tests.harness.session.SessionTestExtension;
3434
import org.eclipse.core.tests.internal.builders.SortBuilder;
35-
import org.eclipse.core.tests.resources.WorkspaceSessionTest;
36-
import org.eclipse.core.tests.session.WorkspaceSessionTestSuite;
35+
import org.junit.jupiter.api.BeforeEach;
36+
import org.junit.jupiter.api.MethodOrderer;
37+
import org.junit.jupiter.api.Order;
38+
import org.junit.jupiter.api.Test;
39+
import org.junit.jupiter.api.TestMethodOrder;
40+
import org.junit.jupiter.api.extension.RegisterExtension;
3741

3842
/**
3943
* Tests that multiple builders of the same type can be installed on a single
4044
* project, and that their deltas are correctly serialized and associated with
4145
* the correct builder in the next session.
4246
*/
43-
public class TestMultipleBuildersOfSameType extends WorkspaceSessionTest {
47+
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
48+
public class TestMultipleBuildersOfSameType {
49+
50+
@RegisterExtension
51+
static SessionTestExtension sessionTestExtension = SessionTestExtension.forPlugin(PI_RESOURCES_TESTS)
52+
.withCustomization(SessionTestExtension.createCustomWorkspace()).create();
53+
4454
//various resource handles
4555
private IProject project1;
4656
private IFolder sorted1, unsorted1;
4757
private IFile unsortedFile1;
4858

49-
@Override
50-
protected void setUp() throws Exception {
51-
super.setUp();
59+
@BeforeEach
60+
public void setUp() throws Exception {
5261
IWorkspaceRoot root = getWorkspace().getRoot();
5362
project1 = root.getProject("Project1");
5463
unsorted1 = project1.getFolder(SortBuilder.UNSORTED_FOLDER);
@@ -59,6 +68,8 @@ protected void setUp() throws Exception {
5968
/**
6069
* Create projects, setup a builder, and do an initial build.
6170
*/
71+
@Test
72+
@Order(1)
6273
public void test1() throws CoreException {
6374
IResource[] resources = {project1, unsorted1, sorted1, unsortedFile1};
6475
createInWorkspace(resources);
@@ -82,6 +93,8 @@ public void test1() throws CoreException {
8293
* Do another build immediately after restart. Builder1 should be invoked because it cares
8394
* about changes made by Builder2 during the last build phase.
8495
*/
96+
@Test
97+
@Order(2)
8598
public void test2() throws CoreException {
8699
getWorkspace().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, createTestMonitor());
87100
//Only builder1 should have been built
@@ -92,8 +105,4 @@ public void test2() throws CoreException {
92105
}, second -> assertThat(second.wasAutoBuild()).isFalse());
93106
}
94107

95-
public static Test suite() {
96-
return new WorkspaceSessionTestSuite(PI_RESOURCES_TESTS, TestMultipleBuildersOfSameType.class);
97-
}
98-
99108
}

resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/session/Bug_266907.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,30 +26,36 @@
2626
import java.io.FileOutputStream;
2727
import java.io.InputStream;
2828
import java.io.OutputStream;
29-
import junit.framework.Test;
3029
import org.eclipse.core.resources.IFile;
3130
import org.eclipse.core.resources.IMarker;
3231
import org.eclipse.core.resources.IProject;
3332
import org.eclipse.core.resources.IResource;
3433
import org.eclipse.core.resources.IWorkspace;
3534
import org.eclipse.core.runtime.jobs.Job;
36-
import org.eclipse.core.tests.resources.WorkspaceSessionTest;
37-
import org.eclipse.core.tests.session.WorkspaceSessionTestSuite;
35+
import org.eclipse.core.tests.harness.session.SessionTestExtension;
36+
import org.junit.jupiter.api.MethodOrderer;
37+
import org.junit.jupiter.api.Order;
38+
import org.junit.jupiter.api.Test;
39+
import org.junit.jupiter.api.TestMethodOrder;
40+
import org.junit.jupiter.api.extension.RegisterExtension;
3841

3942
/**
4043
* Tests for bug 266907
4144
*/
42-
public class Bug_266907 extends WorkspaceSessionTest {
45+
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
46+
public class Bug_266907 {
4347

4448
private static final String PROJECT_NAME = "Project";
4549
private static final String FILE_NAME = "File";
4650
private static final String MARKER_ATTRIBUTE_NAME = "AttributeName";
4751
private static final String MARKER_ATTRIBUTE = "Attribute";
4852

49-
public static Test suite() {
50-
return new WorkspaceSessionTestSuite(PI_RESOURCES_TESTS, Bug_266907.class);
51-
}
53+
@RegisterExtension
54+
static SessionTestExtension sessionTestExtension = SessionTestExtension.forPlugin(PI_RESOURCES_TESTS)
55+
.withCustomization(SessionTestExtension.createCustomWorkspace()).create();
5256

57+
@Test
58+
@Order(1)
5359
public void test1CreateProjectAndDeleteProjectFile() throws Exception {
5460
// Ensure that no asynchronous save job restores the .project file after
5561
// deleting it by suspending the JobManager for this workspace session
@@ -81,6 +87,8 @@ public void test1CreateProjectAndDeleteProjectFile() throws Exception {
8187
dotProject.delete();
8288
}
8389

90+
@Test
91+
@Order(2)
8492
public void test2RestoreWorkspaceFile() throws Exception {
8593
final IWorkspace workspace = getWorkspace();
8694
IProject project = workspace.getRoot().getProject(PROJECT_NAME);

resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/session/FindDeletedMembersTest.java

Lines changed: 41 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,36 +20,45 @@
2020
import static org.eclipse.core.tests.resources.ResourceTestUtil.createRandomContentsStream;
2121
import static org.eclipse.core.tests.resources.ResourceTestUtil.createTestMonitor;
2222

23-
import junit.framework.Test;
2423
import org.eclipse.core.resources.IFile;
2524
import org.eclipse.core.resources.IFolder;
2625
import org.eclipse.core.resources.IProject;
2726
import org.eclipse.core.resources.IResource;
2827
import org.eclipse.core.resources.IWorkspaceRoot;
2928
import org.eclipse.core.runtime.CoreException;
30-
import org.eclipse.core.tests.resources.WorkspaceSessionTest;
31-
import org.eclipse.core.tests.session.WorkspaceSessionTestSuite;
29+
import org.eclipse.core.tests.harness.session.SessionTestExtension;
30+
import org.junit.jupiter.api.BeforeEach;
31+
import org.junit.jupiter.api.MethodOrderer;
32+
import org.junit.jupiter.api.Order;
33+
import org.junit.jupiter.api.Test;
34+
import org.junit.jupiter.api.TestMethodOrder;
35+
import org.junit.jupiter.api.extension.RegisterExtension;
3236

3337
/**
3438
* Copies the tests from HistoryStoreTest#testFindDeleted, phrased
3539
* as a session test.
3640
*/
37-
public class FindDeletedMembersTest extends WorkspaceSessionTest {
41+
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
42+
public class FindDeletedMembersTest {
43+
44+
@RegisterExtension
45+
static SessionTestExtension sessionTestExtension = SessionTestExtension.forPlugin(PI_RESOURCES_TESTS)
46+
.withCustomization(SessionTestExtension.createCustomWorkspace()).create();
47+
3848
//common objects
39-
protected IWorkspaceRoot root;
40-
protected IProject project;
41-
protected IFile pfile;
42-
protected IFile folderAsFile;
43-
protected IFolder folder;
44-
protected IFile file;
45-
protected IFile file1;
46-
protected IFile file2;
47-
protected IFolder folder2;
48-
protected IFile file3;
49-
50-
@Override
51-
protected void setUp() throws Exception {
52-
super.setUp();
49+
private IWorkspaceRoot root;
50+
private IProject project;
51+
private IFile pfile;
52+
private IFile folderAsFile;
53+
private IFolder folder;
54+
private IFile file;
55+
private IFile file1;
56+
private IFile file2;
57+
private IFolder folder2;
58+
private IFile file3;
59+
60+
@BeforeEach
61+
public void setUp() throws Exception {
5362
root = getWorkspace().getRoot();
5463
project = root.getProject("MyProject");
5564
pfile = project.getFile("file.txt");
@@ -66,6 +75,8 @@ private void saveWorkspace() throws CoreException {
6675
getWorkspace().save(true, createTestMonitor());
6776
}
6877

78+
@Test
79+
@Order(1)
6980
public void test1() throws Exception {
7081
project.create(createTestMonitor());
7182
project.open(createTestMonitor());
@@ -80,6 +91,8 @@ public void test1() throws Exception {
8091
saveWorkspace();
8192
}
8293

94+
@Test
95+
@Order(2)
8396
public void test2() throws Exception {
8497
// the deleted file should show up as a deleted member of project
8598
assertThat(project.findDeletedMembersWithHistory(IResource.DEPTH_ONE, createTestMonitor()))
@@ -100,6 +113,8 @@ public void test2() throws Exception {
100113
saveWorkspace();
101114
}
102115

116+
@Test
117+
@Order(3)
103118
public void test3() throws Exception {
104119
// the deleted file should no longer show up as a deleted member of project
105120
assertThat(project.findDeletedMembersWithHistory(IResource.DEPTH_ONE, createTestMonitor())).isEmpty();
@@ -127,6 +142,8 @@ public void test3() throws Exception {
127142
saveWorkspace();
128143
}
129144

145+
@Test
146+
@Order(4)
130147
public void test4() throws Exception {
131148
// the deleted file should show up as a deleted member
132149
assertThat(project.findDeletedMembersWithHistory(IResource.DEPTH_ONE, createTestMonitor())).isEmpty();
@@ -148,6 +165,8 @@ public void test4() throws Exception {
148165
saveWorkspace();
149166
}
150167

168+
@Test
169+
@Order(5)
151170
public void test5() throws Exception {
152171
// the deleted file should show up as a deleted member of project
153172
assertThat(project.findDeletedMembersWithHistory(IResource.DEPTH_ONE, createTestMonitor())).isEmpty();
@@ -187,6 +206,8 @@ public void test5() throws Exception {
187206
saveWorkspace();
188207
}
189208

209+
@Test
210+
@Order(6)
190211
public void test6() throws Exception {
191212
// under root
192213
assertThat(root.findDeletedMembersWithHistory(IResource.DEPTH_ZERO, createTestMonitor())).isEmpty();
@@ -215,6 +236,8 @@ public void test6() throws Exception {
215236
saveWorkspace();
216237
}
217238

239+
@Test
240+
@Order(7)
218241
public void test7() throws Exception {
219242
// once the project is gone, so is all the history for that project
220243
// under root
@@ -240,7 +263,4 @@ public void test7() throws Exception {
240263
saveWorkspace();
241264
}
242265

243-
public static Test suite() {
244-
return new WorkspaceSessionTestSuite(PI_RESOURCES_TESTS, FindDeletedMembersTest.class);
245-
}
246266
}

0 commit comments

Comments
 (0)