PageRenderTime 51ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

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

http://github.com/mageekguy/atoum
PHP | 296 lines | 283 code | 13 blank | 0 comment | 0 complexity | 80f882271162ddd003a1e770e43d9c12 MD5 | raw file
  1. <?php
  2. namespace mageekguy\atoum\tests\units\report\fields\runner\outputs;
  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\outputs
  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\outputs');
  17. }
  18. public function test__construct()
  19. {
  20. $this
  21. ->if($field = new outputs\cli())
  22. ->then
  23. ->object($field->getTitlePrompt())->isEqualTo(new prompt())
  24. ->object($field->getTitleColorizer())->isEqualTo(new colorizer())
  25. ->object($field->getMethodPrompt())->isEqualTo(new prompt())
  26. ->object($field->getMethodColorizer())->isEqualTo(new colorizer())
  27. ->object($field->getOutputPrompt())->isEqualTo(new prompt())
  28. ->object($field->getOutputColorizer())->isEqualTo(new colorizer())
  29. ->object($field->getLocale())->isEqualTo(new locale())
  30. ->variable($field->getRunner())->isNull()
  31. ->array($field->getEvents())->isEqualTo(array(atoum\runner::runStop))
  32. ;
  33. }
  34. public function testSetTitlePrompt()
  35. {
  36. $this
  37. ->if($field = new outputs\cli())
  38. ->then
  39. ->object($field->setTitlePrompt($prompt = new prompt()))->isIdenticalTo($field)
  40. ->object($field->getTitlePrompt())->isIdenticalTo($prompt)
  41. ->object($field->setTitlePrompt())->isIdenticalTo($field)
  42. ->object($field->getTitlePrompt())
  43. ->isNotIdenticalTo($prompt)
  44. ->isEqualTo(new prompt())
  45. ;
  46. }
  47. public function testSetTitleColorizer()
  48. {
  49. $this
  50. ->if($field = new outputs\cli())
  51. ->then
  52. ->object($field->setTitleColorizer($colorizer = new colorizer()))->isIdenticalTo($field)
  53. ->object($field->getTitleColorizer())->isIdenticalTo($colorizer)
  54. ->object($field->setTitleColorizer())->isIdenticalTo($field)
  55. ->object($field->getTitleColorizer())
  56. ->isNotIdenticalTo($colorizer)
  57. ->isEqualTo(new colorizer())
  58. ;
  59. }
  60. public function testSetMethodPrompt()
  61. {
  62. $this
  63. ->if($field = new outputs\cli())
  64. ->then
  65. ->object($field->setMethodPrompt($prompt = new prompt()))->isIdenticalTo($field)
  66. ->object($field->getMethodPrompt())->isIdenticalTo($prompt)
  67. ->object($field->setMethodPrompt())->isIdenticalTo($field)
  68. ->object($field->getMethodPrompt())
  69. ->isNotIdenticalTo($prompt)
  70. ->isEqualTo(new prompt())
  71. ;
  72. }
  73. public function testSetMethodColorizer()
  74. {
  75. $this
  76. ->if($field = new outputs\cli())
  77. ->then
  78. ->object($field->setMethodColorizer($colorizer = new colorizer()))->isIdenticalTo($field)
  79. ->object($field->getMethodColorizer())->isIdenticalTo($colorizer)
  80. ->object($field->setMethodColorizer())->isIdenticalTo($field)
  81. ->object($field->getMethodColorizer())
  82. ->isNotIdenticalTo($colorizer)
  83. ->isEqualTo(new colorizer())
  84. ;
  85. }
  86. public function testSetOutputPrompt()
  87. {
  88. $this
  89. ->if($field = new outputs\cli())
  90. ->then
  91. ->object($field->setOutputPrompt($prompt = new prompt()))->isIdenticalTo($field)
  92. ->object($field->getOutputPrompt())->isIdenticalTo($prompt)
  93. ->object($field->setOutputPrompt())->isIdenticalTo($field)
  94. ->object($field->getOutputPrompt())
  95. ->isNotIdenticalTo($prompt)
  96. ->isEqualTo(new prompt())
  97. ;
  98. }
  99. public function testSetOutputColorizer()
  100. {
  101. $this
  102. ->if($field = new outputs\cli())
  103. ->then
  104. ->object($field->setOutputColorizer($colorizer = new colorizer()))->isIdenticalTo($field)
  105. ->object($field->getOutputColorizer())->isIdenticalTo($colorizer)
  106. ->object($field->setOutputColorizer())->isIdenticalTo($field)
  107. ->object($field->getOutputColorizer())
  108. ->isNotIdenticalTo($colorizer)
  109. ->isEqualTo(new colorizer())
  110. ;
  111. }
  112. public function testHandleEvent()
  113. {
  114. $this
  115. ->if($field = new outputs\cli())
  116. ->and($runner = new atoum\runner())
  117. ->then
  118. ->boolean($field->handleEvent(atoum\runner::runStart, $runner))->isFalse()
  119. ->variable($field->getRunner())->isNull()
  120. ->boolean($field->handleEvent(atoum\runner::runStop, $runner))->isTrue()
  121. ->object($field->getRunner())->isIdenticalTo($runner)
  122. ;
  123. }
  124. public function test__toString()
  125. {
  126. $this
  127. ->if($score = new \mock\mageekguy\atoum\runner\score())
  128. ->and($score->getMockController()->getOutputs = array())
  129. ->and($runner = new atoum\runner())
  130. ->and($runner->setScore($score))
  131. ->and($defaultField = new outputs\cli())
  132. ->and($customField = new outputs\cli())
  133. ->and($customField->setTitlePrompt($titlePrompt = new prompt(uniqid())))
  134. ->and($customField->setTitleColorizer($titleColorizer = new colorizer(uniqid(), uniqid())))
  135. ->and($customField->setMethodPrompt($methodPrompt = new prompt(uniqid())))
  136. ->and($customField->setMethodColorizer($methodColorizer = new colorizer(uniqid(), uniqid())))
  137. ->and($customField->setOutputPrompt($outputPrompt = new prompt(uniqid())))
  138. ->and($customField->setOutputColorizer($outputColorizer = new colorizer(uniqid(), uniqid())))
  139. ->and($customField->setLocale($locale = new locale()))
  140. ->then
  141. ->castToString($defaultField)->isEmpty()
  142. ->castToString($customField)->isEmpty()
  143. ->if($defaultField->handleEvent(atoum\runner::runStart, $runner))
  144. ->and($customField->handleEvent(atoum\runner::runStart, $runner))
  145. ->then
  146. ->castToString($defaultField)->isEmpty()
  147. ->castToString($customField)->isEmpty()
  148. ->if($defaultField->handleEvent(atoum\runner::runStop, $runner))
  149. ->and($customField->handleEvent(atoum\runner::runStop, $runner))
  150. ->then
  151. ->castToString($defaultField)->isEmpty()
  152. ->castToString($customField)->isEmpty()
  153. ->if($score->getMockController()->getOutputs = $fields = array(
  154. array(
  155. 'class' => $class = uniqid(),
  156. 'method' => $method = uniqid(),
  157. 'value' => $value = uniqid()
  158. ),
  159. array(
  160. 'class' => $otherClass = uniqid(),
  161. 'method' => $otherMethod = uniqid(),
  162. 'value' => ($firstOtherValue = uniqid()) . PHP_EOL . ($secondOtherValue = uniqid())
  163. )
  164. )
  165. )
  166. ->and($defaultField = new outputs\cli())
  167. ->and($customField = new outputs\cli())
  168. ->and($customField->setTitlePrompt($titlePrompt = new prompt(uniqid())))
  169. ->and($customField->setTitleColorizer($titleColorizer = new colorizer(uniqid(), uniqid())))
  170. ->and($customField->setMethodPrompt($methodPrompt = new prompt(uniqid())))
  171. ->and($customField->setMethodColorizer($methodColorizer = new colorizer(uniqid(), uniqid())))
  172. ->and($customField->setOutputPrompt($outputPrompt = new prompt(uniqid())))
  173. ->and($customField->setOutputColorizer($outputColorizer = new colorizer(uniqid(), uniqid())))
  174. ->and($customField->setLocale($locale = new locale()))
  175. ->then
  176. ->castToString($defaultField)->isEmpty()
  177. ->castToString($customField)->isEmpty()
  178. ->if($defaultField->handleEvent(atoum\runner::runStart, $runner))
  179. ->and($customField->handleEvent(atoum\runner::runStart, $runner))
  180. ->then
  181. ->castToString($defaultField)->isEmpty()
  182. ->castToString($customField)->isEmpty()
  183. ->if($defaultField->handleEvent(atoum\runner::runStop, $runner))
  184. ->and($customField->handleEvent(atoum\runner::runStop, $runner))
  185. ->then
  186. ->castToString($defaultField)->isEqualTo(sprintf('There are %d outputs:', sizeof($fields)) . PHP_EOL .
  187. 'In ' . $class . '::' . $method . '():' . PHP_EOL .
  188. $value . PHP_EOL .
  189. 'In ' . $otherClass . '::' . $otherMethod . '():' . PHP_EOL .
  190. $firstOtherValue . PHP_EOL .
  191. $secondOtherValue . PHP_EOL
  192. )
  193. ->castToString($customField)->isEqualTo(
  194. $titlePrompt .
  195. sprintf(
  196. $locale->_('%s:'),
  197. $titleColorizer->colorize(sprintf($locale->__('There is %d output', 'There are %d outputs', sizeof($fields)), sizeof($fields)))
  198. ) .
  199. PHP_EOL .
  200. $methodPrompt .
  201. sprintf(
  202. $locale->_('%s:'),
  203. $methodColorizer->colorize('In ' . $class . '::' . $method . '()')
  204. ) .
  205. PHP_EOL .
  206. $outputPrompt .
  207. $outputColorizer->colorize($value) . PHP_EOL .
  208. $methodPrompt .
  209. sprintf(
  210. $locale->_('%s:'),
  211. $methodColorizer->colorize('In ' . $otherClass . '::' . $otherMethod . '()')
  212. ) .
  213. PHP_EOL .
  214. $outputPrompt . $outputColorizer->colorize($firstOtherValue) . PHP_EOL .
  215. $outputPrompt . $outputColorizer->colorize($secondOtherValue) . PHP_EOL
  216. )
  217. ->if($score->getMockController()->getOutputs = $fields = array(
  218. array(
  219. 'class' => $class = uniqid(),
  220. 'method' => $method = uniqid(),
  221. 'value' => $value = uniqid()
  222. ),
  223. array(
  224. 'class' => $otherClass = uniqid(),
  225. 'method' => $otherMethod = uniqid(),
  226. 'value' => ($firstOtherValue = uniqid()) . PHP_EOL . ($secondOtherValue = uniqid())
  227. )
  228. )
  229. )
  230. ->and($defaultField = new outputs\cli())
  231. ->and($customField = new outputs\cli())
  232. ->and($customField->setTitlePrompt($titlePrompt = new prompt(uniqid())))
  233. ->and($customField->setTitleColorizer($titleColorizer = new colorizer(uniqid(), uniqid())))
  234. ->and($customField->setMethodPrompt($methodPrompt = new prompt(uniqid())))
  235. ->and($customField->setMethodColorizer($methodColorizer = new colorizer(uniqid(), uniqid())))
  236. ->and($customField->setOutputPrompt($outputPrompt = new prompt(uniqid())))
  237. ->and($customField->setOutputColorizer($outputColorizer = new colorizer(uniqid(), uniqid())))
  238. ->and($customField->setLocale($locale = new locale()))
  239. ->then
  240. ->castToString($defaultField)->isEmpty()
  241. ->castToString($customField)->isEmpty()
  242. ->if($defaultField->handleEvent(atoum\runner::runStart, $runner))
  243. ->and($customField->handleEvent(atoum\runner::runStart, $runner))
  244. ->then
  245. ->castToString($defaultField)->isEmpty()
  246. ->castToString($customField)->isEmpty()
  247. ->if($defaultField->handleEvent(atoum\runner::runStop, $runner))
  248. ->and($customField->handleEvent(atoum\runner::runStop, $runner))
  249. ->castToString($defaultField)->isEqualTo(sprintf('There are %d outputs:', sizeof($fields)) . PHP_EOL .
  250. 'In ' . $class . '::' . $method . '():' . PHP_EOL .
  251. $value . PHP_EOL .
  252. 'In ' . $otherClass . '::' . $otherMethod . '():' . PHP_EOL .
  253. $firstOtherValue . PHP_EOL .
  254. $secondOtherValue . PHP_EOL
  255. )
  256. ->then
  257. ->castToString($customField)->isEqualTo(
  258. $titlePrompt .
  259. sprintf(
  260. $locale->_('%s:'),
  261. $titleColorizer->colorize(sprintf($locale->__('There is %d output', 'There are %d outputs', sizeof($fields)), sizeof($fields)))
  262. ) .
  263. PHP_EOL .
  264. $methodPrompt .
  265. sprintf(
  266. $locale->_('%s:'),
  267. $methodColorizer->colorize('In ' . $class . '::' . $method . '()')
  268. ) .
  269. PHP_EOL .
  270. $outputPrompt .
  271. $outputColorizer->colorize($value) . PHP_EOL .
  272. $methodPrompt .
  273. sprintf(
  274. $locale->_('%s:'),
  275. $methodColorizer->colorize('In ' . $otherClass . '::' . $otherMethod . '()')
  276. ) .
  277. PHP_EOL .
  278. $outputPrompt . $outputColorizer->colorize($firstOtherValue) . PHP_EOL .
  279. $outputPrompt . $outputColorizer->colorize($secondOtherValue) . PHP_EOL
  280. )
  281. ;
  282. }
  283. }