From f5c938dc02dfcf1ca6353bc5cf99f60789b71b02 Mon Sep 17 00:00:00 2001 From: Stefano Sala Date: Tue, 26 Feb 2013 19:24:14 +0100 Subject: [PATCH] [JmsMetadataParser] added support for ArrayCollection --- Parser/JmsMetadataParser.php | 2 +- Tests/Parser/JmsMetadataParserTest.php | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Parser/JmsMetadataParser.php b/Parser/JmsMetadataParser.php index 9f0dc05..0753501 100644 --- a/Parser/JmsMetadataParser.php +++ b/Parser/JmsMetadataParser.php @@ -162,7 +162,7 @@ class JmsMetadataParser implements ParserInterface protected function getNestedTypeInArray(PropertyMetadata $item) { if (is_array($item->type) - && in_array($item->type['name'], array('array')) // We have to support ArrayCollection as well + && in_array($item->type['name'], array('array', 'ArrayCollection')) && isset($item->type['params']) && 1 === count($item->type['params']) && isset($item->type['params'][0]['name'])) { diff --git a/Tests/Parser/JmsMetadataParserTest.php b/Tests/Parser/JmsMetadataParserTest.php index 88050a9..53cb5bb 100644 --- a/Tests/Parser/JmsMetadataParserTest.php +++ b/Tests/Parser/JmsMetadataParserTest.php @@ -8,7 +8,10 @@ use JMS\Serializer\Metadata\PropertyMetadata; class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase { - public function testParserWithNestedType() + /** + * @dataProvider dataTestParserWithNestedType + */ + public function testParserWithNestedType($type) { $metadataFactory = $this->getMock('Metadata\MetadataFactoryInterface'); $docCommentExtractor = $this->getMockBuilder('Nelmio\ApiDocBundle\Util\DocCommentExtractor') @@ -27,7 +30,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase $propertyMetadataBaz = new PropertyMetadata('Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested', 'baz'); $propertyMetadataBaz->type = array( - 'name' => 'array', + 'name' => $type, 'params' => array( array( 'name' => 'integer', @@ -73,4 +76,12 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase ) ), $output); } + + public function dataTestParserWithNestedType() + { + return array( + array('array'), + array('ArrayCollection') + ); + } } \ No newline at end of file