Merge pull request #143 from stewe/feature-array-collection

[JmsMetadataParser] added support for ArrayCollection
This commit is contained in:
Jordi Boggiano 2013-02-27 06:17:00 -08:00
commit b50f3ca185
2 changed files with 14 additions and 3 deletions

View File

@ -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'])) {

View File

@ -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')
);
}
}