Skip to content

Commit cbdbe98

Browse files
committed
Test deletion of file being edited
1 parent cad8b8d commit cbdbe98

File tree

1 file changed

+45
-18
lines changed

1 file changed

+45
-18
lines changed

tests/org.eclipse.rcptt.core.tests/src/org/eclipse/rcptt/core/tests/model/WorkingCopyTest.java

Lines changed: 45 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,17 @@
1010
*******************************************************************************/
1111
package org.eclipse.rcptt.core.tests.model;
1212

13-
import static org.junit.Assert.assertEquals;
14-
import static org.junit.Assert.assertTrue;
13+
import static org.junit.Assert.*;
1514

1615
import org.eclipse.core.resources.IProject;
1716
import org.eclipse.core.resources.IProjectDescription;
1817
import org.eclipse.core.resources.IWorkspace;
1918
import org.eclipse.core.resources.ResourcesPlugin;
2019
import org.eclipse.core.runtime.CoreException;
2120
import org.eclipse.core.runtime.NullProgressMonitor;
21+
import org.eclipse.rcptt.core.Scenarios;
22+
import org.eclipse.rcptt.core.model.IElementChangedListener;
23+
import org.eclipse.rcptt.core.model.IQ7NamedElement;
2224
import org.eclipse.rcptt.core.model.IQ7Project;
2325
import org.eclipse.rcptt.core.model.ITestCase;
2426
import org.eclipse.rcptt.core.model.ModelException;
@@ -74,23 +76,48 @@ public void testNewTestcaseAppear() throws ModelException {
7476

7577
copy.commitWorkingCopy(true, new NullProgressMonitor());
7678
assertEquals("new test case name", testcase.getElementName());
77-
7879
}
79-
80-
public void _testWorkingCopyForNewResource() throws ModelException {
80+
81+
@Test
82+
public void deleteEditedResource() throws CoreException, InterruptedException {
8183
IQ7Project prj = q7project;
82-
ITestCase testcase = prj.getRootFolder().getTestCase("newTestCase.test");
83-
assertTrue(!testcase.exists());
84-
ITestCase copy = (ITestCase) testcase
85-
.getWorkingCopy(new NullProgressMonitor());
86-
87-
copy.setElementName("new test case name");
88-
copy.setTags("tag0");
89-
90-
assertEquals("new test case name", copy.getElementName());
91-
92-
copy.commitWorkingCopy(true, new NullProgressMonitor());
93-
assertEquals("new test case name", testcase.getElementName());
94-
84+
IElementChangedListener listener = event -> {
85+
for (IQ7NamedElement i : event.getDelta().getNamedElements()) {
86+
try {
87+
i.getDescription(); // causes element info revival
88+
} catch (ModelException e) {
89+
// Does not exist
90+
}
91+
}
92+
};
93+
RcpttCore.addElementChangedListener(listener);
94+
try {
95+
for (int i = 0; i < 1000; i++) {
96+
ITestCase testcase = prj.getRootFolder().createTestCase("mytestcase"+i,true, new NullProgressMonitor());
97+
98+
ITestCase copy = (ITestCase) testcase
99+
.getWorkingCopy(new NullProgressMonitor());
100+
assertTrue(testcase.exists());
101+
PROJECT.getFile(testcase.getName()).delete(true, null);
102+
try {
103+
testcase.getElementName();
104+
} catch (ModelException e) {
105+
// Does not exist
106+
}
107+
try {
108+
copy.getElementName();
109+
} catch (ModelException e) {
110+
// Does not exist
111+
}
112+
copy.discardWorkingCopy();
113+
System.gc();
114+
NO_ERRORS.assertNoErrors();
115+
assertFalse(testcase.exists());
116+
}
117+
} finally {
118+
RcpttCore.removeElementChangedListener(listener);
119+
}
95120
}
121+
122+
96123
}

0 commit comments

Comments
 (0)