123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- <?php
-
- namespace Doctrine\Tests\ORM\Mapping;
-
- use Doctrine\ORM\Mapping\Driver\Driver;
- use Doctrine\ORM\Mapping\Driver\DriverChain;
-
- require_once __DIR__ . '/../../TestInit.php';
-
- class DriverChainTest extends \Doctrine\Tests\OrmTestCase
- {
- public function testDelegateToMatchingNamespaceDriver()
- {
- $className = 'Doctrine\Tests\ORM\Mapping\DriverChainEntity';
- $classMetadata = new \Doctrine\ORM\Mapping\ClassMetadata($className);
-
- $chain = new DriverChain();
-
- $driver1 = $this->getMock('Doctrine\ORM\Mapping\Driver\Driver');
- $driver1->expects($this->never())
- ->method('loadMetadataForClass');
- $driver1->expectS($this->never())
- ->method('isTransient');
-
- $driver2 = $this->getMock('Doctrine\ORM\Mapping\Driver\Driver');
- $driver2->expects($this->at(0))
- ->method('loadMetadataForClass')
- ->with($this->equalTo($className), $this->equalTo($classMetadata));
- $driver2->expects($this->at(1))
- ->method('isTransient')
- ->with($this->equalTo($className))
- ->will($this->returnValue( true ));
-
- $chain->addDriver($driver1, 'Doctrine\Tests\Models\Company');
- $chain->addDriver($driver2, 'Doctrine\Tests\ORM\Mapping');
-
- $chain->loadMetadataForClass($className, $classMetadata);
-
- $this->assertTrue( $chain->isTransient($className) );
- }
-
- public function testLoadMetadata_NoDelegatorFound_ThrowsMappingException()
- {
- $className = 'Doctrine\Tests\ORM\Mapping\DriverChainEntity';
- $classMetadata = new \Doctrine\ORM\Mapping\ClassMetadata($className);
-
- $chain = new DriverChain();
-
- $this->setExpectedException('Doctrine\ORM\Mapping\MappingException');
- $chain->loadMetadataForClass($className, $classMetadata);
- }
-
- public function testGatherAllClassNames()
- {
- $className = 'Doctrine\Tests\ORM\Mapping\DriverChainEntity';
- $classMetadata = new \Doctrine\ORM\Mapping\ClassMetadata($className);
-
- $chain = new DriverChain();
-
- $driver1 = $this->getMock('Doctrine\ORM\Mapping\Driver\Driver');
- $driver1->expects($this->once())
- ->method('getAllClassNames')
- ->will($this->returnValue(array('Doctrine\Tests\Models\Company\Foo')));
-
- $driver2 = $this->getMock('Doctrine\ORM\Mapping\Driver\Driver');
- $driver2->expects($this->once())
- ->method('getAllClassNames')
- ->will($this->returnValue(array('Doctrine\Tests\ORM\Mapping\Bar', 'Doctrine\Tests\ORM\Mapping\Baz', 'FooBarBaz')));
-
- $chain->addDriver($driver1, 'Doctrine\Tests\Models\Company');
- $chain->addDriver($driver2, 'Doctrine\Tests\ORM\Mapping');
-
- $this->assertEquals(array(
- 'Doctrine\Tests\Models\Company\Foo',
- 'Doctrine\Tests\ORM\Mapping\Bar',
- 'Doctrine\Tests\ORM\Mapping\Baz'
- ), $chain->getAllClassNames());
- }
-
- /**
- * @group DDC-706
- */
- public function testIsTransient()
- {
- $chain = new DriverChain();
- $chain->addDriver($this->createAnnotationDriver(), 'Doctrine\Tests\Models\CMS');
-
- $this->assertTrue($chain->isTransient('stdClass'), "stdClass isTransient");
- $this->assertFalse($chain->isTransient('Doctrine\Tests\Models\CMS\CmsUser'), "CmsUser is not Transient");
- }
- }
-
- class DriverChainEntity
- {
-
- }
|