diff options
author | Stephan Herrmann | 2011-12-27 11:17:48 +0000 |
---|---|---|
committer | Stephan Herrmann | 2011-12-27 11:17:48 +0000 |
commit | 1437f3b477d90032b1ab3c67a691de78ab0aeee2 (patch) | |
tree | 21694a548516b901b41d454e70e2557db7bbf738 /testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring | |
parent | d2cecfdbfe86fb966ffe98d400c216449c7c71aa (diff) | |
download | org.eclipse.objectteams-1437f3b477d90032b1ab3c67a691de78ab0aeee2.tar.gz org.eclipse.objectteams-1437f3b477d90032b1ab3c67a691de78ab0aeee2.tar.xz org.eclipse.objectteams-1437f3b477d90032b1ab3c67a691de78ab0aeee2.zip |
Test & fix for Bug 316698 - [refactoring] Refactoring for moving a role
class doesn't handle base imports
Diffstat (limited to 'testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring')
2 files changed, 129 insertions, 0 deletions
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/AllTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/AllTests.java index f99b76be5..be3077a97 100644 --- a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/AllTests.java +++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/AllTests.java @@ -44,6 +44,7 @@ public class AllTests suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.move.MoveInstanceMethodTests.suite());
suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.move.MoveStaticMethodTests.suite());
+ suite.addTest(org.eclipse.objectteams.otdt.ui.tests.refactoring.move.MoveRoleTests.suite()); return suite;
}
diff --git a/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/MoveRoleTests.java b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/MoveRoleTests.java new file mode 100644 index 000000000..3ef9e32fb --- /dev/null +++ b/testplugins/org.eclipse.objectteams.otdt.ui.tests.refactoring/src/org/eclipse/objectteams/otdt/ui/tests/refactoring/move/MoveRoleTests.java @@ -0,0 +1,128 @@ +/********************************************************************** + * This file is part of "Object Teams Development Tooling"-Software + * + * Copyright 2011 Stephan Herrmann. + * + * 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 + * + * Please visit http://www.eclipse.org/objectteams for updates and contact. + * + * Contributors: + * Stephan Herrmann - Initial API and implementation + **********************************************************************/ +package org.eclipse.objectteams.otdt.ui.tests.refactoring.move; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.jdt.core.ICompilationUnit; +import org.eclipse.jdt.core.IJavaElement; +import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IPackageFragment; +import org.eclipse.jdt.core.IType; +import org.eclipse.jdt.core.JavaCore; +import org.eclipse.jdt.internal.corext.refactoring.reorg.JavaMoveProcessor; +import org.eclipse.jdt.ui.tests.refactoring.ParticipantTesting; +import org.eclipse.jdt.ui.tests.refactoring.RefactoringTestSetup; +import org.eclipse.ltk.core.refactoring.RefactoringStatus; +import org.eclipse.objectteams.otdt.core.ext.OTREContainer; +import org.eclipse.objectteams.otdt.ui.tests.util.JavaProjectHelper; + +import base org.eclipse.jdt.ui.tests.refactoring.ccp.MoveTest; + +@SuppressWarnings("restriction") +public team class MoveRoleTests extends TestCase { + + @SuppressWarnings("decapsulation") + protected class MoveRole playedBy MoveTest { + + void setUp() -> void setUp(); + + void tearDown() -> void tearDown(); + + public MoveRole() { + base(MoveRole.class.getName()); + } + + @SuppressWarnings("inferredcallout") + public void testDestination_yes_roleTypeToDifferentTeam() throws Exception{ + ParticipantTesting.reset(); + IPackageFragment packB = getRoot().createPackageFragment("b", true, null); + packB.createCompilationUnit("B.java", "package b;public class B {}", true, null); + ICompilationUnit cu1= getPackageP().createCompilationUnit("T1.java", "package p;import base b.B;team class T1{void foo(){}protected class Role playedBy B{}}", false, new NullProgressMonitor()); + ICompilationUnit cu2= getPackageP().createCompilationUnit("T2.java", "package p;team class T2{void bar(){}}", false, new NullProgressMonitor()); + try { + IType teamType = cu1.getTypes()[0]; + IType roleType = teamType.getType("Role"); + IJavaElement[] javaElements= { roleType }; + IResource[] resources= {}; + JavaMoveProcessor ref= verifyEnabled(resources, javaElements, createReorgQueries()); + + Object destination= cu2.getTypes()[0]; + verifyValidDestination(ref, destination); + + RefactoringStatus status= performRefactoring(ref, true); + assertEquals(null, status); + + // expect that base import has been added to cu2: + String expectedSource2= "package p;\nimport base b.B;\nteam class T2{protected class Role playedBy B{}\n\nvoid bar(){}}"; + assertEqualLines("source compare failed", expectedSource2, cu2.getSource()); + + // expect that base import has been removed from cu1: + String expectedSource1= "package p;team class T1{void foo(){}}"; + assertEqualLines("source compare failed", expectedSource1, cu1.getSource()); + + } finally { + performDummySearch(); + safeDelete(cu2); + } + } + } + + private MoveRole mover; + private boolean projectInitialized = false; + + public MoveRoleTests() { + this.mover = new MoveRole(); + } + public static Test suite() { + return new RefactoringTestSetup(new TestSuite(MoveRoleTests.class)); + } + + public static Test setUpTest(Test someTest) { + return new RefactoringTestSetup(someTest); + } + + @Override + protected void setUp() throws Exception { + super.setUp(); + setupProject(); + this.mover.setUp(); + } + + @Override + protected void tearDown() throws Exception { + super.tearDown(); + this.mover.tearDown(); + } + + void setupProject() throws Exception { + if (!this.projectInitialized) { + this.projectInitialized = true; + IJavaProject javaProj = RefactoringTestSetup.getProject(); + JavaProjectHelper.addNatureToProject(javaProj.getProject(), JavaCore.OTJ_NATURE_ID, null); + OTREContainer.initializeOTJProject(javaProj.getProject()); + } + } + + public void testDestination_yes_roleTypeToDifferentTeam() throws Exception { + this.mover.testDestination_yes_roleTypeToDifferentTeam(); + } + +} |