Skip to content

Commit e47558e

Browse files
committed
Migrate WorkspaceSerializationTests to JUnit 5 #903
This migrates all WorkspaceSerializationTests, which are specializations of WorkspaceSerializationTests to JUnit 5, using the SessionTestExtension with the CustomSessionWorkspace. Contributes to #903
1 parent 4422c7c commit e47558e

16 files changed

+350
-216
lines changed

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

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,49 +13,65 @@
1313
*******************************************************************************/
1414
package org.eclipse.core.tests.resources.session;
1515

16+
import static org.eclipse.core.resources.ResourcesPlugin.getWorkspace;
1617
import static org.eclipse.core.tests.resources.ResourceTestPluginConstants.PI_RESOURCES_TESTS;
1718
import static org.eclipse.core.tests.resources.ResourceTestUtil.createInWorkspace;
1819
import static org.eclipse.core.tests.resources.ResourceTestUtil.createTestMonitor;
1920
import static org.eclipse.core.tests.resources.ResourceTestUtil.updateProjectDescription;
2021

2122
import java.io.ByteArrayInputStream;
22-
import junit.framework.Test;
2323
import org.eclipse.core.resources.IProject;
2424
import org.eclipse.core.runtime.CoreException;
25+
import org.eclipse.core.tests.harness.session.SessionTestExtension;
2526
import org.eclipse.core.tests.internal.builders.SortBuilder;
26-
import org.eclipse.core.tests.session.WorkspaceSessionTestSuite;
27+
import org.junit.jupiter.api.MethodOrderer;
28+
import org.junit.jupiter.api.Order;
29+
import org.junit.jupiter.api.Test;
30+
import org.junit.jupiter.api.TestMethodOrder;
31+
import org.junit.jupiter.api.extension.RegisterExtension;
2732

