From 56bb897a889b908442ca52f7241e423eb3155456 Mon Sep 17 00:00:00 2001 From: Jessica Mauerhan Date: Thu, 24 Mar 2016 08:29:05 -0400 Subject: [PATCH] RandomNodeProvider tests --- .../Provider/Node/RandomNodeProviderTest.php | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 tests/src/Provider/Node/RandomNodeProviderTest.php diff --git a/tests/src/Provider/Node/RandomNodeProviderTest.php b/tests/src/Provider/Node/RandomNodeProviderTest.php new file mode 100644 index 0000000..d739d29 --- /dev/null +++ b/tests/src/Provider/Node/RandomNodeProviderTest.php @@ -0,0 +1,62 @@ +skipIfHhvm(); + parent::setUp(); + } + + public function tearDown() + { + parent::tearDown(); + AspectMock::clean(); + } + + /** + * @runInSeparateProcess + * @preserveGlobalState disabled + */ + public function testGetNodeUsesMtRand() + { + $mtRand = AspectMock::func('Ramsey\Uuid\Provider\Node', 'mt_rand', $this->num); + $provider = new RandomNodeProvider(); + $provider->getNode(); + $mtRand->verifyInvokedMultipleTimes(2, [0, 1 << 24]); + } + + /** + * @runInSeparateProcess + * @preserveGlobalState disabled + */ + public function testGetNodeFormatsRandomNumbersIntoHexString() + { + AspectMock::func('Ramsey\Uuid\Provider\Node', 'mt_rand', $this->num); + $sprintf = AspectMock::func('Ramsey\Uuid\Provider\Node', 'sprintf', $this->node); + $provider = new RandomNodeProvider(); + $provider->getNode(); + $sprintf->verifyInvoked(['%06x%06x', $this->num, $this->num]); + } + + /** + * @runInSeparateProcess + * @preserveGlobalState disabled + */ + public function testGetNodeReturnsHexString() + { + AspectMock::func('Ramsey\Uuid\Provider\Node', 'mt_rand', $this->num); + AspectMock::func('Ramsey\Uuid\Provider\Node', 'sprintf', $this->node); + $provider = new RandomNodeProvider(); + $this->assertEquals($this->node, $provider->getNode()); + } +}