MergeableClassMetadataTest.php 1.4KB

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace Metadata\Tests;
  3. use Metadata\MergeableClassMetadata;
  4. use Metadata\ClassMetadata;
  5. class MergeableClassMetadataTest extends \PHPUnit_Framework_TestCase
  6. {
  7. public function testMerge()
  8. {
  9. $parentMetadata = new MergeableClassMetadata('Metadata\Tests\Fixtures\TestParent');
  10. $parentMetadata->propertyMetadata['foo'] = 'bar';
  11. $parentMetadata->propertyMetadata['baz'] = 'baz';
  12. $parentMetadata->methodMetadata['foo'] = 'bar';
  13. $parentMetadata->createdAt = 2;
  14. $parentMetadata->fileResources[] = 'foo';
  15. $childMetadata = new MergeableClassMetadata('Metadata\Tests\Fixtures\TestObject');
  16. $childMetadata->propertyMetadata['foo'] = 'baz';
  17. $childMetadata->methodMetadata['foo'] = 'baz';
  18. $childMetadata->createdAt = 1;
  19. $childMetadata->fileResources[] = 'bar';
  20. $parentMetadata->merge($childMetadata);
  21. $this->assertEquals('Metadata\Tests\Fixtures\TestObject', $parentMetadata->name);
  22. $this->assertEquals('Metadata\Tests\Fixtures\TestObject', $parentMetadata->reflection->getName());
  23. $this->assertEquals(array('foo' => 'baz', 'baz' => 'baz',), $parentMetadata->propertyMetadata);
  24. $this->assertEquals(array('foo' => 'baz',), $parentMetadata->methodMetadata);
  25. $this->assertEquals(1, $parentMetadata->createdAt);
  26. $this->assertEquals(array('foo', 'bar'), $parentMetadata->fileResources);
  27. }
  28. }