PageRenderTime 45ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/units/jubianchi/PhpSwitch/PHP/Version.php

https://github.com/horechek/phpswitch
PHP | 83 lines | 78 code | 5 blank | 0 comment | 0 complexity | c2149b9a37c81e9235de2e322d750c91 MD5 | raw file
  1. <?php
  2. namespace tests\units\jubianchi\PhpSwitch\PHP;
  3. use mageekguy\atoum;
  4. use mageekguy\atoum\mock\stream;
  5. use jubianchi\PhpSwitch\PHP\Version as TestedClass;
  6. require_once __DIR__ . '/../../../../bootstrap.php';
  7. class Version extends atoum\test
  8. {
  9. public function test__construct()
  10. {
  11. $this
  12. ->if($version = uniqid())
  13. ->and($url = uniqid())
  14. ->then
  15. ->exception(function() use($version, $url) {
  16. new TestedClass($version, $url);
  17. })
  18. ->isInstanceOf('\\InvalidArgumentException')
  19. ->hasMessage(sprintf('Wrong PHP version %s', $version))
  20. ->if($version = '5.5.5')
  21. ->then
  22. ->object($object = new TestedClass($version, $url))
  23. ->string($object->getName())->isEqualTo('php')
  24. ->string($object->getVersion())->isEqualTo($version)
  25. ->string($object->getUrl())->isEqualTo('http://php.net/' . $url)
  26. ->if($url = 'http://' . ($host = uniqid()) . '/from/a/mirror')
  27. ->then
  28. ->object($object = new TestedClass($version, $url))
  29. ->string($object->getUrl())->isEqualTo('http://' . $host . '/from/%s/mirror')
  30. ->if($name = uniqid())
  31. ->then
  32. ->object($object = new TestedClass($version, $url, $name))
  33. ->string($object->getName())->isEqualTo($name)
  34. ->string($object->getVersion())->isEqualTo($version)
  35. ;
  36. }
  37. public function testFromString()
  38. {
  39. $this
  40. ->if($version = uniqid())
  41. ->then
  42. ->exception(function() use($version) {
  43. TestedClass::fromString(uniqid() . '-' . $version);
  44. })
  45. ->isInstanceOf('\InvalidArgumentException')
  46. ->hasMEssage(sprintf('Wrong PHP version %s', $version))
  47. ->if($version = '5.5.5')
  48. ->then
  49. ->object($object = TestedClass::fromString($version))->isInstanceOf('\\jubianchi\PhpSwitch\PHP\Version')
  50. ->string($object->getName())->isEqualTo(TestedClass::DEFAULT_NAME)
  51. ->string($object->getVersion())->isEqualTo($version)
  52. ->if($name = uniqid())
  53. ->then
  54. ->object($object = TestedClass::fromString($name . '-' . $version))->isInstanceOf('\\jubianchi\PhpSwitch\PHP\Version')
  55. ->string($object->getName())->isEqualTo($name)
  56. ->string($object->getVersion())->isEqualTo($version)
  57. ->if($name = uniqid() . '-' . uniqid())
  58. ->then
  59. ->object($object = TestedClass::fromString($name . '-' . $version))->isInstanceOf('\\jubianchi\PhpSwitch\PHP\Version')
  60. ->string($object->getName())->isEqualTo($name)
  61. ->string($object->getVersion())->isEqualTo($version)
  62. ;
  63. }
  64. public function test__toString()
  65. {
  66. $this
  67. ->if($version = '5.5.5')
  68. ->and($url = uniqid())
  69. ->and($object = new TestedClass($version, $url))
  70. ->then
  71. ->castToString($object)->isEqualTo('php-' . $version)
  72. ->if($name = uniqid())
  73. ->and($object = new TestedClass($version, $url, $name))
  74. ->then
  75. ->castToString($object)->isEqualTo($name . '-' . $version)
  76. ;
  77. }
  78. }