blob: 555e7767861046e7d0566087f52dc7b2319369ba [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2010 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.junit.tests;
import java.io.File;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestResult;
import junit.framework.TestSuite;
import org.eclipse.jdt.junit.JUnitCore;
import org.eclipse.jdt.junit.TestRunListener;
import org.eclipse.jdt.junit.model.ITestElement.FailureTrace;
import org.eclipse.jdt.junit.model.ITestElement.ProgressState;
import org.eclipse.jdt.junit.model.ITestElement.Result;
import org.eclipse.jdt.junit.tests.AbstractTestRunListenerTest.TestRunLog;
import org.eclipse.jdt.testplugin.JavaTestPlugin;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
import org.eclipse.jdt.internal.junit.model.JUnitModel;
import org.eclipse.jdt.launching.IVMInstall;
import org.eclipse.jdt.launching.IVMInstall2;
import org.eclipse.jdt.launching.JavaRuntime;
public class TestRunSessionSerializationTests4 extends AbstractTestRunSessionSerializationTests {
public static Test setUpTest(Test test) {
IVMInstall defaultVMInstall= JavaRuntime.getDefaultVMInstall();
if (defaultVMInstall instanceof IVMInstall2) {
IVMInstall2 install2= (IVMInstall2) defaultVMInstall;
String version= JavaModelUtil.getCompilerCompliance(install2, JavaCore.VERSION_1_4);
if (JavaModelUtil.is50OrHigher(version))
return new JUnitWorkspaceTestSetup(test, true);
}
return new TestCase("TestRunSessionSerializationTests4 disabled because VM < 5.0") {
@Override
public void run(TestResult result) {
result.startTest(this);
result.endTest(this);
}
};
}
public static Test suite() {
return setUpTest(new TestSuite(TestRunSessionSerializationTests4.class));
}
public void testATestCase() throws Exception {
String test= "ATestCase";
runCUTest(test);
}
public void testATestSuite() throws Exception {
String test= "ATestSuite";
runCUTest(test);
}
public void testFailures() throws Exception {
String test= "Failures";
TestRunLog log= new TestRunLog();
final TestRunListener testRunListener= new TestRunListeners.SequenceTest(log);
JUnitCore.addTestRunListener(testRunListener);
try {
runCUTest(test);
String[] expectedSequence= new String[] {
"sessionStarted-" + TestRunListeners.sessionAsString("Failures", ProgressState.RUNNING, Result.UNDEFINED, 0),
"testCaseStarted-" + TestRunListeners.testCaseAsString("testNasty", "pack.Failures", ProgressState.RUNNING, Result.UNDEFINED, null, 0),
"testCaseFinished-" + TestRunListeners.testCaseAsString("testNasty", "pack.Failures", ProgressState.COMPLETED, Result.FAILURE, new FailureTrace("java.lang.AssertionError", null, null), 0),
"testCaseStarted-" + TestRunListeners.testCaseAsString("ignored", "pack.Failures", ProgressState.RUNNING, Result.UNDEFINED, null, 0),
"testCaseFinished-" + TestRunListeners.testCaseAsString("ignored", "pack.Failures", ProgressState.COMPLETED, Result.IGNORED, null, 0),
"testCaseStarted-" + TestRunListeners.testCaseAsString("testError", "pack.Failures", ProgressState.RUNNING, Result.UNDEFINED, null, 0),
"testCaseFinished-" + TestRunListeners.testCaseAsString("testError", "pack.Failures", ProgressState.COMPLETED, Result.ERROR, new FailureTrace("java.lang.IllegalStateException", null, null), 0),
"testCaseStarted-" + TestRunListeners.testCaseAsString("errorExpected", "pack.Failures", ProgressState.RUNNING, Result.UNDEFINED, null, 0),
"testCaseFinished-" + TestRunListeners.testCaseAsString("errorExpected", "pack.Failures", ProgressState.COMPLETED, Result.OK, null, 0),
"testCaseStarted-" + TestRunListeners.testCaseAsString("errorExpectedOther", "pack.Failures", ProgressState.RUNNING, Result.UNDEFINED, null, 0),
"testCaseFinished-" + TestRunListeners.testCaseAsString("errorExpectedOther", "pack.Failures", ProgressState.COMPLETED, Result.ERROR, new FailureTrace("java.lang.Exception", null, null), 0),
"testCaseStarted-" + TestRunListeners.testCaseAsString("compareTheStuff", "pack.Failures", ProgressState.RUNNING, Result.UNDEFINED, null, 0),
"testCaseFinished-" + TestRunListeners.testCaseAsString("compareTheStuff", "pack.Failures", ProgressState.COMPLETED, Result.FAILURE, new FailureTrace("org.junit.ComparisonFailure", "\nHello World.\n\n", "\n\nHello my friend."), 0),
"testCaseStarted-" + TestRunListeners.testCaseAsString("testCompareNull", "pack.Failures", ProgressState.RUNNING, Result.UNDEFINED, null, 0),
"testCaseFinished-" + TestRunListeners.testCaseAsString("testCompareNull", "pack.Failures", ProgressState.COMPLETED, Result.FAILURE, new FailureTrace("java.lang.AssertionError", null, null), 0),
"sessionFinished-" + TestRunListeners.sessionAsString("Failures", ProgressState.COMPLETED, Result.ERROR, 0)
};
String[] actual= log.getLog();
AbstractTestRunListenerTest.assertEqualLog(expectedSequence, actual);
} finally {
JUnitCore.removeTestRunListener(testRunListener);
}
}
public void testAllTests() throws Exception {
String test= "AllTests";
runCUTest(test);
}
public void testImportAntSuite() throws Exception {
Path testsPath= new Path(JUnitWorkspaceTestSetup.getProjectPath() + "ant/result/TESTS-TestSuites.xml");
File testsFile= JavaTestPlugin.getDefault().getFileInPlugin(testsPath);
JUnitModel.importTestRunSession(testsFile); // no contents check for now...
}
}