blob: a7338943127910d906ca37e4326957f732252a1b [file] [log] [blame]
/*******************************************************************************
* 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 testSimilarElements(List similarList, List similarNewNameList, List similarNewHandleList) {
Assert.assertEquals(similarList.size(), similarNewNameList.size());
if (similarList.size() == 0) {
TestRenameParticipantShared.testNumberOfSimilarElements(0);
} else {
TestRenameParticipantShared.testSimilarElements(similarList, similarNewNameList, similarNewHandleList);
}
}
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());
}
}