diff --git a/tests/src/Codec/GuidStringCodecTest.php b/tests/src/Codec/GuidStringCodecTest.php index 69df13e..28132d8 100644 --- a/tests/src/Codec/GuidStringCodecTest.php +++ b/tests/src/Codec/GuidStringCodecTest.php @@ -2,6 +2,7 @@ namespace Ramsey\Uuid\Test\Codec; +use Ramsey\Uuid\Codec\GuidStringCodec; use Ramsey\Uuid\Test\TestCase; /** @@ -12,38 +13,99 @@ use Ramsey\Uuid\Test\TestCase; class GuidStringCodecTest extends TestCase { + /** @var UuidBuilderInterface */ + private $builder; + /** @var UuidInterface */ + private $uuid; + /** @var array */ + private $fields; + + public function setUp() + { + parent::setUp(); + $this->builder = $this->getMock('Ramsey\Uuid\Builder\UuidBuilderInterface'); + $this->uuid = $this->getMock('Ramsey\Uuid\UuidInterface'); + $this->fields = ['time_low' => '12345678', + 'time_mid' => '1234', + 'time_hi_and_version' => 'abcd', + 'clock_seq_hi_and_reserved' => 'ab', + 'clock_seq_low' => 'ef', + 'node' => '1234abcd4321']; + } + + public function tearDown() + { + parent::tearDown(); + $this->builder = null; + $this->fields = null; + } + public function testEncodeUsesFieldsArray() { - + $this->uuid->expects($this->once()) + ->method('getFieldsHex') + ->willReturn($this->fields); + $codec = new GuidStringCodec($this->builder); + $codec->encode($this->uuid); } public function testEncodeReturnsFormattedString() { - + $this->uuid->method('getFieldsHex') + ->willReturn($this->fields); + $codec = new GuidStringCodec($this->builder); + $result = $codec->encode($this->uuid); + $this->assertEquals('78563412-3412-cdab-abef-1234abcd4321', $result); } public function testEncodeBinaryUsesFieldsArray() { - + $this->uuid->expects($this->once()) + ->method('getFieldsHex') + ->willReturn($this->fields); + $codec = new GuidStringCodec($this->builder); + $codec->encodeBinary($this->uuid); } public function testEncodeBinaryReturnsBinaryString() { - + $expected = hex2bin('123456781234abcdabef1234abcd4321'); + $this->uuid->method('getFieldsHex') + ->willReturn($this->fields); + $codec = new GuidStringCodec($this->builder); + $result = $codec->encodeBinary($this->uuid); + $this->assertEquals($expected, $result); } public function testDecodeUsesBuilderOnFields() { - + $string = 'uuid:78563412-3412-cdab-abef-1234abcd4321'; + $this->builder->expects($this->once()) + ->method('build') + ->with($this->isInstanceOf('Ramsey\Uuid\Codec\GuidStringCodec'), $this->fields); + $codec = new GuidStringCodec($this->builder); + $codec->decode($string); } public function testDecodeReturnsUuidFromBuilder() { + $string = 'uuid:78563412-3412-cdab-abef-1234abcd4321'; + $this->builder->method('build') + ->willReturn($this->uuid); + $codec = new GuidStringCodec($this->builder); + $result = $codec->decode($string); + $this->assertEquals($this->uuid, $result); } public function testDecodeBytesReturnsUuid() { - + $string = '123456781234abcdabef1234abcd4321'; + $bytes = pack('H*', $string); + $codec = new GuidStringCodec($this->builder); + $this->builder->method('build') + ->willReturn($this->uuid); + $result = $codec->decodeBytes($bytes); + $this->assertEquals($this->uuid, $result); } } diff --git a/tests/src/Codec/StringCodecTest.php b/tests/src/Codec/StringCodecTest.php index 5812fee..fff341f 100644 --- a/tests/src/Codec/StringCodecTest.php +++ b/tests/src/Codec/StringCodecTest.php @@ -21,6 +21,8 @@ class StringCodecTest extends TestCase private $uuid; /** @var array */ private $fields; + /** @var string */ + private $uuidString = '12345678-1234-abcd-abef-1234abcd4321'; public function setUp() { @@ -55,11 +57,9 @@ class StringCodecTest extends TestCase { $this->uuid->method('getFieldsHex') ->willReturn($this->fields); - $expected = '12345678-1234-abcd-abef-1234abcd4321'; - $codec = new StringCodec($this->builder); $result = $codec->encode($this->uuid); - $this->assertEquals($expected, $result); + $this->assertEquals($this->uuidString, $result); } public function testEncodeBinaryUsesHexadecimalValue()