/******************************************************************************* | |
* Copyright (c) 2012 IBM Corporation and others. | |
* | |
* This program and the accompanying materials | |
* are made available under the terms of the Eclipse Public License 2.0 | |
* which accompanies this distribution, and is available at | |
* https://www.eclipse.org/legal/epl-2.0/ | |
* | |
* SPDX-License-Identifier: EPL-2.0 | |
* | |
* Contributors: | |
* IBM Corporation - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.core.tests.resources.session; | |
import junit.framework.Test; | |
import junit.framework.TestSuite; | |
import org.eclipse.core.internal.resources.TestingSupport; | |
import org.eclipse.core.resources.*; | |
import org.eclipse.core.runtime.CoreException; | |
import org.eclipse.core.tests.resources.AutomatedTests; | |
import org.eclipse.core.tests.resources.WorkspaceSessionTest; | |
import org.eclipse.core.tests.session.SessionTestSuite; | |
import org.eclipse.core.tests.session.WorkspaceSessionTestSuite; | |
/** | |
* Test for bug 294854 | |
*/ | |
public class TestBug294854 extends WorkspaceSessionTest { | |
private static final String PROJECT_OLD_NAME = "project_old_name"; | |
private static final String PROJECT_NEW_NAME = "project_new_name"; | |
public static Test suite() { | |
TestSuite suite = new TestSuite(TestBug294854.class.getName()); | |
// suite.addTest(new TestBug294854("testRenameUsingResourcePath_01")); | |
SessionTestSuite scenario1 = new WorkspaceSessionTestSuite(AutomatedTests.PI_RESOURCES_TESTS, "renameUsingProjectDescription"); | |
scenario1.addCrashTest(new TestBug294854("testRenameUsingProjectDescription_01")); | |
scenario1.addTest(new TestBug294854("testRenameUsingProjectDescription_02")); | |
SessionTestSuite scenario2 = new WorkspaceSessionTestSuite(AutomatedTests.PI_RESOURCES_TESTS, "renameUsingResourcePath"); | |
scenario2.addCrashTest(new TestBug294854("testRenameUsingResourcePath_01")); | |
scenario2.addTest(new TestBug294854("testRenameUsingResourcePath_02")); | |
SessionTestSuite scenario3 = new WorkspaceSessionTestSuite(AutomatedTests.PI_RESOURCES_TESTS, "delete"); | |
scenario3.addCrashTest(new TestBug294854("testDelete_01")); | |
scenario3.addTest(new TestBug294854("testDelete_02")); | |
suite.addTest(scenario1); | |
suite.addTest(scenario2); | |
suite.addTest(scenario3); | |
return suite; | |
} | |
public TestBug294854() { | |
super(); | |
} | |
public TestBug294854(String name) { | |
super(name); | |
} | |
private IProject createProject() throws CoreException { | |
IWorkspace workspace = getWorkspace(); | |
IProject project = workspace.getRoot().getProject(PROJECT_OLD_NAME); | |
ensureExistsInWorkspace(project, true); | |
assertTrue("1.0", project.exists()); | |
// make sure we do not have .snap file | |
TestingSupport.waitForSnapshot(); | |
workspace.save(true, getMonitor()); | |
return project; | |
} | |
private boolean checkProjectExists(String name) { | |
IProject project = getWorkspace().getRoot().getProject(name); | |
return project.exists(); | |
} | |
public void testRenameUsingProjectDescription_01() throws CoreException, InterruptedException { | |
IProject project = createProject(); | |
// move project using IProjectDescription | |
IProjectDescription description = project.getDescription(); | |
description.setName(PROJECT_NEW_NAME); | |
project.move(description, true, getMonitor()); | |
// give a moment for the snapshot to run | |
Thread.sleep(1000); | |
// simulate process kill | |
System.exit(1); | |
} | |
public void testRenameUsingProjectDescription_02() { | |
assertFalse("1.0", checkProjectExists(PROJECT_OLD_NAME)); | |
assertTrue("2.0", checkProjectExists(PROJECT_NEW_NAME)); | |
} | |
public void testRenameUsingResourcePath_01() throws CoreException, InterruptedException { | |
IProject project = createProject(); | |
// move project using IPath | |
project.move(project.getFullPath().removeLastSegments(1).append(PROJECT_NEW_NAME), true, getMonitor()); | |
// give a moment for the snapshot to run | |
Thread.sleep(1000); | |
// simulate process kill | |
System.exit(1); | |
} | |
public void testRenameUsingResourcePath_02() { | |
assertFalse("1.0", checkProjectExists(PROJECT_OLD_NAME)); | |
assertTrue("2.0", checkProjectExists(PROJECT_NEW_NAME)); | |
} | |
public void testDelete_01() throws CoreException { | |
IProject project = createProject(); | |
// delete project | |
project.delete(true, getMonitor()); | |
// simulate process kill | |
System.exit(1); | |
} | |
public void testDelete_02() { | |
assertFalse("1.0", checkProjectExists(PROJECT_OLD_NAME)); | |
} | |
} |