View Javadoc
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   * A fixture for testing the "auto" test suite feature.
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          // build the suite manually, because some of the suites are testing
28          // the functionality that automatically builds suites
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());  // warning test
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);  // warning test
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          // 1 public test case + 1 warning for the non-public test case
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 }