2833
/**
2934
* Regression test for 1G1N9GZ: ITPCORE:WIN2000 - ElementTree corruption when linking trees
3035
*/
31-
public class Test1G1N9GZ extends WorkspaceSerializationTest {
36+
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
37+
public class Test1G1N9GZ {
38+
39+
@RegisterExtension
40+
static SessionTestExtension sessionTestExtension = SessionTestExtension.forPlugin(PI_RESOURCES_TESTS)
41+
.withCustomization(SessionTestExtension.createCustomWorkspace()).create();
3242

3343
/**
3444
* Initial setup and save
3545
*/
46+
@Test
47+
@Order(1)
3648
public void test1() throws CoreException {
3749
/* create P1 and set a builder */
38-
IProject p1 = workspace.getRoot().getProject("p1");
50+
IProject p1 = getWorkspace().getRoot().getProject("p1");
3951
createInWorkspace(p1);
4052
updateProjectDescription(p1).addingCommand(SortBuilder.BUILDER_NAME).withTestBuilderId("P1Build1").apply();
4153

4254
/* create P2 and set a builder */
43-
IProject p2 = workspace.getRoot().getProject("p2");
55+
IProject p2 = getWorkspace().getRoot().getProject("p2");
4456
createInWorkspace(p2);
4557
updateProjectDescription(p2).addingCommand(SortBuilder.BUILDER_NAME).withTestBuilderId("P2Build1").apply();
4658

4759
/* PR test case */
48-
workspace.save(true, createTestMonitor());
60+
getWorkspace().save(true, createTestMonitor());
4961
}
5062

63+
@Test
64+
@Order(2)
5165
public void test2() throws CoreException {
52-
workspace.save(true, createTestMonitor());
66+
getWorkspace().save(true, createTestMonitor());
5367
}
5468

69+
@Test
70+
@Order(3)
5571
public void test3() throws Exception {
5672
/* get new handles */
57-
IProject p1 = workspace.getRoot().getProject("p1");
58-
IProject p2 = workspace.getRoot().getProject("p2");
73+
IProject p1 = getWorkspace().getRoot().getProject("p1");
74+
IProject p2 = getWorkspace().getRoot().getProject("p2");
5975

6076
/* try to create other files */
6177
try (ByteArrayInputStream source = new ByteArrayInputStream("file's content".getBytes())) {
@@ -64,11 +80,6 @@ public void test3() throws Exception {
6480
try (ByteArrayInputStream source = new ByteArrayInputStream("file's content".getBytes())) {
6581
p2.getFile("file2").create(source, true, null);
6682
}
67-
68-
}
69-
70-
public static Test suite() {
71-
return new WorkspaceSessionTestSuite(PI_RESOURCES_TESTS, Test1G1N9GZ.class);
7283
}
7384

7485
}

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

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import static org.eclipse.core.tests.resources.ResourceTestPluginConstants.PI_RESOURCES_TESTS;
1818
import static org.eclipse.core.tests.resources.ResourceTestUtil.createInWorkspace;
1919
import static org.eclipse.core.tests.resources.ResourceTestUtil.createTestMonitor;
20+
import static org.junit.jupiter.api.Assertions.assertTrue;
2021

2122
import org.eclipse.core.filesystem.EFS;
2223
import org.eclipse.core.filesystem.IFileStore;
@@ -27,34 +28,41 @@
2728
import org.eclipse.core.runtime.CoreException;
2829
import org.eclipse.core.runtime.IPath;
2930
import org.eclipse.core.runtime.Platform;
30-
import org.eclipse.core.tests.session.WorkspaceSessionTestSuite;
31-
32-
import junit.framework.Test;
31+
import org.eclipse.core.tests.harness.session.SessionTestExtension;
32+
import org.junit.jupiter.api.MethodOrderer;
33+
import org.junit.jupiter.api.Order;
34+
import org.junit.jupiter.api.Test;
35+
import org.junit.jupiter.api.TestMethodOrder;
36+
import org.junit.jupiter.api.extension.RegisterExtension;
3337

3438
/**
35-
* Tests regression of bug 113943 - linked resources not having
36-
* correct location after restart.
39+
* Tests regression of bug 113943 - linked resources not having correct location
40+
* after restart.
3741
*/
38-
public class TestBug113943 extends WorkspaceSerializationTest {
39-
IPath location = Platform.getLocation().removeLastSegments(1).append("OtherLocation");
42+
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
43+
public class TestBug113943 {
4044

41-
public static Test suite() {
42-
return new WorkspaceSessionTestSuite(PI_RESOURCES_TESTS, TestBug113943.class);
43-
}
45+
@RegisterExtension
46+
static SessionTestExtension sessionTestExtension = SessionTestExtension.forPlugin(PI_RESOURCES_TESTS)
47+
.withCustomization(SessionTestExtension.createCustomWorkspace()).create();
4448

4549
/**
46-
* Setup. Creates a project with a linked resource.
50+
* Setup, Creates a project with a linked resource.
4751
*/
52+
@Test
53+
@Order(1)
4854
public void test1() throws Exception {
49-
IProject project = workspace.getRoot().getProject("Project1");
55+
IProject project = getWorkspace().getRoot().getProject("Project1");
5056
IFolder link = project.getFolder("link");
5157
IFile linkChild = link.getFile("child.txt");
5258
createInWorkspace(project);
53-
IFileStore parent = EFS.getStore(location.toFile().toURI());
59+
60+
IPath parentLocation = Platform.getLocation().removeLastSegments(1).append("OtherLocation");
61+
IFileStore parent = EFS.getStore(parentLocation.toFile().toURI());
5462
IFileStore child = parent.getChild(linkChild.getName());
5563
parent.mkdir(EFS.NONE, createTestMonitor());
5664
child.openOutputStream(EFS.NONE, createTestMonitor()).close();
57-
link.createLink(location, IResource.NONE, createTestMonitor());
65+
link.createLink(parentLocation, IResource.NONE, createTestMonitor());
5866

5967
assertTrue(link.exists());
6068
assertTrue(linkChild.exists());
@@ -65,13 +73,16 @@ public void test1() throws Exception {
6573
/**
6674
* Refresh the linked resource and check that its content is intact
6775
*/
76+
@Test
77+
@Order(2)
6878
public void test2() throws CoreException {
69-
IProject project = workspace.getRoot().getProject("Project1");
79+
IProject project = getWorkspace().getRoot().getProject("Project1");
7080
IFolder link = project.getFolder("link");
7181
IFile linkChild = link.getFile("child.txt");
7282
link.refreshLocal(IResource.DEPTH_INFINITE, createTestMonitor());
7383

7484
assertTrue(link.exists());
7585
assertTrue(linkChild.exists());
7686
}
87+
7788
}

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

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,41 +13,54 @@
1313
*******************************************************************************/
1414
package org.eclipse.core.tests.resources.session;
1515

16+
import static org.eclipse.core.resources.ResourcesPlugin.getWorkspace;
1617
import static org.eclipse.core.tests.resources.ResourceTestPluginConstants.PI_RESOURCES_TESTS;
1718
import static org.eclipse.core.tests.resources.ResourceTestUtil.createInWorkspace;
1819
import static org.eclipse.core.tests.resources.ResourceTestUtil.createTestMonitor;
1920

20-
import junit.framework.Test;
2121
import org.eclipse.core.resources.IFile;
2222
import org.eclipse.core.resources.IProject;
2323
import org.eclipse.core.resources.IProjectDescription;
2424
import org.eclipse.core.resources.IResource;
2525
import org.eclipse.core.runtime.CoreException;
26-
import org.eclipse.core.tests.session.WorkspaceSessionTestSuite;
27-
28-
public class TestBug12575 extends WorkspaceSerializationTest {
26+
import org.eclipse.core.tests.harness.session.SessionTestExtension;
27+
import org.junit.jupiter.api.MethodOrderer;
28+
import org.junit.jupiter.api.Order;
29+
import org.junit.jupiter.api.Test;
30+
import org.junit.jupiter.api.TestMethodOrder;
31+
import org.junit.jupiter.api.extension.RegisterExtension;
2932

33+
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
34+
public class TestBug12575 {
3035
private static final String projectName = "Project";
3136

37+
@RegisterExtension
38+
static SessionTestExtension sessionTestExtension = SessionTestExtension.forPlugin(PI_RESOURCES_TESTS)
39+
.withCustomization(SessionTestExtension.createCustomWorkspace()).create();
40+
3241
/**
3342
* Setup. Create a simple project, delete the .project file, shutdown
3443
* cleanly.
3544
*/
45+
@Test
46+
@Order(1)
3647
public void test1() throws CoreException {
37-
IProject project = workspace.getRoot().getProject(projectName);
48+
IProject project = getWorkspace().getRoot().getProject(projectName);
3849
project.create(createTestMonitor());
3950
project.open(createTestMonitor());
4051
IFile dotProject = project.getFile(IProjectDescription.DESCRIPTION_FILE_NAME);
4152
dotProject.delete(IResource.NONE, createTestMonitor());
42-
workspace.save(true, createTestMonitor());
53+
getWorkspace().save(true, createTestMonitor());
4354
}
4455

4556
/**
4657
* Infection. Modify the .project, cause a snapshot, crash
4758
*/
59+
@Test
60+
@Order(2)
4861
public void test2() throws CoreException {
49-
IProject project = workspace.getRoot().getProject(projectName);
50-
IProject other = workspace.getRoot().getProject("Other");
62+
IProject project = getWorkspace().getRoot().getProject(projectName);
63+
IProject other = getWorkspace().getRoot().getProject("Other");
5164
IProjectDescription desc = project.getDescription();
5265
desc.setReferencedProjects(new IProject[] { other });
5366
project.setDescription(desc, IResource.FORCE, createTestMonitor());
@@ -60,11 +73,10 @@ public void test2() throws CoreException {
6073
/**
6174
* Impact. Fails to start.
6275
*/
76+
@Test
77+
@Order(3)
6378
public void test3() {
6479
//just starting this test is a sign of success
6580
}
6681

67-
public static Test suite() {
68-
return new WorkspaceSessionTestSuite(PI_RESOURCES_TESTS, TestBug12575.class);
69-
}
7082
}

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

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,40 @@
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.jupiter.api.Assertions.assertFalse;
24+
import static org.junit.jupiter.api.Assertions.assertTrue;
2325

2426
import org.eclipse.core.resources.IProject;
2527
import org.eclipse.core.resources.IProjectDescription;
2628
import org.eclipse.core.resources.IResource;
2729
import org.eclipse.core.resources.IncrementalProjectBuilder;
2830
import org.eclipse.core.runtime.CoreException;
31+
import org.eclipse.core.tests.harness.session.SessionTestExtension;
2932
import org.eclipse.core.tests.internal.builders.DeltaVerifierBuilder;
30-
import org.eclipse.core.tests.session.WorkspaceSessionTestSuite;
31-
32-
import junit.framework.Test;
33+
import org.junit.jupiter.api.MethodOrderer;
34+
import org.junit.jupiter.api.Order;
35+
import org.junit.jupiter.api.Test;
36+
import org.junit.jupiter.api.TestMethodOrder;
37+
import org.junit.jupiter.api.extension.RegisterExtension;
3338

3439
/**
3540
* Tests regression of bug 20127 - error restoring builder state after
3641
* project move.
3742
*/
38-
public class TestBug20127 extends WorkspaceSerializationTest {
43+
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
44+
public class TestBug20127 {
45+
46+
@RegisterExtension
47+
static SessionTestExtension sessionTestExtension = SessionTestExtension.forPlugin(PI_RESOURCES_TESTS)
48+
.withCustomization(SessionTestExtension.createCustomWorkspace()).create();
49+
3950
/**
40-
* Setup. Creates a project with a builder, with a built state,
41-
* autobuild off.
51+
* Setup. Creates a project with a builder, with a built state, autobuild off.
4252
*/
53+
@Test
54+
@Order(1)
4355
public void test1() throws CoreException {
44-
IProject project = workspace.getRoot().getProject("Project1");
56+
IProject project = getWorkspace().getRoot().getProject("Project1");
4557
createInWorkspace(project);
4658
setAutoBuilding(false);
4759

@@ -50,36 +62,37 @@ public void test1() throws CoreException {
5062
.withTestBuilderId("Project1Build1").apply();
5163

5264
//initial build
53-
workspace.build(IncrementalProjectBuilder.FULL_BUILD, createTestMonitor());
65+
getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, createTestMonitor());
5466

5567
getWorkspace().save(true, createTestMonitor());
5668
}
5769

5870
/**
5971
* Rename the project without invoking any builds.
6072
*/
73+
@Test
74+
@Order(2)
6175
public void test2() throws CoreException {
62-
IProject project = workspace.getRoot().getProject("Project1");
76+
IProject project = getWorkspace().getRoot().getProject("Project1");
6377
IProjectDescription desc = project.getDescription();
6478
desc.setName("MovedProject");
6579
project.move(desc, IResource.NONE, createTestMonitor());
66-
workspace.save(true, createTestMonitor());
80+
getWorkspace().save(true, createTestMonitor());
6781
}
6882

6983
/**
7084
* If this session starts correctly then the bug is fixed
7185
*/
86+
@Test
87+
@Order(3)
7288
public void test3() throws CoreException {
73-
IProject oldLocation = workspace.getRoot().getProject("Project1");
74-
IProject newLocation = workspace.getRoot().getProject("MovedProject");
89+
IProject oldLocation = getWorkspace().getRoot().getProject("Project1");
90+
IProject newLocation = getWorkspace().getRoot().getProject("MovedProject");
7591

7692
assertFalse(oldLocation.exists());
7793
assertTrue(newLocation.exists());
7894
assertTrue(newLocation.isOpen());
79-
workspace.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, createTestMonitor());
95+
getWorkspace().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, createTestMonitor());
8096
}
8197

82-
public static Test suite() {
83-
return new WorkspaceSessionTestSuite(PI_RESOURCES_TESTS, TestBug20127.class);
84-
}
8598
}

0 commit comments

Comments
 (0)