getMock('Metadata\MetadataFactoryInterface'); $docCommentExtractor = $this->getMockBuilder('Nelmio\ApiDocBundle\Util\DocCommentExtractor') ->disableOriginalConstructor() ->getMock(); $propertyMetadataFoo = new PropertyMetadata('Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested', 'foo'); $propertyMetadataFoo->type = array( 'name' => 'DateTime' ); $propertyMetadataBar = new PropertyMetadata('Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested', 'bar'); $propertyMetadataBar->type = array( 'name' => 'string' ); $propertyMetadataBaz = new PropertyMetadata('Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested', 'baz'); $propertyMetadataBaz->type = array( 'name' => $type, 'params' => array( array( 'name' => 'integer', 'params' => array() ) ) ); $metadata = new ClassMetadata('Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested'); $metadata->addPropertyMetadata($propertyMetadataFoo); $metadata->addPropertyMetadata($propertyMetadataBar); $metadata->addPropertyMetadata($propertyMetadataBaz); $input = new JmsNested(); $metadataFactory->expects($this->once()) ->method('getMetadataForClass') ->with($input) ->will($this->returnValue($metadata)); $jmsMetadataParser = new JmsMetadataParser($metadataFactory, $docCommentExtractor); $output = $jmsMetadataParser->parse($input); $this->assertEquals(array( 'foo' => array( 'dataType' => 'DateTime', 'required' => false, 'description' => 'No description.', 'readonly' => false ), 'bar' => array( 'dataType' => 'string', 'required' => false, 'description' => 'No description.', 'readonly' => false ), 'baz' => array( 'dataType' => 'array of integers', 'required' => false, 'description' => 'No description.', 'readonly' => false ) ), $output); } public function dataTestParserWithNestedType() { return array( array('array'), array('ArrayCollection') ); } }