X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;f=vendor%2Fdoctrine%2Form%2Ftests%2FDoctrine%2FTests%2FORM%2FFunctional%2FDefaultValuesTest.php;fp=vendor%2Fdoctrine%2Form%2Ftests%2FDoctrine%2FTests%2FORM%2FFunctional%2FDefaultValuesTest.php;h=11511a0793f2cdfe525ca55aa6da61a5ec3d5c39;hb=8b04b2d11798dee4f3e1358e4f43e97a6df851f6;hp=0000000000000000000000000000000000000000;hpb=73568cf05a785a45f94ca3f2351d9e07bf917958;p=zf2.biz%2Fgalerie.git diff --git a/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Functional/DefaultValuesTest.php b/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Functional/DefaultValuesTest.php new file mode 100644 index 0000000..11511a0 --- /dev/null +++ b/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Functional/DefaultValuesTest.php @@ -0,0 +1,150 @@ +_schemaTool->createSchema(array( + $this->_em->getClassMetadata('Doctrine\Tests\ORM\Functional\DefaultValueUser'), + $this->_em->getClassMetadata('Doctrine\Tests\ORM\Functional\DefaultValueAddress') + )); + } catch (\Exception $e) { + // Swallow all exceptions. We do not test the schema tool here. + } + } + + public function testSimpleDetachMerge() { + $user = new DefaultValueUser; + $user->name = 'romanb'; + $this->_em->persist($user); + $this->_em->flush(); + $this->_em->clear(); + + $userId = $user->id; // e.g. from $_REQUEST + $user2 = $this->_em->getReference(get_class($user), $userId); + + $this->_em->flush(); + $this->assertFalse($user2->__isInitialized__); + + $a = new DefaultValueAddress; + $a->country = 'de'; + $a->zip = '12345'; + $a->city = 'Berlin'; + $a->street = 'Sesamestreet'; + + $a->user = $user2; + $this->_em->persist($a); + $this->_em->flush(); + + $this->assertFalse($user2->__isInitialized__); + $this->_em->clear(); + + $a2 = $this->_em->find(get_class($a), $a->id); + $this->assertInstanceOf('Doctrine\Tests\ORM\Functional\DefaultValueUser', $a2->getUser()); + $this->assertEquals($userId, $a2->getUser()->getId()); + $this->assertEquals('Poweruser', $a2->getUser()->type); + } + + /** + * @group DDC-1386 + */ + public function testGetPartialReferenceWithDefaultValueNotEvalutedInFlush() + { + $user = new DefaultValueUser; + $user->name = 'romanb'; + $user->type = 'Normaluser'; + + $this->_em->persist($user); + $this->_em->flush(); + $this->_em->clear(); + + $user = $this->_em->getPartialReference('Doctrine\Tests\ORM\Functional\DefaultValueUser', $user->id); + $this->assertTrue($this->_em->getUnitOfWork()->isReadOnly($user)); + + $this->_em->flush(); + $this->_em->clear(); + + $user = $this->_em->find('Doctrine\Tests\ORM\Functional\DefaultValueUser', $user->id); + + $this->assertEquals('Normaluser', $user->type); + } +} + + +/** + * @Entity @Table(name="defaultvalueuser") + */ +class DefaultValueUser +{ + /** + * @Id @Column(type="integer") + * @GeneratedValue(strategy="AUTO") + */ + public $id; + /** + * @Column(type="string") + */ + public $name = ''; + /** + * @Column(type="string") + */ + public $type = 'Poweruser'; + /** + * @OneToOne(targetEntity="DefaultValueAddress", mappedBy="user", cascade={"persist"}) + */ + public $address; + + public function getId() {return $this->id;} +} + +/** + * CmsAddress + * + * @Entity @Table(name="defaultvalueaddresses") + */ +class DefaultValueAddress +{ + /** + * @Column(type="integer") + * @Id @GeneratedValue(strategy="AUTO") + */ + public $id; + + /** + * @Column(type="string", length=50) + */ + public $country; + + /** + * @Column(type="string", length=50) + */ + public $zip; + + /** + * @Column(type="string", length=50) + */ + public $city; + + /** + * Testfield for Schema Updating Tests. + */ + public $street; + + /** + * @OneToOne(targetEntity="DefaultValueUser") + * @JoinColumn(name="user_id", referencedColumnName="id") + */ + public $user; + + public function getUser() {return $this->user;} +}