PageRenderTime 38ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

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

http://github.com/mageekguy/atoum
PHP | 207 lines | 196 code | 11 blank | 0 comment | 0 complexity | d9d908e1ee90c201df979bbcbb5e5755 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 phing extends atoum\test
  15. {
  16. public function testClass()
  17. {
  18. $this->testedClass->extends('mageekguy\atoum\report\fields\test\duration\cli');
  19. }
  20. public function test__construct()
  21. {
  22. $this
  23. ->if($field = new test\duration\phing())
  24. ->then
  25. ->object($field->getPrompt())->isEqualTo(new prompt())
  26. ->object($field->getTitleColorizer())->isEqualTo(new colorizer())
  27. ->object($field->getDurationColorizer())->isEqualTo(new colorizer())
  28. ->object($field->getLocale())->isEqualTo(new locale())
  29. ->variable($field->getValue())->isNull()
  30. ->array($field->getEvents())->isEqualTo(array(atoum\test::runStop))
  31. ;
  32. }
  33. public function testSetPrompt()
  34. {
  35. $this
  36. ->if($field = new test\duration\phing())
  37. ->then
  38. ->object($field->setPrompt($prompt = new prompt()))->isIdenticalTo($field)
  39. ->object($field->getPrompt())->isIdenticalTo($prompt)
  40. ->object($field->setPrompt())->isIdenticalTo($field)
  41. ->object($field->getPrompt())
  42. ->isNotIdenticalTo($prompt)
  43. ->isEqualTo(new prompt())
  44. ;
  45. }
  46. public function testSetTitleColorizer()
  47. {
  48. $this
  49. ->if($field = new test\duration\phing())
  50. ->then
  51. ->object($field->setTitleColorizer($colorizer = new colorizer()))->isIdenticalTo($field)
  52. ->object($field->getTitleColorizer())->isIdenticalTo($colorizer)
  53. ->object($field->setTitleColorizer())->isIdenticalTo($field)
  54. ->object($field->getTitleColorizer())
  55. ->isNotIdenticalTo($colorizer)
  56. ->isEqualTo(new colorizer())
  57. ;
  58. }
  59. public function testSetDurationColorizer()
  60. {
  61. $this
  62. ->if($field = new test\duration\phing())
  63. ->then
  64. ->object($field->setDurationColorizer($colorizer = new colorizer()))->isIdenticalTo($field)
  65. ->object($field->getDurationColorizer())->isIdenticalTo($colorizer)
  66. ->object($field->setDurationColorizer())->isIdenticalTo($field)
  67. ->object($field->getDurationColorizer())
  68. ->isNotIdenticalTo($colorizer)
  69. ->isEqualTo(new colorizer())
  70. ;
  71. }
  72. public function testSetLocale()
  73. {
  74. $this
  75. ->if($field = new test\duration\phing())
  76. ->then
  77. ->object($field->setLocale($locale = new atoum\locale()))->isIdenticalTo($field)
  78. ->object($field->getLocale())->isIdenticalTo($locale)
  79. ->object($field->setLocale())->isIdenticalTo($field)
  80. ->object($field->getLocale())
  81. ->isNotIdenticalTo($locale)
  82. ->isEqualTo(new atoum\locale())
  83. ;
  84. }
  85. public function testHandleEvent()
  86. {
  87. $this
  88. ->if($field = new test\duration\phing())
  89. ->and($score = new \mock\mageekguy\atoum\score())
  90. ->and($score->getMockController()->getTotalDuration = function() use (& $runningDuration) { return $runningDuration = rand(0, PHP_INT_MAX); })
  91. ->and($adapter = new adapter())
  92. ->and($adapter->class_exists = true)
  93. ->and($testController = new mock\controller())
  94. ->and($testController->getTestedClassName = uniqid())
  95. ->and($testController->getScore = $score)
  96. ->and($test = new \mock\mageekguy\atoum\test($adapter))
  97. ->then
  98. ->boolean($field->handleEvent(atoum\runner::runStop, $test))->isFalse()
  99. ->variable($field->getValue())->isNull()
  100. ->boolean($field->handleEvent(atoum\test::runStop, $test))->isTrue()
  101. ->integer($field->getValue())->isEqualTo($runningDuration)
  102. ;
  103. }
  104. public function test__toString()
  105. {
  106. $this
  107. ->if($adapter = new adapter())
  108. ->and($adapter->class_exists = true)
  109. ->and($score = new \mock\mageekguy\atoum\score())
  110. ->and($score->getMockController()->getTotalDuration = $runningDuration = rand(1, 1000) / 1000)
  111. ->and($testController = new mock\controller())
  112. ->and($testController->getTestedClassName = uniqid())
  113. ->and($testController->getScore = $score)
  114. ->and($test = new \mock\mageekguy\atoum\test($adapter))
  115. ->and($defaultField = new test\duration\phing())
  116. ->and($customField = new test\duration\phing())
  117. ->and($customField->setPrompt($prompt = new prompt()))
  118. ->and($customField->setTitleColorizer($titleColorizer = new colorizer()))
  119. ->and($customField->setDurationColorizer($durationColorizer = new colorizer()))
  120. ->and($customField->setLocale($locale = new locale()))
  121. ->then
  122. ->castToString($defaultField)->isEqualTo('unknown')
  123. ->castToString($customField)->isEqualTo(
  124. $prompt .
  125. sprintf(
  126. '%s',
  127. $locale->_('unknown')
  128. )
  129. )
  130. ->if($defaultField->handleEvent(atoum\runner::runStop, $test))
  131. ->then
  132. ->castToString($defaultField)->isEqualTo('unknown')
  133. ->if($customField->handleEvent(atoum\runner::runStop, $test))
  134. ->then
  135. ->castToString($customField)->isEqualTo(
  136. $prompt .
  137. sprintf(
  138. '%s',
  139. $locale->_('unknown')
  140. )
  141. )
  142. ->if($defaultField->handleEvent(atoum\test::runStop, $test))
  143. ->then
  144. ->castToString($defaultField)->isEqualTo(sprintf('%4.2f s', $runningDuration))
  145. ->if($customField->handleEvent(atoum\test::runStop, $test))
  146. ->then
  147. ->castToString($customField)->isEqualTo(
  148. $prompt .
  149. sprintf(
  150. '%s',
  151. $durationColorizer->colorize(sprintf($locale->__('%4.2f s', '%4.2f s', $runningDuration), $runningDuration))
  152. )
  153. )
  154. ->if($score->getMockController()->getTotalDuration = $runningDuration = rand(2, PHP_INT_MAX))
  155. ->and($defaultField = new test\duration\phing())
  156. ->and($customField = new test\duration\phing())
  157. ->and($customField->setPrompt($prompt = new prompt()))
  158. ->and($customField->setTitleColorizer($titleColorizer = new colorizer()))
  159. ->and($customField->setDurationColorizer($durationColorizer = new colorizer()))
  160. ->and($customField->setLocale($locale = new locale()))
  161. ->then
  162. ->castToString($defaultField)->isEqualTo('unknown')
  163. ->castToString($customField)->isEqualTo(
  164. $prompt .
  165. sprintf(
  166. '%s',
  167. $locale->_('unknown')
  168. )
  169. )
  170. ->if($defaultField->handleEvent(atoum\runner::runStop, $test))
  171. ->then
  172. ->castToString($defaultField)->isEqualTo('unknown')
  173. ->if($customField->handleEvent(atoum\runner::runStop, $test))
  174. ->then
  175. ->castToString($customField)->isEqualTo(
  176. $prompt .
  177. sprintf(
  178. '%s',
  179. $locale->_('unknown')
  180. )
  181. )
  182. ->if($defaultField->handleEvent(atoum\test::runStop, $test))
  183. ->then
  184. ->castToString($defaultField)->isEqualTo(sprintf('%4.2f s', $runningDuration))
  185. ->if($customField->handleEvent(atoum\test::runStop, $test))
  186. ->then
  187. ->castToString($customField)->isEqualTo(
  188. $prompt .
  189. sprintf(
  190. '%s',
  191. $durationColorizer->colorize(sprintf($locale->__('%4.2f s', '%4.2f s', $runningDuration), $runningDuration))
  192. )
  193. )
  194. ;
  195. }
  196. }