blob: 2435a1f6c2b69fa07b23f81ca8a456b7452be69a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jdt.internal.corext.refactoring.changes.RenameResourceChange;
import org.eclipse.ltk.core.refactoring.Change;
public class RenameResourceChangeTests extends RefactoringTest {
private static final Class clazz= RenameResourceChangeTests.class;
public RenameResourceChangeTests(String name) {
super(name);
}
public static Test suite() {
return new RefactoringTestSetup(new TestSuite(clazz));
}
public void testFile0() throws Exception{
IFolder folder= (IFolder)getPackageP().getCorrespondingResource();
String newName= "b.txt";
try{
String oldName= "a.txt";
IFile file= folder.getFile(oldName);
assertTrue("should not exist", ! file.exists());
String content= "aaaaaaaaa";
file.create(getStream(content), true, new NullProgressMonitor());
assertTrue("should exist", file.exists());
Change change= new RenameResourceChange(null, file, newName, null);
change.initializeValidationData(new NullProgressMonitor());
performChange(change);
assertTrue("after: should exist", folder.getFile(newName).exists());
assertTrue("after: old should not exist", ! folder.getFile(oldName).exists());
} finally{
performDummySearch();
folder.getFile(newName).delete(true, false, new NullProgressMonitor());
}
}
public void testFile1() throws Exception{
IFolder folder= (IFolder)getPackageP().getCorrespondingResource();
String newName= "b.txt";
try{
String oldName= "a.txt";
IFile file= folder.getFile(oldName);
assertTrue("should not exist", ! file.exists());
String content= "";
file.create(getStream(content), true, new NullProgressMonitor());
assertTrue("should exist", file.exists());
Change change= new RenameResourceChange(null, file, newName, null);
change.initializeValidationData(new NullProgressMonitor());
performChange(change);
assertTrue("after: should exist", folder.getFile(newName).exists());
assertTrue("after: old should not exist", ! folder.getFile(oldName).exists());
} finally{
performDummySearch();
folder.getFile(newName).delete(true, false, new NullProgressMonitor());
}
}
public void testFile2() throws Exception{
IFolder folder= (IFolder)getPackageP().getCorrespondingResource();
String oldName= "a.txt";
String newName= "b.txt";
try{
IFile file= folder.getFile(oldName);
assertTrue("should not exist", ! file.exists());
String content= "aaaaaaaaa";
file.create(getStream(content), true, new NullProgressMonitor());
assertTrue("should exist", file.exists());
Change change= new RenameResourceChange(null, file, newName, null);
change.initializeValidationData(new NullProgressMonitor());
Change undo= performChange(change);
assertTrue("after: should exist", folder.getFile(newName).exists());
assertTrue("after: old should not exist", ! folder.getFile(oldName).exists());
//------
assertTrue("should be undoable", undo != null);
undo.initializeValidationData(new NullProgressMonitor());
performChange(undo);
assertTrue("after undo: should exist", folder.getFile(oldName).exists());
assertTrue("after undo: old should not exist", ! folder.getFile(newName).exists());
} finally{
performDummySearch();
folder.getFile(oldName).delete(true, false, new NullProgressMonitor());
}
}
public void testFolder0() throws Exception{
IFolder folder= (IFolder)getPackageP().getCorrespondingResource();
String newName= "b";
try{
String oldName= "a";
IFolder subFolder= folder.getFolder(oldName);
assertTrue("should not exist", ! subFolder.exists());
subFolder.create(true, true, null);
assertTrue("should exist", subFolder.exists());
Change change= new RenameResourceChange(null, subFolder, newName, null);
change.initializeValidationData(new NullProgressMonitor());
performChange(change);
assertTrue("after: should exist", folder.getFolder(newName).exists());
assertTrue("after: old should not exist", ! folder.getFolder(oldName).exists());
} finally{
performDummySearch();
folder.getFolder(newName).delete(true, false, new NullProgressMonitor());
}
}
public void testFolder1() throws Exception{
IFolder folder= (IFolder)getPackageP().getCorrespondingResource();
String newName= "b";
try{
String oldName= "a";
IFolder subFolder= folder.getFolder(oldName);
assertTrue("should not exist", ! subFolder.exists());
subFolder.create(true, true, null);
IFile file1= subFolder.getFile("a.txt");
IFile file2= subFolder.getFile("b.txt");
file1.create(getStream("123"), true, null);
file2.create(getStream("123345"), true, null);
assertTrue("should exist", subFolder.exists());
assertTrue("file1 should exist", file1.exists());
assertTrue("file2 should exist", file2.exists());
Change change= new RenameResourceChange(null, subFolder, newName, null);
change.initializeValidationData(new NullProgressMonitor());
performChange(change);
assertTrue("after: should exist", folder.getFolder(newName).exists());
assertTrue("after: old should not exist", ! folder.getFolder(oldName).exists());
assertEquals("after: child count", 2, folder.getFolder(newName).members().length);
} finally{
performDummySearch();
folder.getFolder(newName).delete(true, false, new NullProgressMonitor());
}
}
public void testFolder2() throws Exception{
IFolder folder= (IFolder)getPackageP().getCorrespondingResource();
String oldName= "a";
String newName= "b";
try{
IFolder subFolder= folder.getFolder(oldName);
assertTrue("should not exist", ! subFolder.exists());
subFolder.create(true, true, null);
assertTrue("should exist", subFolder.exists());
Change change= new RenameResourceChange(null, subFolder, newName, null);
change.initializeValidationData(new NullProgressMonitor());
Change undo= performChange(change);
assertTrue("after: should exist", folder.getFolder(newName).exists());
assertTrue("after: old should not exist", ! folder.getFolder(oldName).exists());
//---
assertTrue("should be undoable", undo != null);
undo.initializeValidationData(new NullProgressMonitor());
performChange(undo);
assertTrue("after undo: should exist", folder.getFolder(oldName).exists());
assertTrue("after undo: old should not exist", ! folder.getFolder(newName).exists());
} finally{
performDummySearch();
folder.getFolder(oldName).delete(true, false, new NullProgressMonitor());
}
}
}