blob: f6dd91e15a59611a86f857b65647570fda7ac658 [file] [log] [blame]
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +02001<?php
2
3namespace Tests\Providers\Rng;
4
5use PHPUnit\Framework\TestCase;
6use Tests\MightNotMakeAssertions;
7use RobThree\Auth\Providers\Rng\MCryptRNGProvider;
8
9class MCryptRNGProviderTest extends TestCase
10{
11 use NeedsRngLengths, MightNotMakeAssertions;
12
13 /**
14 * @requires function mcrypt_create_iv
15 *
16 * @return void
17 */
18 public function testMCryptRNGProvidersReturnExpectedNumberOfBytes()
19 {
20 if (function_exists('mcrypt_create_iv')) {
21 $rng = new MCryptRNGProvider();
22
23 foreach ($this->rngTestLengths as $l) {
24 $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
25 }
26
27 $this->assertTrue($rng->isCryptographicallySecure());
28 } else {
29 $this->noAssertionsMade();
30 }
31 }
32}