3 namespace Doctrine\Tests\ORM\Functional\Ticket;
5 use Doctrine\Tests\Models\Company\CompanyEmployee;
7 require_once __DIR__ . '/../../../TestInit.php';
9 class DDC168Test extends \Doctrine\Tests\OrmFunctionalTestCase
11 protected $oldMetadata;
13 protected function setUp() {
14 $this->useModelSet('company');
17 $this->oldMetadata = $this->_em->getClassMetadata('Doctrine\Tests\Models\Company\CompanyEmployee');
19 $metadata = clone $this->oldMetadata;
20 ksort($metadata->reflFields);
21 $this->_em->getMetadataFactory()->setMetadataFor('Doctrine\Tests\Models\Company\CompanyEmployee', $metadata);
24 public function tearDown()
26 $this->_em->getMetadataFactory()->setMetadataFor('Doctrine\Tests\Models\Company\CompanyEmployee', $this->oldMetadata);
33 public function testJoinedSubclassPersisterRequiresSpecificOrderOfMetadataReflFieldsArray()
35 //$this->_em->getConnection()->getConfiguration()->setSQLLogger(new \Doctrine\DBAL\Logging\EchoSQLLogger);
37 $spouse = new CompanyEmployee;
38 $spouse->setName("Blub");
39 $spouse->setDepartment("Accounting");
40 $spouse->setSalary(500);
42 $employee = new CompanyEmployee;
43 $employee->setName("Foo");
44 $employee->setDepartment("bar");
45 $employee->setSalary(1000);
46 $employee->setSpouse($spouse);
48 $this->_em->persist($spouse);
49 $this->_em->persist($employee);
54 $q = $this->_em->createQuery("SELECT e FROM Doctrine\Tests\Models\Company\CompanyEmployee e WHERE e.name = ?1");
55 $q->setParameter(1, "Foo");
56 $theEmployee = $q->getSingleResult();
58 $this->assertEquals("bar", $theEmployee->getDepartment());
59 $this->assertEquals("Foo", $theEmployee->getName());
60 $this->assertEquals(1000, $theEmployee->getSalary());
61 $this->assertInstanceOf('Doctrine\Tests\Models\Company\CompanyEmployee', $theEmployee);
62 $this->assertInstanceOf('Doctrine\Tests\Models\Company\CompanyEmployee', $theEmployee->getSpouse());