3 namespace Doctrine\Tests\ORM\Functional;
5 require_once __DIR__ . '/../../TestInit.php';
8 * Tests basic operations on entities with default values.
12 class DefaultValuesTest extends \Doctrine\Tests\OrmFunctionalTestCase
14 protected function setUp() {
17 $this->_schemaTool->createSchema(array(
18 $this->_em->getClassMetadata('Doctrine\Tests\ORM\Functional\DefaultValueUser'),
19 $this->_em->getClassMetadata('Doctrine\Tests\ORM\Functional\DefaultValueAddress')
21 } catch (\Exception $e) {
22 // Swallow all exceptions. We do not test the schema tool here.
26 public function testSimpleDetachMerge() {
27 $user = new DefaultValueUser;
28 $user->name = 'romanb';
29 $this->_em->persist($user);
33 $userId = $user->id; // e.g. from $_REQUEST
34 $user2 = $this->_em->getReference(get_class($user), $userId);
37 $this->assertFalse($user2->__isInitialized__);
39 $a = new DefaultValueAddress;
43 $a->street = 'Sesamestreet';
46 $this->_em->persist($a);
49 $this->assertFalse($user2->__isInitialized__);
52 $a2 = $this->_em->find(get_class($a), $a->id);
53 $this->assertInstanceOf('Doctrine\Tests\ORM\Functional\DefaultValueUser', $a2->getUser());
54 $this->assertEquals($userId, $a2->getUser()->getId());
55 $this->assertEquals('Poweruser', $a2->getUser()->type);
61 public function testGetPartialReferenceWithDefaultValueNotEvalutedInFlush()
63 $user = new DefaultValueUser;
64 $user->name = 'romanb';
65 $user->type = 'Normaluser';
67 $this->_em->persist($user);
71 $user = $this->_em->getPartialReference('Doctrine\Tests\ORM\Functional\DefaultValueUser', $user->id);
72 $this->assertTrue($this->_em->getUnitOfWork()->isReadOnly($user));
77 $user = $this->_em->find('Doctrine\Tests\ORM\Functional\DefaultValueUser', $user->id);
79 $this->assertEquals('Normaluser', $user->type);
85 * @Entity @Table(name="defaultvalueuser")
87 class DefaultValueUser
90 * @Id @Column(type="integer")
91 * @GeneratedValue(strategy="AUTO")
95 * @Column(type="string")
99 * @Column(type="string")
101 public $type = 'Poweruser';
103 * @OneToOne(targetEntity="DefaultValueAddress", mappedBy="user", cascade={"persist"})
107 public function getId() {return $this->id;}
113 * @Entity @Table(name="defaultvalueaddresses")
115 class DefaultValueAddress
118 * @Column(type="integer")
119 * @Id @GeneratedValue(strategy="AUTO")
124 * @Column(type="string", length=50)
129 * @Column(type="string", length=50)
134 * @Column(type="string", length=50)
139 * Testfield for Schema Updating Tests.
144 * @OneToOne(targetEntity="DefaultValueUser")
145 * @JoinColumn(name="user_id", referencedColumnName="id")
149 public function getUser() {return $this->user;}