/tests/units/classes/asserter.php

https://github.com/tharkun/atoum · PHP · 143 lines · 130 code · 13 blank · 0 comment · 0 complexity · a449492ba425ab6db3dbe61f31ee3026 MD5 · raw file

  1. <?php
  2. namespace mageekguy\atoum\tests\units;
  3. require __DIR__ . '/../runner.php';
  4. use
  5. mageekguy\atoum,
  6. mageekguy\atoum\asserters,
  7. mock\mageekguy\atoum\asserter as testedClass
  8. ;
  9. class asserter extends atoum\test
  10. {
  11. public function test__construct()
  12. {
  13. $this
  14. ->if($asserter = new testedClass($generator = new atoum\asserter\generator()))
  15. ->then
  16. ->object($asserter->getGenerator())->isIdenticalTo($generator)
  17. ->object($asserter->getLocale())->isIdenticalTo($generator->getLocale())
  18. ->if($asserter = new testedClass())
  19. ->then
  20. ->object($generator = $asserter->getGenerator())->isEqualTo(new atoum\asserter\generator())
  21. ->object($asserter->getLocale())->isIdenticalTo($generator->getLocale())
  22. ;
  23. }
  24. public function test__get()
  25. {
  26. $this
  27. ->if($asserter = new testedClass($generator = new atoum\asserter\generator()))
  28. ->then
  29. ->object($integerAsserter = $asserter->integer)->isEqualTo(new asserters\integer($generator))
  30. ->object($integerAsserter->getGenerator())->isIdenticalTo($generator)
  31. ;
  32. }
  33. public function test__call()
  34. {
  35. $this
  36. ->if($asserter = new testedClass($generator = new atoum\asserter\generator()))
  37. ->then
  38. ->object($integerAsserter = $asserter->integer($integer = rand(1, PHP_INT_MAX)))->isInstanceOf('mageekguy\atoum\asserters\integer')
  39. ->integer($integerAsserter->getValue())->isEqualTo($integer)
  40. ->object($integerAsserter->getGenerator())->isIdenticalTo($generator)
  41. ;
  42. }
  43. public function testReset()
  44. {
  45. $this
  46. ->if($asserter = new testedClass(new atoum\asserter\generator()))
  47. ->then
  48. ->object($asserter->reset())->isIdenticalTo($asserter)
  49. ;
  50. }
  51. public function testSetLocale()
  52. {
  53. $this
  54. ->if($asserter = new testedClass(new atoum\asserter\generator()))
  55. ->then
  56. ->object($asserter->setLocale($locale = new atoum\locale()))->isIdenticalTo($asserter)
  57. ->object($asserter->getLocale())->isIdenticalTo($locale)
  58. ;
  59. }
  60. public function testGetLocale()
  61. {
  62. $this
  63. ->if($asserter = new testedClass($generator = new atoum\asserter\generator()))
  64. ->then
  65. ->object($asserter->getLocale())->isIdenticalTo($generator->getLocale())
  66. ->if($asserter->setLocale($locale = new atoum\locale()))
  67. ->then
  68. ->object($asserter->getLocale())->isIdenticalTo($locale)
  69. ;
  70. }
  71. public function testSetGenerator()
  72. {
  73. $this
  74. ->if($asserter = new testedClass(new atoum\asserter\generator()))
  75. ->then
  76. ->object($asserter->setGenerator($generator = new atoum\asserter\generator()))->isIdenticalTo($asserter)
  77. ->object($asserter->getGenerator())->isIdenticalTo($generator)
  78. ->object($asserter->getLocale())->isIdenticalTo($generator->getLocale())
  79. ->object($asserter->setGenerator())->isIdenticalTo($asserter)
  80. ->object($asserter->getGenerator())
  81. ->isNotIdenticalTo($generator)
  82. ->isEqualTo(new atoum\asserter\generator())
  83. ;
  84. }
  85. public function testSetWithTest()
  86. {
  87. $this
  88. ->if($asserter = new testedClass(new atoum\asserter\generator()))
  89. ->then
  90. ->object($asserter->setWithTest($this))->isIdenticalTo($asserter)
  91. ;
  92. }
  93. public function testSetWithArguments()
  94. {
  95. $this
  96. ->if($asserter = new testedClass(new atoum\asserter\generator()))
  97. ->then
  98. ->object($asserter->setWithArguments(array()))->isIdenticalTo($asserter)
  99. ->mock($asserter)->call('setWith')->never()
  100. ->object($asserter->setWithArguments(array($argument = uniqid())))->isIdenticalTo($asserter)
  101. ->mock($asserter)->call('setWith')->withArguments($argument)->once()
  102. ;
  103. }
  104. public function testGetTypeOf()
  105. {
  106. $this
  107. ->if($asserter = new testedClass(new atoum\asserter\generator()))
  108. ->and($asserter->setLocale($locale = new \mock\mageekguy\atoum\locale()))
  109. ->then
  110. ->string($asserter->getTypeOf(true))->isEqualTo('boolean(true)')
  111. ->mock($locale)->call('_')->withArguments('boolean(%s)')->once()
  112. ->string($asserter->getTypeOf(false))->isEqualTo('boolean(false)')
  113. ->mock($locale)->call('_')->withArguments('boolean(%s)')->twice()
  114. ->string($asserter->getTypeOf($integer = rand(1, PHP_INT_MAX)))->isEqualTo('integer(' . $integer . ')')
  115. ->mock($locale)->call('_')->withArguments('integer(%s)')->once()
  116. ->string($asserter->getTypeOf($float = (float) rand(1, PHP_INT_MAX)))->isEqualTo('float(' . $float . ')')
  117. ->mock($locale)->call('_')->withArguments('float(%s)')->once()
  118. ->string($asserter->getTypeOf(null))->isEqualTo('null')
  119. ->mock($locale)->call('_')->withArguments('null')->once()
  120. ->string($asserter->getTypeOf($this))->isEqualTo('object(' . get_class($this) . ')')
  121. ->mock($locale)->call('_')->withArguments('object(%s)')->once()
  122. ->string($asserter->getTypeOf($resource = fopen(__FILE__, 'r')))->isEqualTo('resource(' . $resource . ')')
  123. ->mock($locale)->call('_')->withArguments('resource(%s)')->once()
  124. ->string($asserter->getTypeOf('string'))->isEqualTo('string(6) \'string\'')
  125. ->mock($locale)->call('_')->withArguments('string(%s) \'%s\'')->once()
  126. ->string($asserter->getTypeOf(range(1, 10)))->isEqualTo('array(10)')
  127. ->mock($locale)->call('_')->withArguments('array(%s)')->once()
  128. ;
  129. }
  130. }