[JmsMetadataParser] added support for ArrayCollection

This commit is contained in:
Stefano Sala 2013-02-26 19:24:14 +01:00
parent 8522020697
commit f5c938dc02
2 changed files with 14 additions and 3 deletions

View File

@ -162,7 +162,7 @@ class JmsMetadataParser implements ParserInterface
protected function getNestedTypeInArray(PropertyMetadata $item) protected function getNestedTypeInArray(PropertyMetadata $item)
{ {
if (is_array($item->type) 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']) && isset($item->type['params'])
&& 1 === count($item->type['params']) && 1 === count($item->type['params'])
&& isset($item->type['params'][0]['name'])) { && isset($item->type['params'][0]['name'])) {

View File

@ -8,7 +8,10 @@ use JMS\Serializer\Metadata\PropertyMetadata;
class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
{ {
public function testParserWithNestedType() /**
* @dataProvider dataTestParserWithNestedType
*/
public function testParserWithNestedType($type)
{ {
$metadataFactory = $this->getMock('Metadata\MetadataFactoryInterface'); $metadataFactory = $this->getMock('Metadata\MetadataFactoryInterface');
$docCommentExtractor = $this->getMockBuilder('Nelmio\ApiDocBundle\Util\DocCommentExtractor') $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 = new PropertyMetadata('Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested', 'baz');
$propertyMetadataBaz->type = array( $propertyMetadataBaz->type = array(
'name' => 'array', 'name' => $type,
'params' => array( 'params' => array(
array( array(
'name' => 'integer', 'name' => 'integer',
@ -73,4 +76,12 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
) )
), $output); ), $output);
} }
public function dataTestParserWithNestedType()
{
return array(
array('array'),
array('ArrayCollection')
);
}
} }