PageRenderTime 48ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

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

http://github.com/mageekguy/atoum
PHP | 182 lines | 170 code | 12 blank | 0 comment | 0 complexity | cc85fd2f0ad855446ff41687fd0d240b MD5 | raw file
  1. <?php
  2. namespace mageekguy\atoum\tests\units\report\fields\runner\php\version;
  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,
  10. mageekguy\atoum\mock\mageekguy\atoum as mock
  11. ;
  12. require_once __DIR__ . '/../../../../../../runner.php';
  13. class cli extends atoum\test
  14. {
  15. public function testClass()
  16. {
  17. $this->testedClass->extends('mageekguy\atoum\report\fields\runner\php\version');
  18. }
  19. public function test__construct()
  20. {
  21. $this
  22. ->if($field = new runner\php\version\cli())
  23. ->then
  24. ->object($field->getTitlePrompt())->isEqualTo(new prompt())
  25. ->object($field->getTitleColorizer())->isEqualTo(new colorizer())
  26. ->object($field->getVersionPrompt())->isEqualTo(new prompt())
  27. ->object($field->getVersionColorizer())->isEqualTo(new colorizer())
  28. ->object($field->getLocale())->isEqualTo(new locale())
  29. ->array($field->getEvents())->isEqualTo(array(atoum\runner::runStart))
  30. ;
  31. }
  32. public function testSetTitlePrompt()
  33. {
  34. $this
  35. ->if($field = new runner\php\version\cli())
  36. ->then
  37. ->object($field->setTitlePrompt($prompt = new prompt()))->isIdenticalTo($field)
  38. ->object($field->getTitlePrompt())->isIdenticalTo($prompt)
  39. ->object($field->setTitlePrompt())->isIdenticalTo($field)
  40. ->object($field->getTitlePrompt())
  41. ->isNotIdenticalTo($prompt)
  42. ->isEqualTo(new prompt())
  43. ;
  44. }
  45. public function testSetTitleColorizer()
  46. {
  47. $this
  48. ->if($field = new runner\php\version\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 testSetVersionPrompt()
  59. {
  60. $this
  61. ->if($field = new runner\php\version\cli())
  62. ->then
  63. ->object($field->setVersionPrompt($prompt = new prompt(uniqid())))->isIdenticalTo($field)
  64. ->object($field->getVersionPrompt())->isIdenticalTo($prompt)
  65. ->object($field->setVersionPrompt())->isIdenticalTo($field)
  66. ->object($field->getVersionPrompt())
  67. ->isNotIdenticalTo($prompt)
  68. ->isEqualTo(new prompt())
  69. ;
  70. }
  71. public function testSetVersionColorizer()
  72. {
  73. $this
  74. ->if($field = new runner\php\version\cli())
  75. ->then
  76. ->object($field->setVersionColorizer($colorizer = new colorizer()))->isIdenticalTo($field)
  77. ->object($field->getVersionColorizer())->isIdenticalTo($colorizer)
  78. ->object($field->setVersionColorizer())->isIdenticalTo($field)
  79. ->object($field->getVersionColorizer())
  80. ->isNotIdenticalTo($colorizer)
  81. ->isEqualTo(new colorizer())
  82. ;
  83. }
  84. public function testHandleEvent()
  85. {
  86. $this
  87. ->if($field = new runner\php\version\cli())
  88. ->and($score = new \mock\mageekguy\atoum\runner\score())
  89. ->and($score->getMockController()->getPhpVersion = $phpVersion = uniqid())
  90. ->and($runner = new atoum\runner())
  91. ->and($runner->setScore($score))
  92. ->then
  93. ->boolean($field->handleEvent(atoum\runner::runStop, $runner))->isFalse()
  94. ->variable($field->getVersion())->isNull()
  95. ->boolean($field->handleEvent(atoum\runner::runStart, $runner))->isTrue()
  96. ->string($field->getVersion())->isEqualTo($phpVersion)
  97. ;
  98. }
  99. public function test__toString()
  100. {
  101. $this
  102. ->if($score = new \mock\mageekguy\atoum\runner\score())
  103. ->and($score->getMockController()->getPhpVersion = $phpVersion = uniqid())
  104. ->and($runner = new atoum\runner())
  105. ->and($runner->setScore($score))
  106. ->and($defaultField = new runner\php\version\cli())
  107. ->and($defaultField->handleEvent(atoum\runner::runStart, $runner))
  108. ->then
  109. ->castToString($defaultField)->isEqualTo(
  110. $defaultField->getLocale()->_('PHP version:') .
  111. PHP_EOL .
  112. $phpVersion .
  113. PHP_EOL
  114. )
  115. ->if($customField = new runner\php\version\cli())
  116. ->and($customField->setTitlePrompt($titlePrompt = new prompt(uniqid())))
  117. ->and($customField->setTitleColorizer($titleColorizer = new colorizer(uniqid(), uniqid())))
  118. ->and($customField->setVersionPrompt($versionPrompt = new prompt(uniqid())))
  119. ->and($customField->setVersionColorizer($versionColorizer = new colorizer(uniqid(), uniqid())))
  120. ->and($customField->setLocale($locale = new locale()))
  121. ->and($customField->handleEvent(atoum\runner::runStart, $runner))
  122. ->then
  123. ->castToString($customField)->isEqualTo(
  124. $titlePrompt .
  125. sprintf(
  126. $locale->_('%s:'),
  127. $titleColorizer->colorize($locale->_('PHP version'))
  128. ) .
  129. PHP_EOL .
  130. $versionPrompt .
  131. $versionColorizer->colorize($phpVersion) .
  132. PHP_EOL
  133. )
  134. ->if($score->getMockController()->getPhpVersion = ($phpVersionLine1 = uniqid()) . PHP_EOL . ($phpVersionLine2 = uniqid()))
  135. ->and($defaultField = new runner\php\version\cli())
  136. ->and($defaultField->handleEvent(atoum\runner::runStart, $runner))
  137. ->then
  138. ->castToString($defaultField)->isEqualTo(
  139. 'PHP version:' .
  140. PHP_EOL .
  141. $phpVersionLine1 .
  142. PHP_EOL .
  143. $phpVersionLine2 .
  144. PHP_EOL
  145. )
  146. ->if($customField = new runner\php\version\cli())
  147. ->and($customField->setTitlePrompt($titlePrompt = new prompt(uniqid())))
  148. ->and($customField->setTitleColorizer($titleColorizer = new colorizer(uniqid(), uniqid())))
  149. ->and($customField->setVersionPrompt($versionPrompt = new prompt(uniqid())))
  150. ->and($customField->setVersionColorizer($versionColorizer = new colorizer(uniqid(), uniqid())))
  151. ->and($customField->setLocale($locale = new locale()))
  152. ->and($customField->handleEvent(atoum\runner::runStart, $runner))
  153. ->then
  154. ->castToString($customField)->isEqualTo(
  155. $titlePrompt .
  156. sprintf(
  157. $locale->_('%s:'),
  158. $titleColorizer->colorize($locale->_('PHP version'))
  159. ) .
  160. PHP_EOL .
  161. $versionPrompt .
  162. $versionColorizer->colorize($phpVersionLine1) .
  163. PHP_EOL .
  164. $versionPrompt .
  165. $versionColorizer->colorize($phpVersionLine2) .
  166. PHP_EOL
  167. )
  168. ;
  169. }
  170. }