package org.jboss.tools.seam.core.test.refactoring;
import java.util.ArrayList;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.text.BadLocationException;
import org.jboss.tools.common.base.test.RenameParticipantTestUtil.TestChangeStructure;
import org.jboss.tools.common.base.test.RenameParticipantTestUtil.TestTextChange;
import org.jboss.tools.seam.internal.core.refactoring.RenameSeamContextVariableProcessor;
public class SeamContextVariableRefactoringTest extends SeamRefactoringTest {
public SeamContextVariableRefactoringTest(){
super("Seam Context Variable Refactoring Test");
}
public void testSeamContextVariable_Component_Rename() throws CoreException, BadLocationException {
ArrayList<TestChangeStructure> list = new ArrayList<TestChangeStructure>();
TestChangeStructure structure = new TestChangeStructure(ejbProject.getProject(), "/ejbModule/org/domain/"+warProjectName+"/session/TestComponent.java");
TestTextChange change = new TestTextChange(89, 6, "\"best\"");
structure.addTextChange(change);
list.add(structure);
structure = new TestChangeStructure(warProject, "/WebContent/WEB-INF/components.xml");
change = new TestTextChange(1106, 4, "best");
structure.addTextChange(change);
change = new TestTextChange(1934, 4, "best");
structure.addTextChange(change);
list.add(structure);
structure = new TestChangeStructure(ejbProject, "/ejbModule/org/domain/"+warProjectName+"/session/TestSeamComponent.java");
change = new TestTextChange("@In(\"test\")"/*420*/, 11, "@In(\"best\")");
structure.addTextChange(change);
change = new TestTextChange(389, 8, "(\"best\")");
structure.addTextChange(change);
change = new TestTextChange("@Factory"/*455*/, 16, "@Factory(\"best\")");
structure.addTextChange(change);
change = new TestTextChange(521, 8, "(\"best\")");
structure.addTextChange(change);
change = new TestTextChange(573, 4, "best");
structure.addTextChange(change);
list.add(structure);
structure = new TestChangeStructure(ejbProject, "/ejbModule/seam.properties");
change = new TestTextChange("test", 4, "best");
structure.addTextChange(change);
list.add(structure);
structure = new TestChangeStructure(warProject, "/WebContent/test.xhtml");
change = new TestTextChange("test", 4, "best");
structure.addTextChange(change);
list.add(structure);
structure = new TestChangeStructure(warProject, "/WebContent/test.jsp");
change = new TestTextChange("test", 4, "best");
structure.addTextChange(change);
list.add(structure);
structure = new TestChangeStructure(warProject, "/src/test.properties");
change = new TestTextChange("test", 4, "best");
structure.addTextChange(change);
list.add(structure);
IFile sourceFile = seamEjbProject.getProject().getFile("/WebContent/test.jsp");
RenameSeamContextVariableProcessor processor = new RenameSeamContextVariableProcessor(sourceFile, "test");
processor.setNewName("best");
checkRename(processor, list);
}
public void testSeamContextVariable_Factory1_Rename() throws CoreException, BadLocationException {
ArrayList<TestChangeStructure> list = new ArrayList<TestChangeStructure>();
TestChangeStructure structure = new TestChangeStructure(ejbProject.getProject(), "/ejbModule/org/domain/"+warProjectName+"/session/TestContextVariableFactory.java");
TestTextChange change = new TestTextChange("@Factory(\"abc\")", 15, "@Factory(\"bbc\")");
structure.addTextChange(change);
list.add(structure);
structure = new TestChangeStructure(warProject, "/WebContent/factory.jsp");
change = new TestTextChange(227, 3, "bbc");
structure.addTextChange(change);
list.add(structure);
IFile sourceFile = seamEjbProject.getProject().getFile("/WebContent/factory.jsp");
RenameSeamContextVariableProcessor processor = new RenameSeamContextVariableProcessor(sourceFile, "abc");
processor.setNewName("bbc");
checkRename(processor, list);
}
public void testSeamContextVariable_Factory2_Rename() throws CoreException, BadLocationException {
ArrayList<TestChangeStructure> list = new ArrayList<TestChangeStructure>();
TestChangeStructure structure = new TestChangeStructure(ejbProject.getProject(), "/ejbModule/org/domain/"+warProjectName+"/session/TestContextVariableFactory.java");
TestTextChange change = new TestTextChange(528, 7, "(\"ccc\")");
structure.addTextChange(change);
list.add(structure);
structure = new TestChangeStructure(warProject, "/WebContent/factory.jsp");
change = new TestTextChange(283, 3, "ccc");
structure.addTextChange(change);
list.add(structure);
IFile sourceFile = seamEjbProject.getProject().getFile("/WebContent/factory.jsp");
RenameSeamContextVariableProcessor processor = new RenameSeamContextVariableProcessor(sourceFile, "cba");
processor.setNewName("ccc");
checkRename(processor, list);
}
public void testSeamContextVariable_Out1_Rename() throws CoreException, BadLocationException {
ArrayList<TestChangeStructure> list = new ArrayList<TestChangeStructure>();
TestChangeStructure structure = new TestChangeStructure(ejbProject.getProject(), "/ejbModule/org/domain/"+warProjectName+"/session/TestContextVariableOut.java");
TestTextChange change = new TestTextChange("@Out(\"aaa\")", 11, "@Out(\"bbb\")");
structure.addTextChange(change);
list.add(structure);
structure = new TestChangeStructure(warProject, "/WebContent/out.jsp");
change = new TestTextChange(227, 3, "bbb");
structure.addTextChange(change);
list.add(structure);
IFile sourceFile = seamEjbProject.getProject().getFile("/WebContent/out.jsp");
RenameSeamContextVariableProcessor processor = new RenameSeamContextVariableProcessor(sourceFile, "aaa");
processor.setNewName("bbb");
checkRename(processor, list);
}
public void testSeamContextVariable_Out2_Rename() throws CoreException, BadLocationException {
ArrayList<TestChangeStructure> list = new ArrayList<TestChangeStructure>();
TestChangeStructure structure = new TestChangeStructure(ejbProject.getProject(), "/ejbModule/org/domain/"+warProjectName+"/session/TestContextVariableOut.java");
TestTextChange change = new TestTextChange(515, 7, "(\"eee\")");
structure.addTextChange(change);
list.add(structure);
structure = new TestChangeStructure(warProject, "/WebContent/out.jsp");
change = new TestTextChange(283, 3, "eee");
structure.addTextChange(change);
list.add(structure);
IFile sourceFile = seamEjbProject.getProject().getFile("/WebContent/out.jsp");
RenameSeamContextVariableProcessor processor = new RenameSeamContextVariableProcessor(sourceFile, "ddd");
processor.setNewName("eee");
checkRename(processor, list);
}
public void testSeamContextVariable_DataModel1_Rename() throws CoreException, BadLocationException {
ArrayList<TestChangeStructure> list = new ArrayList<TestChangeStructure>();
TestChangeStructure structure = new TestChangeStructure(ejbProject.getProject(), "/ejbModule/org/domain/"+warProjectName+"/session/TestContextVariableDataModel.java");
TestTextChange change = new TestTextChange("@DataModel(\"data\")", 18, "@DataModel(\"dada\")");
structure.addTextChange(change);
list.add(structure);
structure = new TestChangeStructure(warProject, "/WebContent/datamodel.jsp");
change = new TestTextChange(227, 4, "dada");
structure.addTextChange(change);
list.add(structure);
IFile sourceFile = seamEjbProject.getProject().getFile("/WebContent/datamodel.jsp");
RenameSeamContextVariableProcessor processor = new RenameSeamContextVariableProcessor(sourceFile, "data");
processor.setNewName("dada");
checkRename(processor, list);
}
public void testSeamContextVariable_DataModel2_Rename() throws CoreException, BadLocationException {
ArrayList<TestChangeStructure> list = new ArrayList<TestChangeStructure>();
TestChangeStructure structure = new TestChangeStructure(ejbProject.getProject(), "/ejbModule/org/domain/"+warProjectName+"/session/TestContextVariableDataModel.java");
TestTextChange change = new TestTextChange(550, 9, "(\"modal\")");
structure.addTextChange(change);
list.add(structure);
structure = new TestChangeStructure(warProject, "/WebContent/datamodel.jsp");
change = new TestTextChange(284, 5, "modal");
structure.addTextChange(change);
list.add(structure);
IFile sourceFile = seamEjbProject.getProject().getFile("/WebContent/datamodel.jsp");
RenameSeamContextVariableProcessor processor = new RenameSeamContextVariableProcessor(sourceFile, "model");
processor.setNewName("modal");
checkRename(processor, list);
}
}