blob: cc44c0ba120db613672ef4bd833ef0e41ce765d2 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2013 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 org.eclipse.jdt.junit.JUnitCore;
import org.eclipse.jdt.junit.TestRunListener;
import org.eclipse.jdt.junit.model.ITestElement.ProgressState;
import org.eclipse.jdt.junit.model.ITestElement.Result;
import org.eclipse.jdt.testplugin.JavaProjectHelper;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.internal.junit.launcher.TestKindRegistry;
public class TestRunFilteredParameterizedRunnerTest4 extends AbstractTestRunListenerTest {
private IType fATestCase;
private String[] runTreeTest(IType typeToLaunch, String testName, int step) throws Exception {
TestRunLog log= new TestRunLog();
final TestRunListener testRunListener= new TestRunListeners.TreeTest(log, step);
JUnitCore.addTestRunListener(testRunListener);
try {
return launchJUnit(typeToLaunch, TestKindRegistry.JUNIT4_TEST_KIND_ID, testName, log);
} finally {
JUnitCore.removeTestRunListener(testRunListener);
}
}
@Override
protected void setUp() throws Exception {
fProject= JavaProjectHelper.createJavaProject("TestRunListenerTest", "bin");
JavaProjectHelper.addVariableEntry(fProject, new Path("JUNIT_HOME/junit.jar"), null, null);
JavaProjectHelper.addToClasspath(fProject, JavaCore.newContainerEntry(JUnitCore.JUNIT4_CONTAINER_PATH));
JavaProjectHelper.addRTJar15(fProject);
String source=
"package pack;\n"+
"\n"+
"import java.util.Arrays;\n"+
"\n"+
"import org.junit.Assert;\n"+
"import org.junit.Test;\n"+
"import org.junit.runner.RunWith;\n"+
"import org.junit.runners.Parameterized;\n"+
"import org.junit.runners.Parameterized.Parameter;\n"+
"import org.junit.runners.Parameterized.Parameters;\n"+
"\n" +
"@RunWith(Parameterized.class)\n"+
"public class ATestCase {\n"+
"\n"+
" @Parameters\n"+
" public static Iterable<Object[]> data() {\n"+
" return Arrays.asList(new Object[][] { { 6 }, { 12 } });\n"+
" }\n"+
"\n"+
" @Parameter\n"+
" public int param;\n"+
"\n"+
" @Test\n"+
" public void testDiv() {\n"+
" Assert.assertEquals(0, param % 2);\n"+
" }\n"+
"\n"+
" @Test\n"+
" public void testDiv2() {\n"+
" Assert.assertEquals(0, param % 3);\n"+
" }\n"+
"}\n;";
fATestCase= createType(source, "pack", "ATestCase.java");
}
public void testMatchRoot() throws Exception {
String[] expectedSequence= new String[] {
TestRunListeners.sessionAsString("ATestCase pack.ATestCase", ProgressState.COMPLETED, Result.OK, 0),
TestRunListeners.suiteAsString("pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 1),
TestRunListeners.suiteAsString("[0]", ProgressState.COMPLETED, Result.OK, null, 2),
TestRunListeners.testCaseAsString("testDiv[0]", "pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 3),
TestRunListeners.testCaseAsString("testDiv2[0]", "pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 3),
TestRunListeners.suiteAsString("[1]", ProgressState.COMPLETED, Result.OK, null, 2),
TestRunListeners.testCaseAsString("testDiv[1]", "pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 3),
TestRunListeners.testCaseAsString("testDiv2[1]", "pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 3),
};
String[] actual= runTreeTest(fATestCase, "pack.ATestCase", 10);
assertEqualLog(expectedSequence, actual);
}
public void testMatchSubtree1ByName() throws Exception {
String[] expectedSequence= new String[] {
TestRunListeners.sessionAsString("ATestCase [0]", ProgressState.COMPLETED, Result.OK, 0),
TestRunListeners.suiteAsString("[0]", ProgressState.COMPLETED, Result.OK, null, 1),
TestRunListeners.testCaseAsString("testDiv[0]", "pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 2),
TestRunListeners.testCaseAsString("testDiv2[0]", "pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 2),
};
String[] actual= runTreeTest(fATestCase, "[0]", 6);
assertEqualLog(expectedSequence, actual);
}
public void testMatchSubtree1Leaf1ByName() throws Exception {
String[] expectedSequence= new String[] {
TestRunListeners.sessionAsString("ATestCase testDiv[0]", ProgressState.COMPLETED, Result.OK, 0),
TestRunListeners.testCaseAsString("testDiv[0]", "pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 1),
};
String[] actual= runTreeTest(fATestCase, "testDiv[0]", 4);
assertEqualLog(expectedSequence, actual);
}
public void testMatchSubtree1Leaf1ByNameAndClass() throws Exception {
String[] expectedSequence= new String[] {
TestRunListeners.sessionAsString("ATestCase testDiv[0]", ProgressState.COMPLETED, Result.OK, 0),
TestRunListeners.testCaseAsString("testDiv[0]", "pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 1),
};
String[] actual2= runTreeTest(fATestCase, "testDiv[0](pack.ATestCase)", 4);
assertEqualLog(expectedSequence, actual2);
}
public void testMatchSubtree1Leaf2ByName() throws Exception {
String[] expectedSequence= new String[] {
TestRunListeners.sessionAsString("ATestCase testDiv[1]", ProgressState.COMPLETED, Result.OK, 0),
TestRunListeners.testCaseAsString("testDiv[1]", "pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 1),
};
String[] actual= runTreeTest(fATestCase, "testDiv[1]", 4);
assertEqualLog(expectedSequence, actual);
}
public void testMatchSubtree2ByName() throws Exception {
String[] expectedSequence= new String[] {
TestRunListeners.sessionAsString("ATestCase [1]", ProgressState.COMPLETED, Result.OK, 0),
TestRunListeners.suiteAsString("[1]", ProgressState.COMPLETED, Result.OK, null, 1),
TestRunListeners.testCaseAsString("testDiv[1]", "pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 2),
TestRunListeners.testCaseAsString("testDiv2[1]", "pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 2),
};
String[] actual= runTreeTest(fATestCase, "[1]", 6);
assertEqualLog(expectedSequence, actual);
}
public void testMatchAllFirstLeafs() throws Exception {
String[] expectedSequence= new String[] {
TestRunListeners.sessionAsString("ATestCase testDiv", ProgressState.COMPLETED, Result.OK, 0),
TestRunListeners.suiteAsString("pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 1),
TestRunListeners.suiteAsString("[0]", ProgressState.COMPLETED, Result.OK, null, 2),
TestRunListeners.testCaseAsString("testDiv[0]", "pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 3),
TestRunListeners.suiteAsString("[1]", ProgressState.COMPLETED, Result.OK, null, 2),
TestRunListeners.testCaseAsString("testDiv[1]", "pack.ATestCase", ProgressState.COMPLETED, Result.OK, null, 3),
};
String[] actual= runTreeTest(fATestCase, "testDiv", 6);
assertEqualLog(expectedSequence, actual);
}
}