/tests/units/classes/report/fields/test/duration/cli.php

https://github.com/Yacodo/atoum · PHP · 246 lines · 207 code · 39 blank · 0 comment · 0 complexity · f9cbf53d781ce28f3d2837e52fc0df2b MD5 · raw file

  1. <?php
  2. namespace mageekguy\atoum\tests\units\report\fields\test\duration;
  3. use
  4. mageekguy\atoum,
  5. mageekguy\atoum\mock,
  6. mageekguy\atoum\locale,
  7. mageekguy\atoum\cli\prompt,
  8. mageekguy\atoum\cli\colorizer,
  9. mageekguy\atoum\test\adapter,
  10. mageekguy\atoum\report\fields\test,
  11. mageekguy\atoum\tests\units
  12. ;
  13. require_once __DIR__ . '/../../../../../runner.php';
  14. class cli extends units\report\fields\test\duration
  15. {
  16. public function testClass()
  17. {
  18. $this->assert
  19. ->testedClass->isSubClassOf('mageekguy\atoum\report\fields\test')
  20. ;
  21. }
  22. public function test__construct()
  23. {
  24. $field = new test\duration\cli();
  25. $this->assert
  26. ->object($field->getPrompt())->isEqualTo(new prompt())
  27. ->object($field->getTitleColorizer())->isEqualTo(new colorizer())
  28. ->object($field->getDurationColorizer())->isEqualTo(new colorizer())
  29. ->object($field->getLocale())->isEqualTo(new locale())
  30. ->variable($field->getValue())->isNull()
  31. ;
  32. $field = new test\duration\cli(null, null, null, null);
  33. $this->assert
  34. ->object($field->getPrompt())->isEqualTo(new prompt())
  35. ->object($field->getTitleColorizer())->isEqualTo(new colorizer())
  36. ->object($field->getDurationColorizer())->isEqualTo(new colorizer())
  37. ->object($field->getLocale())->isEqualTo(new locale())
  38. ->variable($field->getValue())->isNull()
  39. ;
  40. $field = new test\duration\cli($prompt = new prompt(), $titleColorizer = new colorizer(), $durationColorizer = new colorizer(), $locale = new locale());
  41. $this->assert
  42. ->object($field->getPrompt())->isIdenticalTo($prompt)
  43. ->object($field->getTitleColorizer())->isIdenticalTo($titleColorizer)
  44. ->object($field->getDurationColorizer())->isIdenticalTo($durationColorizer)
  45. ->object($field->getLocale())->isIdenticalTo($locale)
  46. ->variable($field->getValue())->isNull()
  47. ;
  48. }
  49. public function testSetTitleColorizer()
  50. {
  51. $field = new test\duration\cli();
  52. $this->assert
  53. ->object($field->setTitleColorizer($colorizer = new colorizer()))->isIdenticalTo($field)
  54. ->object($field->getTitleColorizer())->isIdenticalTo($colorizer)
  55. ;
  56. }
  57. public function testSetDurationColorizer()
  58. {
  59. $field = new test\duration\cli();
  60. $this->assert
  61. ->object($field->setDurationColorizer($colorizer = new colorizer()))->isIdenticalTo($field)
  62. ->object($field->getDurationColorizer())->isIdenticalTo($colorizer)
  63. ;
  64. }
  65. public function testSetWithTest()
  66. {
  67. $field = new test\duration\cli();
  68. $this->mockGenerator
  69. ->generate('mageekguy\atoum\test')
  70. ->generate('mageekguy\atoum\score')
  71. ;
  72. $score = new \mock\mageekguy\atoum\score();
  73. $score->getMockController()->getTotalDuration = function() use (& $runningDuration) { return $runningDuration = rand(0, PHP_INT_MAX); };
  74. $adapter = new adapter();
  75. $adapter->class_exists = true;
  76. $testController = new mock\controller();
  77. $testController->getTestedClassName = uniqid();
  78. $testController->getScore = $score;
  79. $test = new \mock\mageekguy\atoum\test(null, null, $adapter, $testController);
  80. $this->assert
  81. ->variable($field->getValue())->isNull()
  82. ->object($field->setWithTest($test))->isIdenticalTo($field)
  83. ->variable($field->getValue())->isNull()
  84. ->object($field->setWithTest($test, atoum\test::runStart))->isIdenticalTo($field)
  85. ->variable($field->getValue())->isNull()
  86. ->object($field->setWithTest($test, atoum\test::runStop))->isIdenticalTo($field)
  87. ->integer($field->getValue())->isEqualTo($runningDuration)
  88. ;
  89. }
  90. public function testSetPrompt()
  91. {
  92. $field = new test\duration\cli();
  93. $this->assert
  94. ->object($field->setPrompt($prompt = new prompt()))->isIdenticalTo($field)
  95. ->object($field->getPrompt())->isIdenticalTo($prompt)
  96. ;
  97. }
  98. public function test__toString()
  99. {
  100. $adapter = new adapter();
  101. $adapter->class_exists = true;
  102. $this->mockGenerator
  103. ->generate('mageekguy\atoum\test')
  104. ->generate('mageekguy\atoum\score')
  105. ;
  106. $score = new \mock\mageekguy\atoum\score();
  107. $testController = new mock\controller();
  108. $testController->getTestedClassName = uniqid();
  109. $testController->getScore = $score;
  110. $test = new \mock\mageekguy\atoum\test(null, null, $adapter, $testController);
  111. $field = new test\duration\cli();
  112. $score->getMockController()->getTotalDuration = $runningDuration = rand(1, 1000) / 1000;
  113. $this->assert
  114. ->castToString($field)->isEqualTo('Test duration: unknown.' . PHP_EOL)
  115. ->castToString($field->setWithTest($test))->isEqualTo('Test duration: unknown.' . PHP_EOL)
  116. ->castToString($field->setWithTest($test, atoum\test::runStart))->isEqualTo('Test duration: unknown.' . PHP_EOL)
  117. ->castToString($field->setWithTest($test, atoum\test::runStop))->isEqualTo(sprintf('Test duration: %4.2f second.', $runningDuration) . PHP_EOL)
  118. ;
  119. $field = new test\duration\cli($prompt = new prompt(), $titleColorizer = new colorizer(), $durationColorizer = new colorizer(), $locale = new locale());
  120. $this->assert
  121. ->castToString($field)->isEqualTo(
  122. $prompt .
  123. sprintf(
  124. '%1$s: %2$s.',
  125. $titleColorizer->colorize($locale->_('Test duration')),
  126. $locale->_('unknown')
  127. ) .
  128. PHP_EOL
  129. )
  130. ->castToString($field->setWithTest($test))->isEqualTo(
  131. $prompt .
  132. sprintf(
  133. '%1$s: %2$s.',
  134. $titleColorizer->colorize($locale->_('Test duration')),
  135. $durationColorizer->colorize($locale->_('unknown'))
  136. ) .
  137. PHP_EOL
  138. )
  139. ->castToString($field->setWithTest($test, atoum\test::runStart))->isEqualTo(
  140. $prompt .
  141. sprintf(
  142. '%1$s: %2$s.',
  143. $titleColorizer->colorize($locale->_('Test duration')),
  144. $durationColorizer->colorize($locale->_('unknown'))
  145. ) .
  146. PHP_EOL
  147. )
  148. ->castToString($field->setWithTest($test, atoum\test::runStop))->isEqualTo(
  149. $prompt .
  150. sprintf(
  151. '%1$s: %2$s.',
  152. $titleColorizer->colorize($locale->_('Test duration')),
  153. $durationColorizer->colorize(sprintf($locale->__('%4.2f second', '%4.2f seconds', $runningDuration), $runningDuration))
  154. ) .
  155. PHP_EOL
  156. )
  157. ;
  158. $score->getMockController()->getTotalDuration = $runningDuration = rand(2, PHP_INT_MAX);
  159. $field = new test\duration\cli();
  160. $this->assert
  161. ->castToString($field)->isEqualTo('Test duration: unknown.' . PHP_EOL)
  162. ->castToString($field->setWithTest($test))->isEqualTo('Test duration: unknown.' . PHP_EOL)
  163. ->castToString($field->setWithTest($test, atoum\test::runStart))->isEqualTo('Test duration: unknown.' . PHP_EOL)
  164. ->castToString($field->setWithTest($test, atoum\test::runStop))->isEqualTo(sprintf('Test duration: %4.2f seconds.', $runningDuration) . PHP_EOL)
  165. ;
  166. $field = new test\duration\cli($prompt = new prompt(uniqid()), $titleColorizer = new colorizer(uniqid(), uniqid()), $durationColorizer = new colorizer(uniqid(), uniqid()), $locale = new locale());
  167. $this->assert
  168. ->castToString($field)->isEqualTo(
  169. $prompt .
  170. sprintf(
  171. $locale->_('%1$s: %2$s.'),
  172. $titleColorizer->colorize($locale->_('Test duration')),
  173. $durationColorizer->colorize($locale->_('unknown'))
  174. ) .
  175. PHP_EOL
  176. )
  177. ->castToString($field->setWithTest($test))->isEqualTo(
  178. $prompt .
  179. sprintf(
  180. $locale->_('%1$s: %2$s.'),
  181. $titleColorizer->colorize($locale->_('Test duration')),
  182. $durationColorizer->colorize($locale->_('unknown'))
  183. ) .
  184. PHP_EOL
  185. )
  186. ->castToString($field->setWithTest($test, atoum\test::runStart))->isEqualTo(
  187. $prompt .
  188. sprintf(
  189. $locale->_('%1$s: %2$s.'),
  190. $titleColorizer->colorize($locale->_('Test duration')),
  191. $durationColorizer->colorize($locale->_('unknown'))
  192. ) .
  193. PHP_EOL
  194. )
  195. ->castToString($field->setWithTest($test, atoum\test::runStop))->isEqualTo(
  196. $prompt .
  197. sprintf(
  198. $locale->_('%1$s: %2$s.'),
  199. $titleColorizer->colorize($locale->_('Test duration')),
  200. $durationColorizer->colorize(sprintf($locale->__('%4.2f second', '%4.2f seconds', $runningDuration), $runningDuration))
  201. ) .
  202. PHP_EOL
  203. )
  204. ;
  205. }
  206. }
  207. ?>