/tests/units/classes/asserters/hash.php

https://github.com/tharkun/atoum · PHP · 128 lines · 120 code · 8 blank · 0 comment · 0 complexity · 45cc2729e6cb4bbaf407a11dc065743c MD5 · raw file

  1. <?php
  2. namespace mageekguy\atoum\tests\units\asserters;
  3. use
  4. mageekguy\atoum,
  5. mageekguy\atoum\asserter,
  6. mageekguy\atoum\asserters,
  7. mageekguy\atoum\tools\diffs
  8. ;
  9. require_once __DIR__ . '/../../runner.php';
  10. class hash extends atoum\test
  11. {
  12. public function testClass()
  13. {
  14. $this->testedClass->isSubclassOf('mageekguy\atoum\asserters\string');
  15. }
  16. public function testIsSha1()
  17. {
  18. $this
  19. ->if($asserter = new asserters\hash($generator = new asserter\generator()))
  20. ->and($asserter->setWith($value = hash('sha1', 'hello')))
  21. ->then
  22. ->object($asserter->isSha1())->isIdenticalTo($asserter)
  23. ->if($asserter->setWith($value = strtoupper($value)))
  24. ->then
  25. ->object($asserter->isSha1())->isIdenticalTo($asserter)
  26. ->if($asserter->setWith($newvalue = substr($value, 1)))
  27. ->and($diff = new diffs\variable())
  28. ->and($diff->setReference( $newvalue )->setData($value))
  29. ->then
  30. ->exception(function() use ($asserter, & $line) { $line = __LINE__; $asserter->isSha1(); })
  31. ->isInstanceOf('mageekguy\atoum\asserter\exception')
  32. ->hasMessage(sprintf($this->getLocale()->_('%s should be a string of %d characters'), $asserter, strlen($value)))
  33. ->if($asserter->setWith($newvalue = 'z'.substr($value, 1) ))
  34. ->and($diff = new diffs\variable())
  35. ->and($diff->setReference($newvalue)->setData($value))
  36. ->then
  37. ->exception(function() use ($asserter, & $line) { $line = __LINE__; $asserter->isSha1(); })
  38. ->isInstanceOf('mageekguy\atoum\asserter\exception')
  39. ->hasMessage(sprintf($generator->getLocale()->_('%s does not match given pattern'), $asserter))
  40. ;
  41. }
  42. public function testIsSha256()
  43. {
  44. $this
  45. ->if($asserter = new asserters\hash($generator = new asserter\generator()))
  46. ->and($asserter->setWith($value = hash('sha256', 'hello')))
  47. ->then
  48. ->object($asserter->isSha256())->isIdenticalTo($asserter)
  49. ->if($asserter->setWith($value = strtoupper($value)))
  50. ->then
  51. ->object($asserter->isSha256())->isIdenticalTo($asserter)
  52. ->if($asserter->setWith($newvalue = substr($value, 1)))
  53. ->and($diff = new diffs\variable())
  54. ->and($diff->setReference( $newvalue )->setData($value))
  55. ->then
  56. ->exception(function() use ($asserter, & $line) { $line = __LINE__; $asserter->isSha256(); })
  57. ->isInstanceOf('mageekguy\atoum\asserter\exception')
  58. ->hasMessage(sprintf($this->getLocale()->_('%s should be a string of %d characters'), $asserter, strlen($value)))
  59. ->if($asserter->setWith($newvalue = 'z'.substr($value, 1) ))
  60. ->and($diff = new diffs\variable())
  61. ->and($diff->setReference($newvalue)->setData($value))
  62. ->then
  63. ->exception(function() use ($asserter, & $line) { $line = __LINE__; $asserter->isSha256(); })
  64. ->isInstanceOf('mageekguy\atoum\asserter\exception')
  65. ->hasMessage(sprintf($generator->getLocale()->_('%s does not match given pattern'), $asserter))
  66. ;
  67. }
  68. public function testIsSha512()
  69. {
  70. $this
  71. ->if($asserter = new asserters\hash($generator = new asserter\generator()))
  72. ->and($asserter->setWith($value = hash('sha512', 'hello')))
  73. ->then
  74. ->object($asserter->isSha512())->isIdenticalTo($asserter)
  75. ->if($asserter->setWith($value = strtoupper($value)))
  76. ->then
  77. ->object($asserter->isSha512())->isIdenticalTo($asserter)
  78. ->if($asserter->setWith($newvalue = substr($value, 1)))
  79. ->and($diff = new diffs\variable())
  80. ->and($diff->setReference( $newvalue )->setData($value))
  81. ->then
  82. ->exception(function() use ($asserter, & $line) { $line = __LINE__; $asserter->isSha512(); })
  83. ->isInstanceOf('mageekguy\atoum\asserter\exception')
  84. ->hasMessage(sprintf($this->getLocale()->_('%s should be a string of %d characters'), $asserter, strlen($value)))
  85. ->if($asserter->setWith($newvalue = 'z'.substr($value, 1) ))
  86. ->and($diff = new diffs\variable())
  87. ->and($diff->setReference($newvalue)->setData($value))
  88. ->then
  89. ->exception(function() use ($asserter, & $line) { $line = __LINE__; $asserter->isSha512(); })
  90. ->isInstanceOf('mageekguy\atoum\asserter\exception')
  91. ->hasMessage(sprintf($generator->getLocale()->_('%s does not match given pattern'), $asserter))
  92. ;
  93. }
  94. public function testIsMd5()
  95. {
  96. $this
  97. ->if($asserter = new asserters\hash($generator = new asserter\generator()))
  98. ->and($asserter->setWith($value = hash('md5', 'hello')))
  99. ->then
  100. ->object($asserter->isMd5())->isIdenticalTo($asserter)
  101. ->if($asserter->setWith($value = strtoupper($value)))
  102. ->then
  103. ->object($asserter->isMd5())->isIdenticalTo($asserter)
  104. ->if($asserter->setWith($newvalue = substr($value, 1)))
  105. ->and($diff = new diffs\variable())
  106. ->and($diff->setReference( $newvalue )->setData($value))
  107. ->then
  108. ->exception(function() use ($asserter, & $line) { $line = __LINE__; $asserter->isMd5(); })
  109. ->isInstanceOf('mageekguy\atoum\asserter\exception')
  110. ->hasMessage(sprintf($this->getLocale()->_('%s should be a string of %d characters'), $asserter, strlen($value)))
  111. ->if($asserter->setWith($newvalue = 'z'.substr($value, 1) ))
  112. ->and($diff = new diffs\variable())
  113. ->and($diff->setReference($newvalue)->setData($value))
  114. ->then
  115. ->exception(function() use ($asserter, & $line) { $line = __LINE__; $asserter->isMd5(); })
  116. ->isInstanceOf('mageekguy\atoum\asserter\exception')
  117. ->hasMessage(sprintf($generator->getLocale()->_('%s does not match given pattern'), $asserter))
  118. ;
  119. }
  120. }