blob: 447274e0eed9142d0f9214ccd4c65f3580dc2351 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2015 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.core.tests.session;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestResult;
/**
* A test descriptor represents a test case. It is used by the session
* test framework to run tests remotely. Using test descriptors, one
* can run any test case provided by any plug-in by just providing the
* plug-in id, the test class and the test case name.
*/
public class TestDescriptor extends TestCase {
private String applicationId;
private boolean crashTest;
private String method;
private String pluginId;
private Setup setup;
private Test test;
private String testClass;
private SessionTestRunner testRunner;
public TestDescriptor(String testClass, String method) {
this.testClass = testClass;
this.method = method;
}
public TestDescriptor(TestCase test) {
this.testClass = test.getClass().getName();
this.method = test.getName();
this.test = test;
}
@Override
public int countTestCases() {
return 1;
}
public String getApplicationId() {
return applicationId;
}
@Override
public String getName() {
return getTestMethod();
}
public String getPluginId() {
return pluginId;
}
public Setup getSetup() {
return setup;
}
public Test getTest() {
return test == null ? this : test;
}
public String getTestClass() {
return testClass;
}
public String getTestMethod() {
return method;
}
public SessionTestRunner getTestRunner() {
return testRunner;
}
public boolean isCrashTest() {
return crashTest;
}
@Override
public void run(TestResult result) {
Setup localSetup = (Setup) setup.clone();
localSetup.setEclipseArgument(Setup.APPLICATION, applicationId);
localSetup.setEclipseArgument("testpluginname", pluginId);
localSetup.setEclipseArgument("test", testClass + ':' + method);
getTestRunner().run(getTest(), result, localSetup, crashTest);
}
public void setApplicationId(String applicationId) {
this.applicationId = applicationId;
}
public void setCrashTest(boolean crashTest) {
this.crashTest = crashTest;
}
public void setPluginId(String pluginId) {
this.pluginId = pluginId;
}
public void setSetup(Setup setup) {
this.setup = setup == null ? null : (Setup) setup.clone();
}
public void setTestRunner(SessionTestRunner testRunner) {
this.testRunner = testRunner;
}
@Override
public String toString() {
return getName() + "(" + getTestClass() + ")";
}
}