diff --git a/tests/Parser/Popo/ArrayInArray.php b/tests/Parser/Popo/ArrayInArray.php new file mode 100644 index 0000000..8258a1d --- /dev/null +++ b/tests/Parser/Popo/ArrayInArray.php @@ -0,0 +1,11 @@ +> + */ + public array $items; +} diff --git a/tests/Parser/PopoTest.php b/tests/Parser/PopoTest.php index 482caf5..269462d 100644 --- a/tests/Parser/PopoTest.php +++ b/tests/Parser/PopoTest.php @@ -21,8 +21,12 @@ namespace PSX\Schema\Tests\Parser; use PSX\Schema\Parser; +use PSX\Schema\Tests\Parser\Popo\ArrayInArray; use PSX\Schema\Tests\Parser\Popo\Form_Container; use PSX\Schema\Tests\Parser\Popo\Form_Element; +use PSX\Schema\Type\ArrayPropertyType; +use PSX\Schema\Type\NumberPropertyType; +use PSX\Schema\Type\StructDefinitionType; /** * PopoTest @@ -48,4 +52,20 @@ public function testDiscriminator() $this->assertDiscriminator($schema); } + + public function testArrayInArray() + { + $parser = new Parser\Popo(); + $schema = $parser->parse(ArrayInArray::class); + + $object = $schema->getDefinitions()->getType($schema->getRoot()); + $this->assertInstanceOf(StructDefinitionType::class, $object); + + $items = $object->getProperty('items'); + $this->assertInstanceOf(ArrayPropertyType::class, $items); + + $array = $items->getSchema(); + $this->assertInstanceOf(ArrayPropertyType::class, $array); + $this->assertInstanceOf(NumberPropertyType::class, $array->getSchema()); + } }