PageRenderTime 43ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/units/classes/php/tokenizer/token.php

http://github.com/mageekguy/atoum
PHP | 177 lines | 162 code | 15 blank | 0 comment | 0 complexity | 491a7c4deb530d5c82176d5ba61a0d04 MD5 | raw file
  1. <?php
  2. namespace mageekguy\atoum\tests\units\php\tokenizer;
  3. use
  4. mageekguy\atoum,
  5. mageekguy\atoum\php\tokenizer
  6. ;
  7. require_once __DIR__ . '/../../../runner.php';
  8. class token extends atoum\test
  9. {
  10. public function testClass()
  11. {
  12. $this
  13. ->testedClass->isSubclassOf('mageekguy\atoum\php\tokenizer\iterator\value')
  14. ;
  15. }
  16. public function test__construct()
  17. {
  18. $this
  19. ->if($this->newTestedInstance($tag = uniqid(), $string = uniqid(), $line = rand(1, PHP_INT_MAX)))
  20. ->then
  21. ->string($this->testedInstance->getTag())->isEqualTo($tag)
  22. ->string($this->testedInstance->getValue())->isEqualTo($string)
  23. ->integer($this->testedInstance->getLine())->isEqualTo($line)
  24. ->variable($this->testedInstance->getParent())->isNull()
  25. ->if($this->newTestedInstance($tag = uniqid(), $string = uniqid(), $line = rand(1, PHP_INT_MAX), $parent = new tokenizer\iterator()))
  26. ->then
  27. ->string($this->testedInstance->getTag())->isEqualTo($tag)
  28. ->string($this->testedInstance->getValue())->isEqualTo($string)
  29. ->integer($this->testedInstance->getLine())->isEqualTo($line)
  30. ->object($this->testedInstance->getParent())->isIdenticalTo($parent)
  31. ;
  32. }
  33. public function test__toString()
  34. {
  35. $this
  36. ->if($this->newTestedInstance($tag = uniqid(), $string = uniqid(), $line = rand(1, PHP_INT_MAX)))
  37. ->then
  38. ->castToString($this->testedInstance)->isEqualTo($string)
  39. ->if($this->newTestedInstance($tag = uniqid(), null, $line = rand(1, PHP_INT_MAX)))
  40. ->then
  41. ->castToString($this->testedInstance)->isEqualTo($tag)
  42. ;
  43. }
  44. public function testCount()
  45. {
  46. $this
  47. ->if($this->newTestedInstance(uniqid(), uniqid(), rand(1, PHP_INT_MAX)))
  48. ->then
  49. ->sizeOf($this->testedInstance)->isEqualTo(1)
  50. ;
  51. }
  52. public function testKey()
  53. {
  54. $this
  55. ->if($this->newTestedInstance(uniqid(), uniqid(), rand(1, PHP_INT_MAX)))
  56. ->then
  57. ->integer($this->testedInstance->key())->isZero(0)
  58. ->if($this->testedInstance->next())
  59. ->then
  60. ->variable($this->testedInstance->key())->isNull()
  61. ->if($this->testedInstance->rewind())
  62. ->then
  63. ->integer($this->testedInstance->key())->isZero(0)
  64. ;
  65. }
  66. public function testCurrent()
  67. {
  68. $this
  69. ->if($this->newTestedInstance(uniqid(), uniqid(), rand(1, PHP_INT_MAX)))
  70. ->then
  71. ->object($this->testedInstance->current())->isTestedInstance
  72. ->if($this->testedInstance->next())
  73. ->then
  74. ->variable($this->testedInstance->current())->isNull()
  75. ->if($this->testedInstance->rewind())
  76. ->then
  77. ->object($this->testedInstance->current())->isTestedInstance
  78. ;
  79. }
  80. public function testPrev()
  81. {
  82. $this
  83. ->if($this->newTestedInstance(uniqid(), uniqid(), rand(1, PHP_INT_MAX)))
  84. ->then
  85. ->integer($this->testedInstance->key())->isZero()
  86. ->object($this->testedInstance->current())->isTestedInstance
  87. ->object($this->testedInstance->prev())->isTestedInstance
  88. ->variable($this->testedInstance->key())->isNull()
  89. ->variable($this->testedInstance->current())->isNull()
  90. ;
  91. }
  92. public function testNext()
  93. {
  94. $this
  95. ->if($this->newTestedInstance(uniqid(), uniqid(), rand(1, PHP_INT_MAX)))
  96. ->then
  97. ->integer($this->testedInstance->key())->isZero()
  98. ->object($this->testedInstance->current())->isTestedInstance
  99. ->object($this->testedInstance->next())->isTestedInstance
  100. ->variable($this->testedInstance->key())->isNull()
  101. ->variable($this->testedInstance->current())->isNull()
  102. ;
  103. }
  104. public function testSetParent()
  105. {
  106. $this
  107. ->if($token = $this->newTestedInstance(uniqid(), uniqid(), rand(1, PHP_INT_MAX)))
  108. ->then
  109. ->variable($this->testedInstance->getParent())->isNull()
  110. ->object($this->testedInstance->setParent($parent = new tokenizer\iterator()))->isTestedInstance
  111. ->object($this->testedInstance->getParent())->isIdenticalTo($parent)
  112. ->sizeOf($parent)->isEqualTo(1)
  113. ->object($parent->current())->isTestedInstance
  114. ->exception(function() use ($token) {
  115. $token->setParent(new tokenizer\iterator());
  116. }
  117. )
  118. ->isInstanceOf('mageekguy\atoum\exceptions\runtime')
  119. ->hasMessage('Parent is already set')
  120. ;
  121. }
  122. public function testAppend()
  123. {
  124. $this
  125. ->if($token = $this->newTestedInstance(uniqid(), uniqid(), rand(1, PHP_INT_MAX)))
  126. ->then
  127. ->exception(function() use ($token) {
  128. $token->append(new tokenizer\token(uniqid(), uniqid(), rand(1, PHP_INT_MAX)));
  129. }
  130. )
  131. ->isInstanceOf('mageekguy\atoum\exceptions\logic')
  132. ->hasMessage($this->getTestedClassName() . '::append() is unavailable')
  133. ;
  134. }
  135. public function testEnd()
  136. {
  137. $this
  138. ->if($this->newTestedInstance(uniqid(), uniqid(), rand(1, PHP_INT_MAX)))
  139. ->then
  140. ->integer($this->testedInstance->key())->isZero()
  141. ->object($this->testedInstance->current())->isTestedInstance
  142. ->object($this->testedInstance->end())->isTestedInstance
  143. ->integer($this->testedInstance->key())->isZero()
  144. ->object($this->testedInstance->current())->isTestedInstance
  145. ;
  146. }
  147. public function testSeek()
  148. {
  149. $this
  150. ->if($this->newTestedInstance(uniqid(), uniqid(), rand(1, PHP_INT_MAX)))
  151. ->then
  152. ->integer($this->testedInstance->key())->isZero()
  153. ->object($this->testedInstance->current())->isTestedInstance
  154. ->object($this->testedInstance->seek(rand(1, PHP_INT_MAX)))->isTestedInstance
  155. ->variable($this->testedInstance->key())->isNull()
  156. ->variable($this->testedInstance->current())->isNull()
  157. ->object($this->testedInstance->seek(0))->isTestedInstance
  158. ->integer($this->testedInstance->key())->isZero()
  159. ->object($this->testedInstance->current())->isTestedInstance
  160. ;
  161. }
  162. }