MCryptRNGProviderTest.php 796 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace Tests\Providers\Rng;
  3. use PHPUnit\Framework\TestCase;
  4. use Tests\MightNotMakeAssertions;
  5. use RobThree\Auth\Providers\Rng\MCryptRNGProvider;
  6. class MCryptRNGProviderTest extends TestCase
  7. {
  8. use NeedsRngLengths, MightNotMakeAssertions;
  9. /**
  10. * @requires function mcrypt_create_iv
  11. *
  12. * @return void
  13. */
  14. public function testMCryptRNGProvidersReturnExpectedNumberOfBytes()
  15. {
  16. if (function_exists('mcrypt_create_iv')) {
  17. $rng = new MCryptRNGProvider();
  18. foreach ($this->rngTestLengths as $l) {
  19. $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
  20. }
  21. $this->assertTrue($rng->isCryptographicallySecure());
  22. } else {
  23. $this->noAssertionsMade();
  24. }
  25. }
  26. }