Allow setting the node provider on the FeatureSet

This commit is contained in:
Ben Ramsey
2020-02-29 23:51:00 -06:00
parent 86c37eff4c
commit 836de4ece5
2 changed files with 25 additions and 0 deletions
+15
View File
@@ -128,6 +128,11 @@ class FeatureSet
*/
private $timeGenerator;
/**
* @var TimeProviderInterface
*/
private $timeProvider;
/**
* @var ValidatorInterface
*/
@@ -278,11 +283,21 @@ class FeatureSet
$this->dceSecurityGenerator = $this->buildDceSecurityGenerator($dceSecurityProvider);
}
/**
* Sets the node provider to use in this environment
*/
public function setNodeProvider(NodeProviderInterface $nodeProvider): void
{
$this->nodeProvider = $nodeProvider;
$this->timeGenerator = $this->buildTimeGenerator($this->timeProvider);
}
/**
* Sets the time provider to use in this environment
*/
public function setTimeProvider(TimeProviderInterface $timeProvider): void
{
$this->timeProvider = $timeProvider;
$this->timeGenerator = $this->buildTimeGenerator($timeProvider);
}
+10
View File
@@ -12,6 +12,7 @@ use Ramsey\Uuid\Generator\DefaultNameGenerator;
use Ramsey\Uuid\Generator\PeclUuidTimeGenerator;
use Ramsey\Uuid\Guid\GuidBuilder;
use Ramsey\Uuid\Math\BrickMathCalculator;
use Ramsey\Uuid\Provider\NodeProviderInterface;
use Ramsey\Uuid\Validator\ValidatorInterface;
class FeatureSetTest extends TestCase
@@ -67,4 +68,13 @@ class FeatureSetTest extends TestCase
$this->assertInstanceOf(BrickMathCalculator::class, $featureSet->getCalculator());
}
public function testSetNodeProvider(): void
{
$nodeProvider = Mockery::mock(NodeProviderInterface::class);
$featureSet = new FeatureSet();
$featureSet->setNodeProvider($nodeProvider);
$this->assertSame($nodeProvider, $featureSet->getNodeProvider());
}
}