2019-12-24 01:52:07 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
2020-07-16 18:13:12 +02:00
|
|
|
namespace Psl\Tests\SecureRandom;
|
2019-12-24 01:52:07 +01:00
|
|
|
|
|
|
|
use PHPUnit\Framework\TestCase;
|
2019-12-25 19:11:35 +01:00
|
|
|
use Psl\Exception;
|
2020-07-16 18:13:12 +02:00
|
|
|
use Psl\SecureRandom;
|
2019-12-25 19:11:35 +01:00
|
|
|
use Psl\Str;
|
2019-12-24 01:52:07 +01:00
|
|
|
|
|
|
|
class BytesTest extends TestCase
|
|
|
|
{
|
2019-12-25 19:11:35 +01:00
|
|
|
public function testBytes(): void
|
|
|
|
{
|
2020-07-16 18:13:12 +02:00
|
|
|
$random = SecureRandom\bytes(32);
|
2019-12-25 19:11:35 +01:00
|
|
|
|
|
|
|
self::assertSame(32, Str\Byte\length($random));
|
|
|
|
}
|
|
|
|
|
2019-12-26 15:41:15 +01:00
|
|
|
public function testBytesEarlyReturnForZeroLength(): void
|
|
|
|
{
|
2020-07-16 18:13:12 +02:00
|
|
|
self::assertSame('', SecureRandom\bytes(0));
|
2019-12-26 15:41:15 +01:00
|
|
|
}
|
|
|
|
|
2019-12-25 19:11:35 +01:00
|
|
|
public function testBytesThrowsForNegativeLength(): void
|
|
|
|
{
|
|
|
|
$this->expectException(Exception\InvariantViolationException::class);
|
2020-07-09 00:28:29 +02:00
|
|
|
$this->expectExceptionMessage('Expected a non-negative length.');
|
2019-12-25 19:11:35 +01:00
|
|
|
|
2020-07-16 18:13:12 +02:00
|
|
|
SecureRandom\bytes(-1);
|
2019-12-25 19:11:35 +01:00
|
|
|
}
|
2019-12-24 01:52:07 +01:00
|
|
|
}
|