/craft/app/vendor/phpunit/phpunit/Tests/Framework/SuiteTest.php

https://gitlab.com/madebycloud/derekman · PHP · 235 lines · 166 code · 47 blank · 22 comment · 2 complexity · c71ffbb510574a409fe0748ef9d7238d MD5 · raw file

  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. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'BeforeAndAfterTest.php';
  11. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'BeforeClassAndAfterClassTest.php';
  12. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'DataProviderSkippedTest.php';
  13. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'DataProviderIncompleteTest.php';
  14. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'InheritedTestCase.php';
  15. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'NoTestCaseClass.php';
  16. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'NoTestCases.php';
  17. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'NotPublicTestCase.php';
  18. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'NotVoidTestCase.php';
  19. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'OverrideTestCase.php';
  20. require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'RequirementsClassBeforeClassHookTest.php';
  21. /**
  22. *
  23. *
  24. * @package PHPUnit
  25. * @author Sebastian Bergmann <sebastian@phpunit.de>
  26. * @copyright Sebastian Bergmann <sebastian@phpunit.de>
  27. * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License
  28. * @link http://www.phpunit.de/
  29. * @since Class available since Release 2.0.0
  30. * @covers PHPUnit_Framework_TestSuite
  31. */
  32. class Framework_SuiteTest extends PHPUnit_Framework_TestCase
  33. {
  34. protected $result;
  35. protected function setUp()
  36. {
  37. $this->result = new PHPUnit_Framework_TestResult;
  38. }
  39. public static function suite()
  40. {
  41. $suite = new PHPUnit_Framework_TestSuite;
  42. $suite->addTest(new Framework_SuiteTest('testAddTestSuite'));
  43. $suite->addTest(new Framework_SuiteTest('testInheritedTests'));
  44. $suite->addTest(new Framework_SuiteTest('testNoTestCases'));
  45. $suite->addTest(new Framework_SuiteTest('testNoTestCaseClass'));
  46. $suite->addTest(new Framework_SuiteTest('testNotExistingTestCase'));
  47. $suite->addTest(new Framework_SuiteTest('testNotPublicTestCase'));
  48. $suite->addTest(new Framework_SuiteTest('testNotVoidTestCase'));
  49. $suite->addTest(new Framework_SuiteTest('testOneTestCase'));
  50. $suite->addTest(new Framework_SuiteTest('testShadowedTests'));
  51. $suite->addTest(new Framework_SuiteTest('testBeforeClassAndAfterClassAnnotations'));
  52. $suite->addTest(new Framework_SuiteTest('testBeforeAnnotation'));
  53. $suite->addTest(new Framework_SuiteTest('testSkippedTestDataProvider'));
  54. $suite->addTest(new Framework_SuiteTest('testIncompleteTestDataProvider'));
  55. $suite->addTest(new Framework_SuiteTest('testRequirementsBeforeClassHook'));
  56. $suite->addTest(new Framework_SuiteTest('testDontSkipInheritedClass'));
  57. return $suite;
  58. }
  59. public function testAddTestSuite()
  60. {
  61. $suite = new PHPUnit_Framework_TestSuite(
  62. 'OneTestCase'
  63. );
  64. $suite->run($this->result);
  65. $this->assertEquals(1, count($this->result));
  66. }
  67. public function testInheritedTests()
  68. {
  69. $suite = new PHPUnit_Framework_TestSuite(
  70. 'InheritedTestCase'
  71. );
  72. $suite->run($this->result);
  73. $this->assertTrue($this->result->wasSuccessful());
  74. $this->assertEquals(2, count($this->result));
  75. }
  76. public function testNoTestCases()
  77. {
  78. $suite = new PHPUnit_Framework_TestSuite(
  79. 'NoTestCases'
  80. );
  81. $suite->run($this->result);
  82. $this->assertTrue(!$this->result->wasSuccessful());
  83. $this->assertEquals(1, $this->result->failureCount());
  84. $this->assertEquals(1, count($this->result));
  85. }
  86. /**
  87. * @expectedException PHPUnit_Framework_Exception
  88. */
  89. public function testNoTestCaseClass()
  90. {
  91. $suite = new PHPUnit_Framework_TestSuite('NoTestCaseClass');
  92. }
  93. public function testNotExistingTestCase()
  94. {
  95. $suite = new Framework_SuiteTest('notExistingMethod');
  96. $suite->run($this->result);
  97. $this->assertEquals(0, $this->result->errorCount());
  98. $this->assertEquals(1, $this->result->failureCount());
  99. $this->assertEquals(1, count($this->result));
  100. }
  101. public function testNotPublicTestCase()
  102. {
  103. $suite = new PHPUnit_Framework_TestSuite(
  104. 'NotPublicTestCase'
  105. );
  106. $this->assertEquals(2, count($suite));
  107. }
  108. public function testNotVoidTestCase()
  109. {
  110. $suite = new PHPUnit_Framework_TestSuite(
  111. 'NotVoidTestCase'
  112. );
  113. $this->assertEquals(1, count($suite));
  114. }
  115. public function testOneTestCase()
  116. {
  117. $suite = new PHPUnit_Framework_TestSuite(
  118. 'OneTestCase'
  119. );
  120. $suite->run($this->result);
  121. $this->assertEquals(0, $this->result->errorCount());
  122. $this->assertEquals(0, $this->result->failureCount());
  123. $this->assertEquals(1, count($this->result));
  124. $this->assertTrue($this->result->wasSuccessful());
  125. }
  126. public function testShadowedTests()
  127. {
  128. $suite = new PHPUnit_Framework_TestSuite(
  129. 'OverrideTestCase'
  130. );
  131. $suite->run($this->result);
  132. $this->assertEquals(1, count($this->result));
  133. }
  134. public function testBeforeClassAndAfterClassAnnotations()
  135. {
  136. $suite = new PHPUnit_Framework_TestSuite(
  137. 'BeforeClassAndAfterClassTest'
  138. );
  139. BeforeClassAndAfterClassTest::resetProperties();
  140. $suite->run($this->result);
  141. $this->assertEquals(1, BeforeClassAndAfterClassTest::$beforeClassWasRun, "@beforeClass method was not run once for the whole suite.");
  142. $this->assertEquals(1, BeforeClassAndAfterClassTest::$afterClassWasRun, "@afterClass method was not run once for the whole suite.");
  143. }
  144. public function testBeforeAnnotation()
  145. {
  146. $test = new PHPUnit_Framework_TestSuite(
  147. 'BeforeAndAfterTest'
  148. );
  149. BeforeAndAfterTest::resetProperties();
  150. $result = $test->run();
  151. $this->assertEquals(2, BeforeAndAfterTest::$beforeWasRun);
  152. $this->assertEquals(2, BeforeAndAfterTest::$afterWasRun);
  153. }
  154. public function testSkippedTestDataProvider()
  155. {
  156. $suite = new PHPUnit_Framework_TestSuite('DataProviderSkippedTest');
  157. $suite->run($this->result);
  158. $this->assertEquals(3, $this->result->count());
  159. $this->assertEquals(1, $this->result->skippedCount());
  160. }
  161. public function testIncompleteTestDataProvider()
  162. {
  163. $suite = new PHPUnit_Framework_TestSuite('DataProviderIncompleteTest');
  164. $suite->run($this->result);
  165. $this->assertEquals(3, $this->result->count());
  166. $this->assertEquals(1, $this->result->notImplementedCount());
  167. }
  168. public function testRequirementsBeforeClassHook()
  169. {
  170. $suite = new PHPUnit_Framework_TestSuite(
  171. 'RequirementsClassBeforeClassHookTest'
  172. );
  173. $suite->run($this->result);
  174. $this->assertEquals(0, $this->result->errorCount());
  175. $this->assertEquals(1, $this->result->skippedCount());
  176. }
  177. public function testDontSkipInheritedClass()
  178. {
  179. $suite = new PHPUnit_Framework_TestSuite(
  180. 'DontSkipInheritedClass'
  181. );
  182. $dir = dirname(__DIR__) . DIRECTORY_SEPARATOR . '_files' . DIRECTORY_SEPARATOR . 'Inheritance' . DIRECTORY_SEPARATOR;
  183. $suite->addTestFile($dir.'InheritanceA.php');
  184. $suite->addTestFile($dir.'InheritanceB.php');
  185. $result = $suite->run();
  186. $this->assertEquals(2, count($result));
  187. }
  188. }