1 package junit.tests.framework;
2
3 import java.util.Collections;
4
5 import junit.framework.Test;
6 import junit.framework.TestCase;
7 import junit.framework.TestResult;
8 import junit.framework.TestSuite;
9
10
11
12
13 public class SuiteTest extends TestCase {
14 protected TestResult fResult;
15
16 public SuiteTest(String name) {
17 super(name);
18 }
19
20 @Override
21 protected void setUp() {
22 fResult = new TestResult();
23 }
24
25 public static Test suite() {
26 TestSuite suite = new TestSuite("Suite Tests");
27
28
29 suite.addTest(new SuiteTest("testNoTestCases"));
30 suite.addTest(new SuiteTest("testOneTestCase"));
31 suite.addTest(new SuiteTest("testNotPublicTestCase"));
32 suite.addTest(new SuiteTest("testNotVoidTestCase"));
33 suite.addTest(new SuiteTest("testNotExistingTestCase"));
34 suite.addTest(new SuiteTest("testInheritedTests"));
35 suite.addTest(new SuiteTest("testOneTestCaseEclipseSeesSameStructureAs381"));
36 suite.addTest(new SuiteTest("testNoTestCaseClass"));
37 suite.addTest(new SuiteTest("testShadowedTests"));
38 suite.addTest(new SuiteTest("testAddTestSuite"));
39 suite.addTest(new SuiteTest("testCreateSuiteFromArray"));
40
41 return suite;
42 }
43
44 public void testInheritedTests() {
45 TestSuite suite = new TestSuite(InheritedTestCase.class);
46 suite.run(fResult);
47 assertTrue(fResult.wasSuccessful());
48 assertEquals(2, fResult.runCount());
49 }
50
51 public void testNoTestCaseClass() {
52 Test t = new TestSuite(NoTestCaseClass.class);
53 t.run(fResult);
54 assertEquals(1, fResult.runCount());
55 assertTrue(!fResult.wasSuccessful());
56 }
57
58 public void testNoTestCases() {
59 Test t = new TestSuite(NoTestCases.class);
60 t.run(fResult);
61 assertTrue(fResult.runCount() == 1);
62 assertTrue(fResult.failureCount() == 1);
63 assertTrue(!fResult.wasSuccessful());
64 }
65
66 public void testNotExistingTestCase() {
67 Test t = new SuiteTest("notExistingMethod");
68 t.run(fResult);
69 assertTrue(fResult.runCount() == 1);
70 assertTrue(fResult.failureCount() == 1);
71 assertTrue(fResult.errorCount() == 0);
72 }
73
74 public void testNotPublicTestCase() {
75 TestSuite suite = new TestSuite(NotPublicTestCase.class);
76
77 assertEquals(2, suite.countTestCases());
78 }
79
80 public void testNotVoidTestCase() {
81 TestSuite suite = new TestSuite(NotVoidTestCase.class);
82 assertTrue(suite.countTestCases() == 1);
83 }
84
85 public void testOneTestCase() {
86 TestSuite t = new TestSuite(OneTestCase.class);
87 t.run(fResult);
88 assertTrue(fResult.runCount() == 1);
89 assertTrue(fResult.failureCount() == 0);
90 assertTrue(fResult.errorCount() == 0);
91 assertTrue(fResult.wasSuccessful());
92 }
93
94 public void testOneTestCaseEclipseSeesSameStructureAs381() {
95 TestSuite t = new TestSuite(ThreeTestCases.class);
96 assertEquals(3, Collections.list(t.tests()).size());
97 }
98
99 public void testShadowedTests() {
100 TestSuite suite = new TestSuite(OverrideTestCase.class);
101 suite.run(fResult);
102 assertEquals(1, fResult.runCount());
103 }
104
105 public void testAddTestSuite() {
106 TestSuite suite = new TestSuite();
107 suite.addTestSuite(OneTestCase.class);
108 suite.run(fResult);
109 assertEquals(1, fResult.runCount());
110 }
111
112 public void testCreateSuiteFromArray() {
113 TestSuite suite = new TestSuite(OneTestCase.class, DoublePrecisionAssertTest.class);
114 assertEquals(2, suite.testCount());
115 assertEquals("junit.tests.framework.DoublePrecisionAssertTest", ((TestSuite) suite.testAt(1)).getName());
116 assertEquals("junit.tests.framework.OneTestCase", ((TestSuite) suite.testAt(0)).getName());
117 }
118 }