public function testParserWithVersion()
 {
     $metadataFactory = $this->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' => 'string');
     $propertyMetadataBar = new PropertyMetadata('Nelmio\\ApiDocBundle\\Tests\\Fixtures\\Model\\JmsNested', 'bar');
     $propertyMetadataBar->type = array('name' => 'string');
     $propertyMetadataBar->sinceVersion = '2.0';
     $propertyMetadataBaz = new PropertyMetadata('Nelmio\\ApiDocBundle\\Tests\\Fixtures\\Model\\JmsNested', 'baz');
     $propertyMetadataBaz->type = array('name' => 'string');
     $propertyMetadataBaz->untilVersion = '3.0';
     $input = 'Nelmio\\ApiDocBundle\\Tests\\Fixtures\\Model\\JmsNested';
     $metadata = new ClassMetadata($input);
     $metadata->addPropertyMetadata($propertyMetadataFoo);
     $metadata->addPropertyMetadata($propertyMetadataBar);
     $metadata->addPropertyMetadata($propertyMetadataBaz);
     $metadataFactory->expects($this->any())->method('getMetadataForClass')->with($input)->will($this->returnValue($metadata));
     $propertyNamingStrategy = new CamelCaseNamingStrategy();
     $jmsMetadataParser = new JmsMetadataParser($metadataFactory, $propertyNamingStrategy, $docCommentExtractor);
     // No group specified.
     $output = $jmsMetadataParser->parse(array('class' => $input, 'groups' => array()));
     $this->assertEquals(array('foo' => array('dataType' => 'string', 'required' => false, 'description' => null, 'readonly' => false, 'sinceVersion' => null, 'untilVersion' => null), 'bar' => array('dataType' => 'string', 'required' => false, 'description' => null, 'readonly' => false, 'sinceVersion' => '2.0', 'untilVersion' => null), 'baz' => array('dataType' => 'string', 'required' => false, 'description' => null, 'readonly' => false, 'sinceVersion' => null, 'untilVersion' => '3.0')), $output);
 }
Example #2
0
 public function testParserWithInline()
 {
     $metadataFactory = $this->getMock('Metadata\\MetadataFactoryInterface');
     $docCommentExtractor = $this->getMockBuilder('Nelmio\\ApiDocBundle\\Util\\DocCommentExtractor')->disableOriginalConstructor()->getMock();
     $propertyMetadataFoo = new PropertyMetadata('Nelmio\\ApiDocBundle\\Tests\\Fixtures\\Model\\JmsInline', 'foo');
     $propertyMetadataFoo->type = array('name' => 'string');
     $propertyMetadataInline = new PropertyMetadata('Nelmio\\ApiDocBundle\\Tests\\Fixtures\\Model\\JmsInline', 'inline');
     $propertyMetadataInline->type = array('name' => 'Nelmio\\ApiDocBundle\\Tests\\Fixtures\\Model\\JmsTest');
     $propertyMetadataInline->inline = true;
     $input = 'Nelmio\\ApiDocBundle\\Tests\\Fixtures\\Model\\JmsInline';
     $metadata = new ClassMetadata($input);
     $metadata->addPropertyMetadata($propertyMetadataFoo);
     $metadata->addPropertyMetadata($propertyMetadataInline);
     $propertyMetadataBar = new PropertyMetadata('Nelmio\\ApiDocBundle\\Tests\\Fixtures\\Model\\JmsTest', 'bar');
     $propertyMetadataBar->type = array('name' => 'string');
     $subInput = 'Nelmio\\ApiDocBundle\\Tests\\Fixtures\\Model\\JmsTest';
     $subMetadata = new ClassMetadata($subInput);
     $subMetadata->addPropertyMetadata($propertyMetadataBar);
     $metadataFactory->expects($this->at(0))->method('getMetadataForClass')->with($input)->will($this->returnValue($metadata));
     $metadataFactory->expects($this->at(1))->method('getMetadataForClass')->with($subInput)->will($this->returnValue($subMetadata));
     $metadataFactory->expects($this->at(2))->method('getMetadataForClass')->with($subInput)->will($this->returnValue($subMetadata));
     $propertyNamingStrategy = new CamelCaseNamingStrategy();
     $jmsMetadataParser = new JmsMetadataParser($metadataFactory, $propertyNamingStrategy, $docCommentExtractor);
     $output = $jmsMetadataParser->parse(array('class' => $input, 'groups' => array()));
     $this->assertEquals(array('foo' => array('dataType' => 'string', 'actualType' => DataTypes::STRING, 'subType' => null, 'default' => null, 'required' => false, 'description' => null, 'readonly' => false, 'sinceVersion' => null, 'untilVersion' => null), 'bar' => array('dataType' => 'string', 'actualType' => DataTypes::STRING, 'subType' => null, 'default' => null, 'required' => false, 'description' => null, 'readonly' => false, 'sinceVersion' => null, 'untilVersion' => null)), $output);
 }