MongoBinDataTest.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace Alcaeus\MongoDbAdapter\Tests\Mongo;
  3. use Alcaeus\MongoDbAdapter\Tests\TestCase;
  4. use Alcaeus\MongoDbAdapter\TypeInterface;
  5. /**
  6. * @author alcaeus <alcaeus@alcaeus.org>
  7. */
  8. class MongoBinDataTest extends TestCase
  9. {
  10. const GUID = '0123456789abcdef';
  11. public function testCreate()
  12. {
  13. $bin = new \MongoBinData(self::GUID, \MongoBinData::FUNC);
  14. $this->assertAttributeSame(self::GUID, 'bin', $bin);
  15. $this->assertAttributeSame(\MongoBinData::FUNC, 'type', $bin);
  16. $this->assertSame('<Mongo Binary Data>', (string) $bin);
  17. return $bin;
  18. }
  19. /**
  20. * @depends testCreate
  21. */
  22. public function testConvertToBson(\MongoBinData $bin)
  23. {
  24. $this->skipTestUnless($bin instanceof TypeInterface);
  25. $bsonBinary = $bin->toBSONType();
  26. $this->assertInstanceOf('MongoDB\BSON\Binary', $bsonBinary);
  27. $this->assertSame(self::GUID, $bsonBinary->getData());
  28. $this->assertSame(\MongoDB\BSON\Binary::TYPE_FUNCTION, $bsonBinary->getType());
  29. }
  30. public function testCreateWithBsonBinary()
  31. {
  32. $this->skipTestUnless(in_array(TypeInterface::class, class_implements('MongoBinData')));
  33. $bsonBinary = new \MongoDB\BSON\Binary(self::GUID, \MongoDB\BSON\Binary::TYPE_UUID);
  34. $bin = new \MongoBinData($bsonBinary);
  35. $this->assertAttributeSame(self::GUID, 'bin', $bin);
  36. $this->assertAttributeSame(\MongoBinData::UUID_RFC4122, 'type', $bin);
  37. }
  38. }