Add function mock test for systems without libsodium

This commit is contained in:
Jessica Mauerhan
2016-10-04 16:23:36 -04:00
parent 67fc99a93b
commit 761e5115be
2 changed files with 22 additions and 2 deletions
+20 -1
View File
@@ -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);
}
}