Yaffs site version 1.1
[yaffs-website] / vendor / phpunit / phpunit / tests / Framework / SuiteTest.php
1 <?php
2 /*
3  * This file is part of PHPUnit.
4  *
5  * (c) Sebastian Bergmann <sebastian@phpunit.de>
6  *
7  * For the full copyright and license information, please view the LICENSE
8  * file that was distributed with this source code.
9  */
10
11 require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'BeforeAndAfterTest.php';
12 require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'BeforeClassAndAfterClassTest.php';
13 require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'TestWithTest.php';
14 require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'DataProviderSkippedTest.php';
15 require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'DataProviderIncompleteTest.php';
16 require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'InheritedTestCase.php';
17 require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'NoTestCaseClass.php';
18 require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'NoTestCases.php';
19 require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'NotPublicTestCase.php';
20 require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'NotVoidTestCase.php';
21 require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'OverrideTestCase.php';
22 require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'RequirementsClassBeforeClassHookTest.php';
23
24 /**
25  * @since      Class available since Release 2.0.0
26  * @covers     PHPUnit_Framework_TestSuite
27  */
28 class Framework_SuiteTest extends PHPUnit_Framework_TestCase
29 {
30     protected $result;
31
32     protected function setUp()
33     {
34         $this->result = new PHPUnit_Framework_TestResult;
35     }
36
37     public static function suite()
38     {
39         $suite = new PHPUnit_Framework_TestSuite;
40
41         $suite->addTest(new self('testAddTestSuite'));
42         $suite->addTest(new self('testInheritedTests'));
43         $suite->addTest(new self('testNoTestCases'));
44         $suite->addTest(new self('testNoTestCaseClass'));
45         $suite->addTest(new self('testNotExistingTestCase'));
46         $suite->addTest(new self('testNotPublicTestCase'));
47         $suite->addTest(new self('testNotVoidTestCase'));
48         $suite->addTest(new self('testOneTestCase'));
49         $suite->addTest(new self('testShadowedTests'));
50         $suite->addTest(new self('testBeforeClassAndAfterClassAnnotations'));
51         $suite->addTest(new self('testBeforeAnnotation'));
52         $suite->addTest(new self('testTestWithAnnotation'));
53         $suite->addTest(new self('testSkippedTestDataProvider'));
54         $suite->addTest(new self('testIncompleteTestDataProvider'));
55         $suite->addTest(new self('testRequirementsBeforeClassHook'));
56         $suite->addTest(new self('testDontSkipInheritedClass'));
57
58         return $suite;
59     }
60
61     public function testAddTestSuite()
62     {
63         $suite = new PHPUnit_Framework_TestSuite(
64             'OneTestCase'
65         );
66
67         $suite->run($this->result);
68
69         $this->assertEquals(1, count($this->result));
70     }
71
72     public function testInheritedTests()
73     {
74         $suite = new PHPUnit_Framework_TestSuite(
75             'InheritedTestCase'
76         );
77
78         $suite->run($this->result);
79
80         $this->assertTrue($this->result->wasSuccessful());
81         $this->assertEquals(2, count($this->result));
82     }
83
84     public function testNoTestCases()
85     {
86         $suite = new PHPUnit_Framework_TestSuite(
87             'NoTestCases'
88         );
89
90         $suite->run($this->result);
91
92         $this->assertTrue(!$this->result->wasSuccessful());
93         $this->assertEquals(1, $this->result->failureCount());
94         $this->assertEquals(1, count($this->result));
95     }
96
97     /**
98      * @expectedException PHPUnit_Framework_Exception
99      */
100     public function testNoTestCaseClass()
101     {
102         $suite = new PHPUnit_Framework_TestSuite('NoTestCaseClass');
103     }
104
105     public function testNotExistingTestCase()
106     {
107         $suite = new self('notExistingMethod');
108
109         $suite->run($this->result);
110
111         $this->assertEquals(0, $this->result->errorCount());
112         $this->assertEquals(1, $this->result->failureCount());
113         $this->assertEquals(1, count($this->result));
114     }
115
116     public function testNotPublicTestCase()
117     {
118         $suite = new PHPUnit_Framework_TestSuite(
119             'NotPublicTestCase'
120         );
121
122         $this->assertEquals(2, count($suite));
123     }
124
125     public function testNotVoidTestCase()
126     {
127         $suite = new PHPUnit_Framework_TestSuite(
128             'NotVoidTestCase'
129         );
130
131         $this->assertEquals(1, count($suite));
132     }
133
134     public function testOneTestCase()
135     {
136         $suite = new PHPUnit_Framework_TestSuite(
137             'OneTestCase'
138         );
139
140         $suite->run($this->result);
141
142         $this->assertEquals(0, $this->result->errorCount());
143         $this->assertEquals(0, $this->result->failureCount());
144         $this->assertEquals(1, count($this->result));
145         $this->assertTrue($this->result->wasSuccessful());
146     }
147
148     public function testShadowedTests()
149     {
150         $suite = new PHPUnit_Framework_TestSuite(
151             'OverrideTestCase'
152         );
153
154         $suite->run($this->result);
155
156         $this->assertEquals(1, count($this->result));
157     }
158
159     public function testBeforeClassAndAfterClassAnnotations()
160     {
161         $suite = new PHPUnit_Framework_TestSuite(
162             'BeforeClassAndAfterClassTest'
163         );
164
165         BeforeClassAndAfterClassTest::resetProperties();
166         $suite->run($this->result);
167
168         $this->assertEquals(1, BeforeClassAndAfterClassTest::$beforeClassWasRun, '@beforeClass method was not run once for the whole suite.');
169         $this->assertEquals(1, BeforeClassAndAfterClassTest::$afterClassWasRun, '@afterClass method was not run once for the whole suite.');
170     }
171
172     public function testBeforeAnnotation()
173     {
174         $test = new PHPUnit_Framework_TestSuite(
175             'BeforeAndAfterTest'
176         );
177
178         BeforeAndAfterTest::resetProperties();
179         $result = $test->run();
180
181         $this->assertEquals(2, BeforeAndAfterTest::$beforeWasRun);
182         $this->assertEquals(2, BeforeAndAfterTest::$afterWasRun);
183     }
184
185     public function testTestWithAnnotation()
186     {
187         $test = new PHPUnit_Framework_TestSuite(
188             'TestWithTest'
189         );
190
191         BeforeAndAfterTest::resetProperties();
192         $result = $test->run();
193
194         $this->assertEquals(4, count($result->passed()));
195     }
196
197     public function testSkippedTestDataProvider()
198     {
199         $suite = new PHPUnit_Framework_TestSuite('DataProviderSkippedTest');
200
201         $suite->run($this->result);
202
203         $this->assertEquals(3, $this->result->count());
204         $this->assertEquals(1, $this->result->skippedCount());
205     }
206
207     public function testIncompleteTestDataProvider()
208     {
209         $suite = new PHPUnit_Framework_TestSuite('DataProviderIncompleteTest');
210
211         $suite->run($this->result);
212
213         $this->assertEquals(3, $this->result->count());
214         $this->assertEquals(1, $this->result->notImplementedCount());
215     }
216
217     public function testRequirementsBeforeClassHook()
218     {
219         $suite = new PHPUnit_Framework_TestSuite(
220             'RequirementsClassBeforeClassHookTest'
221         );
222
223         $suite->run($this->result);
224
225         $this->assertEquals(0, $this->result->errorCount());
226         $this->assertEquals(1, $this->result->skippedCount());
227     }
228
229     public function testDontSkipInheritedClass()
230     {
231         $suite = new PHPUnit_Framework_TestSuite(
232             'DontSkipInheritedClass'
233         );
234
235         $dir = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'Inheritance' . DIRECTORY_SEPARATOR;
236
237         $suite->addTestFile($dir . 'InheritanceA.php');
238         $suite->addTestFile($dir . 'InheritanceB.php');
239         $result = $suite->run();
240         $this->assertEquals(2, count($result));
241     }
242 }