From 87e8bccb11c32e35d02a47ae2a6116b9baced5f5 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Mon, 21 Aug 2017 19:58:52 +0200 Subject: [PATCH] #1521 DDC-2922 removed redundant integration test that was replaced by a unit test --- .../ORM/Functional/Ticket/DDC2922Test.php | 136 ------------------ 1 file changed, 136 deletions(-) delete mode 100644 tests/Doctrine/Tests/ORM/Functional/Ticket/DDC2922Test.php diff --git a/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC2922Test.php b/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC2922Test.php deleted file mode 100644 index b1aa6c0da..000000000 --- a/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC2922Test.php +++ /dev/null @@ -1,136 +0,0 @@ -_schemaTool->createSchema(array_map( - function (string $className) : ClassMetadata { - return $this->_em->getClassMetadata($className); - }, - [ - DDC2922CascadePersistedEntity::class, - DDC2922EntityWithCascadingAssociation::class, - DDC2922EntityWithNonCascadingAssociation::class, - ] - )); - } catch (ToolsException $ignored) { - } - } - - /** - * Unlike next test, this one demonstrates that the problem does - * not necessarily reproduce if all the pieces are being flushed together. - * - * @group DDC-2922 - */ - public function testNewAssociatedEntityWorksWithJustOnePath__() - { - $cascadePersisted = new DDC2922CascadePersistedEntity(); - $cascading = new DDC2922EntityWithCascadingAssociation(); - $nonCascading = new DDC2922EntityWithNonCascadingAssociation(); - - // First we persist and flush a DDC2922EntityWithCascadingAssociation with - // the cascading association not set. Having the "cascading path" involve - // a non-new object is important to show that the ORM should be considering - // cascades across entity changesets in subsequent flushes. - $cascading->cascaded = $cascadePersisted; - $nonCascading->cascaded = $cascadePersisted; - - $this->_em->persist($cascading); - $this->_em->persist($nonCascading); - $this->_em->flush(); - - // @TODO assert persistence on both associations - } - - - /** - * This test exhibits the bug describe in the ticket, where an object that - * ought to be reachable causes errors. - * - * @group DDC-2922 - */ - public function testNewAssociatedEntityWorksWithJustOnePath_() - { - $cascadePersisted = new DDC2922CascadePersistedEntity(); - $cascading = new DDC2922EntityWithCascadingAssociation(); - $nonCascading = new DDC2922EntityWithNonCascadingAssociation(); - - // First we persist and flush a DDC2922EntityWithCascadingAssociation with - // the cascading association not set. Having the "cascading path" involve - // a non-new object is important to show that the ORM should be considering - // cascades across entity changesets in subsequent flushes. - $cascading->cascaded = null; - - $this->_em->persist($cascading); - $this->_em->flush(); - - // Note that we have NOT directly persisted the DDC2922CascadePersistedEntity, - // and DDC2922EntityWithNonCascadingAssociation does NOT have a configured - // cascade-persist. - $nonCascading->nonCascaded = $cascadePersisted; - - // However, DDC2922EntityWithCascadingAssociation *does* have a cascade-persist - // association, which ought to allow us to save the DDC2922CascadePersistedEntity - // anyway through that connection. - $cascading->cascaded = $cascadePersisted; - - $this->_em->persist($nonCascading); - $this->_em->flush(); - - // @TODO assert persistence on both associations - } -} - -/** @Entity */ -class DDC2922CascadePersistedEntity -{ - /** @Id @Column(type="string") @GeneratedValue(strategy="NONE") */ - private $id; - - public function __construct() - { - $this->id = uniqid(self::class, true); - } -} - -/** @Entity */ -class DDC2922EntityWithCascadingAssociation -{ - /** @Id @Column(type="string") @GeneratedValue(strategy="NONE") */ - private $id; - - /** @ManyToOne(targetEntity=DDC2922CascadePersistedEntity::class, cascade={"persist"}) */ - public $cascaded; - - public function __construct() - { - $this->id = uniqid(self::class, true); - } -} - -/** @Entity */ -class DDC2922EntityWithNonCascadingAssociation -{ - /** @Id @Column(type="string") @GeneratedValue(strategy="NONE") */ - private $id; - - /** @ManyToOne(targetEntity=DDC2922CascadePersistedEntity::class) */ - public $nonCascaded; - - public function __construct() - { - $this->id = uniqid(self::class, true); - } -}