BaseDriverTest.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. }
  34. abstract protected function getDriver();
  35. }