c3eff5c7c34316758c75f8a46c20a71fb97b01cd
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Tests / Unit / Crypto / RandomTest.php
1 <?php
2 declare (strict_types=1);
3 namespace TYPO3\CMS\Core\Tests\Unit\Crypto;
4
5 /*
6 * This file is part of the TYPO3 CMS project.
7 *
8 * It is free software; you can redistribute it and/or modify it under
9 * the terms of the GNU General Public License, either version 2
10 * of the License, or any later version.
11 *
12 * For the full copyright and license information, please read the
13 * LICENSE.txt file that was distributed with this source code.
14 *
15 * The TYPO3 project - inspiring people to share!
16 */
17
18 use TYPO3\CMS\Core\Crypto\Random;
19 use TYPO3\CMS\Core\Tests\UnitTestCase;
20
21 /**
22 * Test case
23 */
24 class RandomTest extends UnitTestCase
25 {
26 /**
27 * @test
28 */
29 public function generateRandomBytesReturnsExpectedAmountOfBytes()
30 {
31 $subject = new Random();
32 $this->assertEquals(4, strlen($subject->generateRandomBytes(4)));
33 }
34
35 /**
36 * Data provider for generateRandomHexStringReturnsExpectedAmountOfChars
37 *
38 * @return array
39 */
40 public function generateRandomHexStringReturnsExpectedAmountOfCharsDataProvider()
41 {
42 return [
43 [1],
44 [2],
45 [3],
46 [4],
47 [7],
48 [8],
49 [31],
50 [32],
51 [100],
52 [102],
53 [4000],
54 [4095],
55 [4096],
56 [4097],
57 [8000]
58 ];
59 }
60
61 /**
62 * @test
63 * @dataProvider generateRandomHexStringReturnsExpectedAmountOfCharsDataProvider
64 * @param int $numberOfChars Number of Chars to generate
65 */
66 public function generateRandomHexStringReturnsExpectedAmountOfChars($numberOfChars)
67 {
68 $subject = new Random();
69 $this->assertEquals($numberOfChars, strlen($subject->generateRandomHexString($numberOfChars)));
70 }
71 }