| package org.junit.tests.junit3compatibility; |
| |
| import static org.hamcrest.CoreMatchers.containsString; |
| import static org.hamcrest.MatcherAssert.assertThat; |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertTrue; |
| |
| import junit.framework.JUnit4TestAdapter; |
| import junit.framework.TestCase; |
| import junit.framework.TestSuite; |
| import org.junit.runner.JUnitCore; |
| import org.junit.runner.RunWith; |
| import org.junit.runners.AllTests; |
| |
| public class AllTestsTest { |
| |
| private static boolean run; |
| |
| public static class OneTest extends TestCase { |
| public void testSomething() { |
| run = true; |
| } |
| } |
| |
| @RunWith(AllTests.class) |
| public static class All { |
| public static junit.framework.Test suite() { |
| TestSuite suite = new TestSuite(); |
| suite.addTestSuite(OneTest.class); |
| return suite; |
| } |
| } |
| |
| @org.junit.Test |
| public void ensureTestIsRun() { |
| JUnitCore runner = new JUnitCore(); |
| run = false; // Have to explicitly set run here because the runner might independently run OneTest above |
| runner.run(All.class); |
| assertTrue(run); |
| } |
| |
| @org.junit.Test |
| public void correctTestCount() throws Throwable { |
| AllTests tests = new AllTests(All.class); |
| assertEquals(1, tests.testCount()); |
| } |
| |
| @org.junit.Test |
| public void someUsefulDescription() throws Throwable { |
| AllTests tests = new AllTests(All.class); |
| assertThat(tests.getDescription().toString(), containsString("OneTest")); |
| } |
| |
| public static class JUnit4Test { |
| @org.junit.Test |
| public void testSomething() { |
| run = true; |
| } |
| } |
| |
| @RunWith(AllTests.class) |
| public static class AllJUnit4 { |
| public static junit.framework.Test suite() { |
| TestSuite suite = new TestSuite(); |
| suite.addTest(new JUnit4TestAdapter(JUnit4Test.class)); |
| return suite; |
| } |
| } |
| |
| @org.junit.Test |
| public void correctTestCountAdapted() throws Throwable { |
| AllTests tests = new AllTests(AllJUnit4.class); |
| assertEquals(1, tests.testCount()); |
| } |
| |
| @RunWith(AllTests.class) |
| public static class BadSuiteMethod { |
| public static junit.framework.Test suite() { |
| throw new RuntimeException("can't construct"); |
| } |
| } |
| |
| @org.junit.Test(expected = RuntimeException.class) |
| public void exceptionThrownWhenSuiteIsBad() throws Throwable { |
| new AllTests(BadSuiteMethod.class); |
| } |
| } |