Files
php-uuid/tests/Generator/SodiumRandomGeneratorTest.php
T
Martin Hujer ca2629767d Require phpstan and correct issues found up to level 2
* issues found by phpstan L0
* issues found by phpstan L1
* issues found by phpstan L2 in src/
* issues found by phpstan L2 in tests/
2020-01-18 12:13:08 -06:00

50 lines
1.3 KiB
PHP

<?php
namespace Ramsey\Uuid\Test\Generator;
use phpmock\phpunit\PHPMock;
use Ramsey\Uuid\Test\TestCase;
use Ramsey\Uuid\Generator\SodiumRandomGenerator;
use Ramsey\Uuid\Uuid;
use Ramsey\Uuid\UuidFactory;
class SodiumRandomGeneratorTest extends TestCase
{
use PHPMock;
protected function skipIfLibsodiumExtensionNotLoaded()
{
if (!extension_loaded('libsodium')) {
$this->markTestSkipped(
'The libsodium extension is not available.'
);
}
}
public function testGenerateReturnsBytes()
{
$this->skipIfLibsodiumExtensionNotLoaded();
$generator = new SodiumRandomGenerator();
$bytes = $generator->generate(16);
$this->assertIsString('string', $bytes);
$this->assertEquals(16, strlen($bytes));
}
public function testFactoryUsesSodiumRandomGenerator()
{
$this->skipIfLibsodiumExtensionNotLoaded();
$uuidFactory = new UuidFactory();
$uuidFactory->setRandomGenerator(new SodiumRandomGenerator());
Uuid::setFactory($uuidFactory);
/** @var UuidFactory $actualUuidFactory */
$actualUuidFactory = Uuid::getFactory();
$this->assertInstanceOf(
SodiumRandomGenerator::class,
$actualUuidFactory->getRandomGenerator()
);
}
}