diff --git a/tests/Fixtures/TestBundle/Document/Vector.php b/tests/Fixtures/TestBundle/Document/Vector.php new file mode 100644 index 0000000..9f1e9a7 --- /dev/null +++ b/tests/Fixtures/TestBundle/Document/Vector.php @@ -0,0 +1,46 @@ +array = $array ?? []; + $this->position = 0; + } + + public function getArray(): array + { + return $this->array; + } + + public function current(): mixed + { + return $this->array[$this->key()]; + } + + public function key(): mixed + { + return $this->position; + } + + public function next(): void + { + ++$this->position; + } + + public function rewind(): void + { + $this->position = 0; + } + + public function valid(): bool + { + return isset($this->array[$this->key()]); + } +} diff --git a/tests/SerializerTest.php b/tests/SerializerTest.php index a3aa259..84c159b 100644 --- a/tests/SerializerTest.php +++ b/tests/SerializerTest.php @@ -16,6 +16,7 @@ use Dunglas\DoctrineJsonOdm\Tests\Fixtures\TestBundle\Document\Bar; use Dunglas\DoctrineJsonOdm\Tests\Fixtures\TestBundle\Document\Baz; use Dunglas\DoctrineJsonOdm\Tests\Fixtures\TestBundle\Document\ScalarValue; +use Dunglas\DoctrineJsonOdm\Tests\Fixtures\TestBundle\Document\Vector; use Dunglas\DoctrineJsonOdm\Tests\Fixtures\TestBundle\Document\WithMappedType; use Dunglas\DoctrineJsonOdm\Tests\Fixtures\TestBundle\Entity\Foo; use Dunglas\DoctrineJsonOdm\Tests\Fixtures\TestBundle\Enum\InputMode; @@ -223,4 +224,16 @@ public function testSerializeEnum(): void $this->assertEquals($value, $restoredValue); } + + public function testIterable(): void + { + $serializer = self::$kernel->getContainer()->get('dunglas_doctrine_json_odm.serializer'); + + $vector = new Vector([1,2,3,4,5]); + + $data = $serializer->serialize($vector, 'json'); + $restoredVector = $serializer->deserialize($data, '', 'json'); + + $this->assertEquals($vector, $restoredVector); + } }