/tests/units/classes/mock/php/method.php

http://github.com/mageekguy/atoum · PHP · 84 lines · 75 code · 9 blank · 0 comment · 0 complexity · 96e1d3cc39028b25e07f3ec9475a5801 MD5 · raw file

  1. <?php
  2. namespace mageekguy\atoum\tests\units\mock\php;
  3. use
  4. mageekguy\atoum,
  5. mageekguy\atoum\mock\php
  6. ;
  7. require_once __DIR__ . '/../../../runner.php';
  8. class method extends atoum\test
  9. {
  10. public function test__construct()
  11. {
  12. $this
  13. ->if($this->newTestedInstance($name = uniqid()))
  14. ->then
  15. ->string($this->testedInstance->getName())->isEqualTo($name)
  16. ;
  17. }
  18. public function testReturnReference()
  19. {
  20. $this
  21. ->if($this->newTestedInstance(uniqid()))
  22. ->then
  23. ->object($this->testedInstance->returnReference())->isTestedInstance
  24. ->if($method = $this->newTestedInstance('__construct'))
  25. ->then
  26. ->exception(function() use ($method) {
  27. $method->returnReference();
  28. }
  29. )
  30. ->isInstanceOf('mageekguy\atoum\exceptions\logic')
  31. ->hasMessage('Constructor can not return a reference')
  32. ;
  33. }
  34. public function testIsConstructor()
  35. {
  36. $this
  37. ->if($this->newTestedInstance(uniqid()))
  38. ->then
  39. ->boolean($this->testedInstance->isConstructor())->isFalse()
  40. ->if($this->newTestedInstance('__construct'))
  41. ->then
  42. ->boolean($this->testedInstance->isConstructor())->isTrue()
  43. ;
  44. }
  45. public function testAddArgument()
  46. {
  47. $this
  48. ->if($this->newTestedInstance(uniqid()))
  49. ->then
  50. ->object($this->testedInstance->addArgument(new php\method\argument(uniqid())))->isTestedInstance
  51. ;
  52. }
  53. public function test__toString()
  54. {
  55. $this
  56. ->if($this->newTestedInstance($name = uniqid()))
  57. ->then
  58. ->castToString($this->testedInstance)->isEqualTo('public function ' . $name . '()')
  59. ->castToString($this->testedInstance->returnReference())->isEqualTo('public function & ' . $name . '()')
  60. ->castToString($this->testedInstance->addArgument($argument1 = new php\method\argument(uniqid())))->isEqualTo('public function & ' . $name . '(' . $argument1 . ')')
  61. ->castToString($this->testedInstance->addArgument($argument2 = new php\method\argument(uniqid())))->isEqualTo('public function & ' . $name . '(' . $argument1 . ', ' . $argument2 . ')')
  62. ;
  63. }
  64. public function testGetArgumentsAsString()
  65. {
  66. $this
  67. ->if($this->newTestedInstance($name = uniqid()))
  68. ->then
  69. ->string($this->testedInstance->getArgumentsAsString())->isEmpty()
  70. ->string($this->testedInstance->addArgument($argument1 = new php\method\argument(uniqid()))->getArgumentsAsString())->isEqualTo((string) $argument1)
  71. ->string($this->testedInstance->addArgument($argument2 = new php\method\argument(uniqid()))->getArgumentsAsString())->isEqualTo($argument1 . ', ' . $argument2)
  72. ->string($this->testedInstance->addArgument($argument3 = new php\method\argument(uniqid()))->getArgumentsAsString())->isEqualTo($argument1 . ', ' . $argument2 . ', ' . $argument3)
  73. ;
  74. }
  75. }