ClassMetadataTest.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace JMS\SerializerBundle\Tests\Metadata;
  3. use JMS\SerializerBundle\Metadata\PropertyMetadata;
  4. use JMS\SerializerBundle\Metadata\ClassMetadata;
  5. class ClassMetadataTest extends \PHPUnit_Framework_TestCase
  6. {
  7. public function testSetAccessorOrder()
  8. {
  9. $metadata = new ClassMetadata('JMS\SerializerBundle\Tests\Metadata\PropertyMetadataOrder');
  10. $metadata->addPropertyMetadata(new PropertyMetadata('JMS\SerializerBundle\Tests\Metadata\PropertyMetadataOrder', 'b'));
  11. $metadata->addPropertyMetadata(new PropertyMetadata('JMS\SerializerBundle\Tests\Metadata\PropertyMetadataOrder', 'a'));
  12. $this->assertEquals(array('b', 'a'), array_keys($metadata->propertyMetadata));
  13. $metadata->setAccessorOrder(ClassMetadata::ACCESSOR_ORDER_ALPHABETICAL);
  14. $this->assertEquals(array('a', 'b'), array_keys($metadata->propertyMetadata));
  15. $metadata->setAccessorOrder(ClassMetadata::ACCESSOR_ORDER_CUSTOM, array('b', 'a'));
  16. $this->assertEquals(array('b', 'a'), array_keys($metadata->propertyMetadata));
  17. $metadata->setAccessorOrder(ClassMetadata::ACCESSOR_ORDER_CUSTOM, array('a', 'b'));
  18. $this->assertEquals(array('a', 'b'), array_keys($metadata->propertyMetadata));
  19. $metadata->setAccessorOrder(ClassMetadata::ACCESSOR_ORDER_CUSTOM, array('b'));
  20. $this->assertEquals(array('b', 'a'), array_keys($metadata->propertyMetadata));
  21. $metadata->setAccessorOrder(ClassMetadata::ACCESSOR_ORDER_CUSTOM, array('a'));
  22. $this->assertEquals(array('a', 'b'), array_keys($metadata->propertyMetadata));
  23. $metadata->setAccessorOrder(ClassMetadata::ACCESSOR_ORDER_CUSTOM, array('foo', 'bar'));
  24. $this->assertEquals(array('b', 'a'), array_keys($metadata->propertyMetadata));
  25. }
  26. }
  27. class PropertyMetadataOrder
  28. {
  29. private $b, $a;
  30. }