aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/refactorings/core/AndroidTypeMoveParticipantTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/refactorings/core/AndroidTypeMoveParticipantTest.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/refactorings/core/AndroidTypeMoveParticipantTest.java135
1 files changed, 135 insertions, 0 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/refactorings/core/AndroidTypeMoveParticipantTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/refactorings/core/AndroidTypeMoveParticipantTest.java
new file mode 100644
index 000000000..262ea420e
--- /dev/null
+++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/refactorings/core/AndroidTypeMoveParticipantTest.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Eclipse Public License, Version 1.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/org/documents/epl-v10.php
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.ide.eclipse.adt.internal.refactorings.core;
+
+import com.android.annotations.NonNull;
+import com.android.ide.eclipse.adt.AdtPlugin;
+import com.android.ide.eclipse.adt.internal.project.BaseProjectHelper;
+
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.internal.corext.refactoring.reorg.IReorgPolicy.IMovePolicy;
+import org.eclipse.jdt.internal.corext.refactoring.reorg.JavaMoveProcessor;
+import org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgDestinationFactory;
+import org.eclipse.jdt.internal.corext.refactoring.reorg.ReorgPolicyFactory;
+import org.eclipse.jdt.internal.ui.refactoring.reorg.CreateTargetQueries;
+import org.eclipse.jdt.internal.ui.refactoring.reorg.ReorgQueries;
+import org.eclipse.ltk.core.refactoring.participants.MoveRefactoring;
+import org.eclipse.swt.widgets.Shell;
+
+
+@SuppressWarnings({"javadoc", "restriction"})
+public class AndroidTypeMoveParticipantTest extends RefactoringTestBase {
+ public void testRefactor1() throws Exception {
+ moveType(
+ TEST_PROJECT2,
+ "com.example.refactoringtest.CustomView1",
+ "src/com/example/refactoringtest/subpackage",
+ true /*updateReferences*/,
+
+ "CHANGES:\n" +
+ "-------\n" +
+ "[x] Move resource 'testRefactor1/src/com/example/refactoringtest/CustomView1.java' to 'subpackage'\n" +
+ "\n" +
+ "[x] Move resource 'testRefactor1/src/com/example/refactoringtest/CustomView1.java' to 'subpackage'\n" +
+ "\n" +
+ "[x] customviews.xml - /testRefactor1/res/layout/customviews.xml\n" +
+ " @@ -9 +9\n" +
+ " - <com.example.refactoringtest.CustomView1\n" +
+ " + <com.example.refactoringtest.subpackage.CustomView1\n" +
+ "\n" +
+ "\n" +
+ "[x] customviews.xml - /testRefactor1/res/layout-land/customviews.xml\n" +
+ " @@ -9 +9\n" +
+ " - <com.example.refactoringtest.CustomView1\n" +
+ " + <com.example.refactoringtest.subpackage.CustomView1");
+ }
+
+ public void testRefactorFragment() throws Exception {
+ moveType(
+ TEST_PROJECT2,
+ "com.example.refactoringtest.MyFragment",
+ "src/com/example/refactoringtest/subpackage",
+ true /*updateReferences*/,
+
+ "CHANGES:\n" +
+ "-------\n" +
+ "[x] Move resource 'testRefactorFragment/src/com/example/refactoringtest/MyFragment.java' to 'subpackage'\n" +
+ "\n" +
+ "[x] Move resource 'testRefactorFragment/src/com/example/refactoringtest/MyFragment.java' to 'subpackage'\n" +
+ "\n" +
+ "[x] activity_main.xml - /testRefactorFragment/res/layout/activity_main.xml\n" +
+ " @@ -33 +33\n" +
+ " - <fragment android:name=\"com.example.refactoringtest.MyFragment\"/>\n" +
+ " + <fragment android:name=\"com.example.refactoringtest.subpackage.MyFragment\"/>");
+ }
+
+ public void testRefactor1_norefs() throws Exception {
+ moveType(
+ TEST_PROJECT2,
+ "com.example.refactoringtest.CustomView1",
+ "src/com/example/refactoringtest/subpackage",
+ false /*updateReferences*/,
+
+ "CHANGES:\n" +
+ "-------\n" +
+ "[x] Move resource 'testRefactor1_norefs/src/com/example/refactoringtest/CustomView1.java' to 'subpackage'\n" +
+ "\n" +
+ "[x] Move resource 'testRefactor1_norefs/src/com/example/refactoringtest/CustomView1.java' to 'subpackage'");
+ }
+
+ // ---- Test infrastructure ----
+
+ protected void moveType(
+ @NonNull Object[] testData,
+ @NonNull String typeFqcn,
+ @NonNull String destination,
+ boolean updateReferences,
+ @NonNull String expected) throws Exception {
+ IProject project = createProject(testData);
+
+ IFolder destinationFolder = project.getFolder(destination);
+
+ IJavaProject javaProject = BaseProjectHelper.getJavaProject(project);
+ assertNotNull(javaProject);
+ IType type = javaProject.findType(typeFqcn);
+ assertNotNull(typeFqcn, type);
+ assertTrue(typeFqcn, type.exists());
+ IResource resource = type.getResource();
+ assertNotNull(typeFqcn, resource);
+ assertTrue(typeFqcn, resource.exists());
+
+ IResource[] resources = new IResource[] { resource };
+ IJavaElement[] elements = new IJavaElement[] { type };
+ IMovePolicy policy = ReorgPolicyFactory.createMovePolicy(resources, elements);
+ JavaMoveProcessor processor = new JavaMoveProcessor(policy);
+ processor.setUpdateReferences(updateReferences);
+ processor.setUpdateQualifiedNames(true);
+ assertTrue(policy.canEnable());
+ processor.setDestination(ReorgDestinationFactory.createDestination(destinationFolder));
+ Shell parent = AdtPlugin.getShell();
+ assertNotNull(parent);
+ processor.setCreateTargetQueries(new CreateTargetQueries(parent));
+ processor.setReorgQueries(new ReorgQueries(parent));
+
+ MoveRefactoring refactoring = new MoveRefactoring(processor);
+ checkRefactoring(refactoring, expected);
+ }
+}