1
0
mirror of synced 2024-12-14 15:16:04 +03:00
doctrine2/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC656Test.php

82 lines
2.0 KiB
PHP

<?php
namespace Doctrine\Tests\ORM\Functional\Ticket;
use DateTime;
require_once __DIR__ . '/../../../TestInit.php';
class DDC656Test extends \Doctrine\Tests\OrmFunctionalTestCase
{
protected function setUp()
{
parent::setUp();
try {
$this->_schemaTool->createSchema(array(
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC656Entity')
));
} catch(\Exception $e) {
}
}
public function testRecomputeSingleEntityChangeSet_PreservesFieldOrder()
{
$entity = new DDC656Entity();
$entity->setName('test1');
$entity->setType('type1');
$this->_em->persist($entity);
$this->_em->getUnitOfWork()->computeChangeSet($this->_em->getClassMetadata(get_class($entity)), $entity);
$data1 = $this->_em->getUnitOfWork()->getEntityChangeset($entity);
$entity->setType('type2');
$this->_em->getUnitOfWork()->recomputeSingleEntityChangeSet($this->_em->getClassMetadata(get_class($entity)), $entity);
$data2 = $this->_em->getUnitOfWork()->getEntityChangeset($entity);
$this->assertEquals(array_keys($data1), array_keys($data2));
$this->_em->flush();
$this->_em->clear();
$persistedEntity = $this->_em->find(get_class($entity), $entity->specificationId);
$this->assertEquals('type2', $persistedEntity->getType());
$this->assertEquals('test1', $persistedEntity->getName());
}
}
/**
* @Entity
*/
class DDC656Entity
{
/**
* @Column(type="string")
*/
public $name;
/**
* @Column(type="string")
*/
public $type;
/**
* @Id @Column(type="integer") @GeneratedValue
*/
public $specificationId;
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
public function getType() {
return $this->type;
}
public function setType($type) {
$this->type = $type;
}
}