PageRenderTime 52ms CodeModel.GetById 24ms RepoModel.GetById 1ms app.codeStats 0ms

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

http://github.com/mageekguy/atoum
PHP | 181 lines | 170 code | 11 blank | 0 comment | 0 complexity | bb526dc422b27375fe6a8245c4a6ff0a MD5 | raw file
  1. <?php
  2. namespace mageekguy\atoum\tests\units\report\fields\runner\tests\duration;
  3. use
  4. mageekguy\atoum,
  5. mageekguy\atoum\locale,
  6. mageekguy\atoum\cli\prompt,
  7. mageekguy\atoum\cli\colorizer,
  8. mageekguy\atoum\tests\units,
  9. mageekguy\atoum\report\fields\runner\tests
  10. ;
  11. require_once __DIR__ . '/../../../../../../runner.php';
  12. class cli extends atoum\test
  13. {
  14. public function testClass()
  15. {
  16. $this->testedClass->extends('mageekguy\atoum\report\fields\runner\tests\duration');
  17. }
  18. public function test__construct()
  19. {
  20. $this
  21. ->if($field = new tests\duration\cli())
  22. ->then
  23. ->object($field->getPrompt())->isEqualTo(new prompt())
  24. ->object($field->getTitleColorizer())->isEqualTo(new colorizer())
  25. ->object($field->getDurationColorizer())->isEqualTo(new colorizer())
  26. ->object($field->getLocale())->isEqualTo(new locale())
  27. ->variable($field->getValue())->isNull()
  28. ->variable($field->getTestNumber())->isNull()
  29. ->array($field->getEvents())->isEqualTo(array(atoum\runner::runStop))
  30. ;
  31. }
  32. public function testSetPrompt()
  33. {
  34. $this
  35. ->if($field = new tests\duration\cli())
  36. ->then
  37. ->object($field->setPrompt($prompt = new prompt()))->isIdenticalTo($field)
  38. ->object($field->getPrompt())->isIdenticalTo($prompt)
  39. ->object($field->setPrompt())->isIdenticalTo($field)
  40. ->object($field->getPrompt())
  41. ->isNotIdenticalTo($prompt)
  42. ->isEqualTo(new prompt())
  43. ;
  44. }
  45. public function testSetTitleColorizer()
  46. {
  47. $this
  48. ->if($field = new tests\duration\cli())
  49. ->then
  50. ->object($field->setTitleColorizer($colorizer = new colorizer()))->isIdenticalTo($field)
  51. ->object($field->getTitleColorizer())->isIdenticalTo($colorizer)
  52. ->object($field->setTitleColorizer())->isIdenticalTo($field)
  53. ->object($field->getTitleColorizer())
  54. ->isNotIdenticalTo($colorizer)
  55. ->isEqualTo(new colorizer())
  56. ;
  57. }
  58. public function testSetDurationColorizer()
  59. {
  60. $this
  61. ->if($field = new tests\duration\cli())
  62. ->then
  63. ->object($field->setDurationColorizer($colorizer = new colorizer()))->isIdenticalTo($field)
  64. ->object($field->getDurationColorizer())->isIdenticalTo($colorizer)
  65. ->object($field->setDurationColorizer())->isIdenticalTo($field)
  66. ->object($field->getDurationColorizer())
  67. ->isNotIdenticalTo($colorizer)
  68. ->isEqualTo(new colorizer())
  69. ;
  70. }
  71. public function testSetLocale()
  72. {
  73. $this
  74. ->if($field = new tests\duration\cli())
  75. ->then
  76. ->object($field->setLocale($locale = new atoum\locale()))->isIdenticalTo($field)
  77. ->object($field->getLocale())->isIdenticalTo($locale)
  78. ->object($field->setLocale())->isIdenticalTo($field)
  79. ->object($field->getLocale())
  80. ->isNotIdenticalTo($locale)
  81. ->isEqualTo(new atoum\locale())
  82. ;
  83. }
  84. public function testHandleEvent()
  85. {
  86. $this
  87. ->if($field = new tests\duration\cli())
  88. ->then
  89. ->boolean($field->handleEvent(atoum\runner::runStart, new atoum\runner()))->isFalse()
  90. ->variable($field->getValue())->isNull()
  91. ->variable($field->getTestNumber())->isNull()
  92. ->if($score = new \mock\mageekguy\atoum\runner\score())
  93. ->and($score->getMockController()->getTotalDuration = $totalDuration = (float) rand(1, PHP_INT_MAX))
  94. ->and($runner = new \mock\mageekguy\atoum\runner())
  95. ->and($runner->setScore($score))
  96. ->and($runner->getMockController()->getTestNumber = $testsNumber = rand(1, PHP_INT_MAX))
  97. ->then
  98. ->boolean($field->handleEvent(atoum\runner::runStop, $runner))->isTrue()
  99. ->float($field->getValue())->isEqualTo($totalDuration)
  100. ->integer($field->getTestNumber())->isEqualTo($testsNumber)
  101. ;
  102. }
  103. public function test__toString()
  104. {
  105. $this
  106. ->if($score = new \mock\mageekguy\atoum\runner\score())
  107. ->and($score->getMockController()->getTotalDuration = $totalDuration = (rand(1, 100) / 1000))
  108. ->and($runner = new \mock\mageekguy\atoum\runner())
  109. ->and($runner->setScore($score))
  110. ->and($runner->getMockController()->getTestNumber = $testNumber = 1)
  111. ->and($defaultField = new tests\duration\cli())
  112. ->and($customField = new tests\duration\cli())
  113. ->and($customField->setPrompt($prompt = new prompt(uniqid())))
  114. ->and($customField->setTitleColorizer($titleColorizer = new colorizer(uniqid(), uniqid())))
  115. ->and($customField->setDurationColorizer($durationColorizer = new colorizer(uniqid(), uniqid())))
  116. ->and($customField->setLocale($locale = new locale()))
  117. ->then
  118. ->castToString($defaultField)->isEqualTo($defaultField->getPrompt() . $defaultField->getLocale()->_('Total test duration: unknown.') . PHP_EOL)
  119. ->castToString($customField)->isEqualTo($prompt . sprintf('%s: %s.', $titleColorizer->colorize($locale->_('Total test duration')), $durationColorizer->colorize($locale->_('unknown'))) . PHP_EOL)
  120. ->if($defaultField->handleEvent(atoum\runner::runStart, new atoum\runner()))
  121. ->and($customField->handleEvent(atoum\runner::runStart, new atoum\runner()))
  122. ->then
  123. ->castToString($defaultField)->isEqualTo($defaultField->getPrompt() . $defaultField->getLocale()->_('Total test duration: unknown.') . PHP_EOL)
  124. ->castToString($customField)->isEqualTo($prompt . sprintf('%s: %s.', $titleColorizer->colorize($locale->_('Total test duration')), $durationColorizer->colorize($locale->_('unknown'))) . PHP_EOL)
  125. ->if($defaultField->handleEvent(atoum\runner::runStop, $runner))
  126. ->and($customField->handleEvent(atoum\runner::runStop, $runner))
  127. ->then
  128. ->castToString($defaultField)->isEqualTo(
  129. $defaultField->getPrompt() . sprintf($defaultField->getLocale()->__('Total test duration: %s.', 'Total tests duration: %s.', $testNumber), sprintf($defaultField->getLocale()->__('%4.2f second', '%4.2f seconds', $totalDuration), $totalDuration)) . PHP_EOL
  130. )
  131. ->castToString($customField)->isEqualTo($prompt .
  132. sprintf(
  133. '%s: %s.',
  134. $titleColorizer->colorize($locale->__('Total test duration', 'Total tests duration', $testNumber)),
  135. $durationColorizer->colorize(sprintf($locale->__('%4.2f second', '%4.2f seconds', $totalDuration), $totalDuration))
  136. ) .
  137. PHP_EOL
  138. )
  139. ->if($runner->getMockController()->getTestNumber = $testNumber = rand(2, PHP_INT_MAX))
  140. ->and($defaultField = new tests\duration\cli())
  141. ->and($customField = new tests\duration\cli())
  142. ->and($customField->setPrompt($prompt = new prompt(uniqid())))
  143. ->and($customField->setTitleColorizer($titleColorizer = new colorizer(uniqid(), uniqid())))
  144. ->and($customField->setDurationColorizer($durationColorizer = new colorizer(uniqid(), uniqid())))
  145. ->and($customField->setLocale($locale = new locale()))
  146. ->then
  147. ->castToString($defaultField)->isEqualTo($defaultField->getPrompt() . $defaultField->getLocale()->_('Total test duration: unknown.') . PHP_EOL)
  148. ->castToString($customField)->isEqualTo($prompt . sprintf('%s: %s.', $titleColorizer->colorize($locale->_('Total test duration')), $durationColorizer->colorize($locale->_('unknown'))) . PHP_EOL)
  149. ->if($defaultField->handleEvent(atoum\runner::runStart, new atoum\runner()))
  150. ->and($customField->handleEvent(atoum\runner::runStart, new atoum\runner()))
  151. ->then
  152. ->castToString($defaultField)->isEqualTo($defaultField->getPrompt() . $defaultField->getLocale()->_('Total test duration: unknown.') . PHP_EOL)
  153. ->castToString($customField)->isEqualTo($prompt . sprintf('%s: %s.', $titleColorizer->colorize($locale->_('Total test duration')), $durationColorizer->colorize($locale->_('unknown'))) . PHP_EOL)
  154. ->if($defaultField->handleEvent(atoum\runner::runStop, $runner))
  155. ->and($customField->handleEvent(atoum\runner::runStop, $runner))
  156. ->then
  157. ->castToString($defaultField)->isEqualTo(
  158. $defaultField->getPrompt() . sprintf($defaultField->getLocale()->__('Total test duration: %s.', 'Total tests duration: %s.', $testNumber), sprintf($defaultField->getLocale()->__('%4.2f second', '%4.2f seconds', $totalDuration), $totalDuration)) . PHP_EOL
  159. )
  160. ->castToString($customField)->isEqualTo($prompt .
  161. sprintf(
  162. '%s: %s.',
  163. $titleColorizer->colorize($locale->__('Total test duration', 'Total tests duration', $testNumber)),
  164. $durationColorizer->colorize(sprintf($locale->__('%4.2f second', '%4.2f seconds', $totalDuration), $totalDuration))
  165. ) .
  166. PHP_EOL
  167. )
  168. ;
  169. }
  170. }