blob: 8d20f33a042366901a3e018bc45c46be44fa1357 [file] [log] [blame]
package org.junit.tests.junit3compatibility;
import static org.junit.Assert.assertEquals;
import java.util.Collections;
import junit.framework.JUnit4TestAdapter;
import junit.framework.TestCase;
import junit.framework.TestResult;
import junit.framework.TestSuite;
import org.junit.Test;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
public class JUnit4TestAdapterTest {
private static void doTest(Class<?> clazz) {
// JUnit 4 runner:
Result result = JUnitCore.runClasses(clazz);
assertEquals(1, result.getRunCount());
assertEquals(0, result.getFailureCount());
assertEquals(0, result.getIgnoreCount());
// JUnit 3 runner:
TestResult testResult = new TestResult();
new JUnit4TestAdapter(clazz).run(testResult);
assertEquals(1, testResult.runCount());
assertEquals(0, testResult.failureCount());
assertEquals(Collections.emptyList(), Collections.list(testResult.errors()));
}
public static class Test4 {
@Test
public void pass() throws Exception {
//pass
}
}
@RunWith(Suite.class)
@Suite.SuiteClasses(Test4.class)
public static class TestSuiteFor4 {
}
@Test
public void testJUnit4Suite() {
doTest(TestSuiteFor4.class);
}
public static class Test3 extends TestCase {
public void testPass() throws Exception {
//pass
}
}
@RunWith(Suite.class)
@Suite.SuiteClasses(Test3.class)
public static class TestSuiteFor3 {
}
@Test
public void testJUnit3Suite() {
doTest(TestSuiteFor3.class);
}
public static class TestSuite3 {
public static junit.framework.Test suite() {
return new TestSuite(Test3.class);
}
}
@RunWith(Suite.class)
@Suite.SuiteClasses(TestSuite3.class)
public static class TestSuite4ForTestSuite3 {
}
@Test
public void testJUnit4SuiteThatContainsJUnit3SuiteClass() {
doTest(TestSuite4ForTestSuite3.class);
}
}