package junit.tests.runner; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import junit.runner.BaseTestRunner; public class BaseTestRunnerTest extends TestCase { public static class MockRunner extends BaseTestRunner { private boolean fRunFailed = false; @Override protected void runFailed(String message) { fRunFailed = true; } @Override public void testEnded(String testName) { } @Override public void testFailed(int status, Test test, Throwable e) { } @Override public void testStarted(String testName) { } } public static class NonStatic { public Test suite() { return null; } } public void testInvokeNonStaticSuite() { BaseTestRunner runner = new MockRunner(); runner.getTest("junit.tests.runner.BaseTestRunnerTest$NonStatic"); // Used to throw NullPointerException } public static class DoesntExtendTestCase { public static Test suite() { return new TestSuite(); } } public void testInvokeSuiteOnNonSubclassOfTestCase() { MockRunner runner = new MockRunner(); runner.getTest(DoesntExtendTestCase.class.getName()); assertFalse(runner.fRunFailed); } }