mirror of
https://github.com/ramsey/uuid.git
synced 2026-06-15 16:07:55 +03:00
Add function mock test for systems without libsodium
This commit is contained in:
@@ -2,12 +2,15 @@
|
||||
|
||||
namespace Ramsey\Uuid\Test\Generator;
|
||||
|
||||
use phpmock\phpunit\PHPMock;
|
||||
use Ramsey\Uuid\Test\TestCase;
|
||||
use Ramsey\Uuid\Generator\SodiumRandomGenerator;
|
||||
|
||||
class SodiumRandomGeneratorTest extends TestCase
|
||||
{
|
||||
protected function setUp()
|
||||
use PHPMock;
|
||||
|
||||
protected function skipIfLibsodiumExtensionNotLoaded()
|
||||
{
|
||||
if (!extension_loaded('libsodium')) {
|
||||
$this->markTestSkipped(
|
||||
@@ -18,6 +21,7 @@ class SodiumRandomGeneratorTest extends TestCase
|
||||
|
||||
public function testGenerateReturnsBytes()
|
||||
{
|
||||
$this->skipIfLibsodiumExtensionNotLoaded();
|
||||
$generator = new SodiumRandomGenerator();
|
||||
|
||||
$bytes = $generator->generate(16);
|
||||
@@ -28,6 +32,7 @@ class SodiumRandomGeneratorTest extends TestCase
|
||||
|
||||
public function testFactoryUsesSodiumRandomGenerator()
|
||||
{
|
||||
$this->skipIfLibsodiumExtensionNotLoaded();
|
||||
$uuidFactory = new \Ramsey\Uuid\UuidFactory();
|
||||
$uuidFactory->setRandomGenerator(new SodiumRandomGenerator());
|
||||
\Ramsey\Uuid\Uuid::setFactory($uuidFactory);
|
||||
@@ -39,4 +44,18 @@ class SodiumRandomGeneratorTest extends TestCase
|
||||
$uuid->getFactory()->getRandomGenerator()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @runInSeparateProcess
|
||||
* @preserveGlobalState disabled
|
||||
*/
|
||||
public function testGenerateUsesSodiumLibrary()
|
||||
{
|
||||
$randomBytesFunc = $this->getFunctionMock('Sodium', 'randombytes_buf');
|
||||
$randomBytesFunc->expects($this->once())
|
||||
->with(10);
|
||||
$generator = new SodiumRandomGenerator();
|
||||
$generator->generate(10);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user