| /******************************************************************************* |
| * Copyright (c) 2000, 2005 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 java.util.ArrayList; |
| import java.util.List; |
| |
| import junit.framework.Assert; |
| |
| import org.eclipse.core.resources.IResource; |
| |
| import org.eclipse.ltk.core.refactoring.participants.CopyArguments; |
| import org.eclipse.ltk.core.refactoring.participants.MoveArguments; |
| import org.eclipse.ltk.core.refactoring.participants.RenameArguments; |
| |
| import org.eclipse.jdt.core.IJavaElement; |
| |
| import org.eclipse.jdt.internal.corext.util.JavaElementResourceMapping; |
| |
| |
| public class ParticipantTesting { |
| |
| public static void reset() { |
| TestCreateParticipantShared.reset(); |
| TestDeleteParticipantShared.reset(); |
| TestMoveParticipantShared.reset(); |
| TestRenameParticipantShared.reset(); |
| TestCopyParticipantShared.reset(); |
| |
| TestCreateParticipantSingle.reset(); |
| TestDeleteParticipantSingle.reset(); |
| TestMoveParticipantSingle.reset(); |
| TestRenameParticipantSingle.reset(); |
| TestCopyParticipantSingle.reset(); |
| } |
| |
| public static String[] createHandles(Object object) { |
| return createHandles(new Object[] { object }); |
| } |
| |
| public static String[] createHandles(Object obj1, Object obj2) { |
| return createHandles(new Object[] { obj1, obj2 }); |
| } |
| |
| public static String[] createHandles(Object obj1, Object obj2, Object obj3) { |
| return createHandles(new Object[] { obj1, obj2, obj3 }); |
| } |
| |
| public static String[] createHandles(Object obj1, Object obj2, Object obj3, Object obj4) { |
| return createHandles(new Object[] { obj1, obj2, obj3, obj4 }); |
| } |
| |
| public static String[] createHandles(Object[] elements) { |
| List result= new ArrayList(); |
| for (int i= 0; i < elements.length; i++) { |
| Object element= elements[i]; |
| if (element instanceof IJavaElement) { |
| result.add(((IJavaElement)element).getHandleIdentifier()); |
| } else if (element instanceof IResource) { |
| result.add(((IResource)element).getFullPath().toString()); |
| } else if (element instanceof JavaElementResourceMapping) { |
| result.add(((JavaElementResourceMapping)element). |
| getJavaElement().getHandleIdentifier() + "_mapping"); |
| } |
| } |
| return (String[])result.toArray(new String[result.size()]); |
| } |
| |
| public static void testRename(String[] handles, RenameArguments[] args) { |
| Assert.assertEquals(handles.length, args.length); |
| if (handles.length == 0) { |
| TestRenameParticipantShared.testNumberOfElements(0); |
| TestRenameParticipantSingle.testNumberOfInstances(0); |
| } else { |
| testElementsShared(handles, TestRenameParticipantShared.fgInstance.fHandles); |
| TestRenameParticipantShared.testArguments(args); |
| |
| TestRenameParticipantSingle.testNumberOfInstances(handles.length); |
| TestRenameParticipantSingle.testElements(handles); |
| TestRenameParticipantSingle.testArguments(args); |
| } |
| } |
| |
| public static void testMove(String[] handles, MoveArguments[] args) { |
| Assert.assertEquals(handles.length, args.length); |
| if (handles.length == 0) { |
| TestMoveParticipantShared.testNumberOfElements(0); |
| TestMoveParticipantSingle.testNumberOfInstances(0); |
| } else { |
| testElementsShared(handles, TestMoveParticipantShared.fgInstance.fHandles); |
| TestMoveParticipantShared.testArguments(args); |
| |
| TestMoveParticipantSingle.testNumberOfInstances(handles.length); |
| TestMoveParticipantSingle.testElements(handles); |
| TestMoveParticipantSingle.testArguments(args); |
| } |
| } |
| |
| public static void testDelete(String[] handles) { |
| if (handles.length == 0) { |
| TestDeleteParticipantShared.testNumberOfElements(0); |
| TestDeleteParticipantSingle.testNumberOfInstances(0); |
| } else { |
| testElementsShared(handles, TestDeleteParticipantShared.fgInstance.fHandles); |
| |
| TestDeleteParticipantSingle.testNumberOfInstances(handles.length); |
| TestDeleteParticipantSingle.testElements(handles); |
| } |
| } |
| |
| public static void testCreate(String[] handles) { |
| if (handles.length == 0) { |
| TestCreateParticipantShared.testNumberOfElements(0); |
| TestCreateParticipantSingle.testNumberOfInstances(0); |
| } else { |
| testElementsShared(handles, TestCreateParticipantShared.fgInstance.fHandles); |
| |
| TestCreateParticipantSingle.testNumberOfInstances(handles.length); |
| TestCreateParticipantSingle.testElements(handles); |
| } |
| } |
| |
| public static void testCopy(String[] handles, CopyArguments[] arguments) { |
| if (handles.length == 0) { |
| TestCopyParticipantShared.testNumberOfElements(0); |
| TestCopyParticipantSingle.testNumberOfInstances(0); |
| } else { |
| testElementsShared(handles, TestCopyParticipantShared.fgInstance.fHandles); |
| TestCopyParticipantShared.testArguments(arguments); |
| |
| TestCopyParticipantSingle.testNumberOfInstances(handles.length); |
| TestCopyParticipantSingle.testElements(handles); |
| TestCopyParticipantSingle.testArguments(arguments); |
| } |
| } |
| |
| public static void testDerivedElements(List derivedList, List derivedNewNameList, List derivedNewHandleList) { |
| Assert.assertEquals(derivedList.size(), derivedNewNameList.size()); |
| if (derivedList.size() == 0) { |
| TestRenameParticipantShared.testNumberOfDerivedElements(0); |
| } else { |
| TestRenameParticipantShared.testDerivedElements(derivedList, derivedNewNameList, derivedNewHandleList); |
| } |
| |
| } |
| |
| private static void testElementsShared(String[] handles, List list) { |
| for (int i= 0; i < handles.length; i++) { |
| String handle= handles[i]; |
| Assert.assertTrue("Handle not found: " + handle, list.contains(handle)); |
| } |
| testNumberOfElements(handles.length, list); |
| } |
| |
| private static void testNumberOfElements(int expected, List list) { |
| if (expected == 0 && list == null) |
| return; |
| Assert.assertEquals(expected, list.size()); |
| } |
| } |