BaseDriverTest.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace JMS\SerializerBundle\Tests\Metadata\Driver;
  3. use JMS\SerializerBundle\Metadata\PropertyMetadata;
  4. use JMS\SerializerBundle\Metadata\ClassMetadata;
  5. abstract class BaseDriverTest extends \PHPUnit_Framework_TestCase
  6. {
  7. public function testLoadBlogPostMetadata()
  8. {
  9. $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\SerializerBundle\Tests\Fixtures\BlogPost'));
  10. $this->assertNotNull($m);
  11. $this->assertEquals('blog-post', $m->xmlRootName);
  12. $p = new PropertyMetadata($m->name, 'title');
  13. $p->type = 'string';
  14. $this->assertEquals($p, $m->propertyMetadata['title']);
  15. $p = new PropertyMetadata($m->name, 'createdAt');
  16. $p->type = 'DateTime';
  17. $p->xmlAttribute = true;
  18. $this->assertEquals($p, $m->propertyMetadata['createdAt']);
  19. $p = new PropertyMetadata($m->name, 'published');
  20. $p->type = 'boolean';
  21. $p->serializedName = 'is_published';
  22. $p->xmlAttribute = true;
  23. $this->assertEquals($p, $m->propertyMetadata['published']);
  24. $p = new PropertyMetadata($m->name, 'comments');
  25. $p->type = 'ArrayCollection<JMS\SerializerBundle\Tests\Fixtures\Comment>';
  26. $p->xmlCollection = true;
  27. $p->xmlCollectionInline = true;
  28. $p->xmlEntryName = 'comment';
  29. $this->assertEquals($p, $m->propertyMetadata['comments']);
  30. $p = new PropertyMetadata($m->name, 'author');
  31. $p->type = 'JMS\SerializerBundle\Tests\Fixtures\Author';
  32. $this->assertEquals($p, $m->propertyMetadata['author']);
  33. $m = $this->getDriver()->loadMetadataForClass(new \ReflectionClass('JMS\SerializerBundle\Tests\Fixtures\Price'));
  34. $this->assertNotNull($m);
  35. $p = new PropertyMetadata($m->name, 'price');
  36. $p->type = 'double';
  37. $p->xmlValue = true;
  38. $this->assertEquals($p, $m->propertyMetadata['price']);
  39. }
  40. abstract protected function getDriver();
  41. }