1 package junit.tests.runner;
2
3 import junit.framework.Test;
4 import junit.framework.TestCase;
5 import junit.framework.TestSuite;
6 import junit.runner.BaseTestRunner;
7
8 public class BaseTestRunnerTest extends TestCase {
9 public static class MockRunner extends BaseTestRunner {
10 private boolean fRunFailed = false;
11
12 @Override
13 protected void runFailed(String message) {
14 fRunFailed = true;
15 }
16
17 @Override
18 public void testEnded(String testName) {
19 }
20
21 @Override
22 public void testFailed(int status, Test test, Throwable e) {
23 }
24
25 @Override
26 public void testStarted(String testName) {
27 }
28 }
29
30 public static class NonStatic {
31 public Test suite() {
32 return null;
33 }
34 }
35
36 public void testInvokeNonStaticSuite() {
37 BaseTestRunner runner = new MockRunner();
38 runner.getTest("junit.tests.runner.BaseTestRunnerTest$NonStatic");
39 }
40
41 public static class DoesntExtendTestCase {
42 public static Test suite() {
43 return new TestSuite();
44 }
45 }
46
47 public void testInvokeSuiteOnNonSubclassOfTestCase() {
48 MockRunner runner = new MockRunner();
49 runner.getTest(DoesntExtendTestCase.class.getName());
50 assertFalse(runner.fRunFailed);
51 }
52 }