Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / orm / tests / Doctrine / Tests / ORM / Functional / Ticket / DDC1181Test.php
diff --git a/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1181Test.php b/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC1181Test.php
new file mode 100644 (file)
index 0000000..32856ac
--- /dev/null
@@ -0,0 +1,101 @@
+<?php
+
+namespace Doctrine\Tests\ORM\Functional\Ticket;
+
+require_once __DIR__ . '/../../../TestInit.php';
+
+class DDC1181Test extends \Doctrine\Tests\OrmFunctionalTestCase
+{
+    public function setUp()
+    {
+        parent::setUp();
+        $this->_schemaTool->createSchema(array(
+            $this->_em->getClassMetadata(__NAMESPACE__ . '\\DDC1181Hotel'),
+            $this->_em->getClassMetadata(__NAMESPACE__ . '\\DDC1181Booking'),
+            $this->_em->getClassMetadata(__NAMESPACE__ . '\\DDC1181Room'),
+        ));
+    }
+
+    /**
+     * @group DDC-1181
+     */
+    public function testIssue()
+    {
+        $hotel = new DDC1181Hotel();
+        $room1 = new DDC1181Room();
+        $room2 = new DDC1181Room();
+
+        $this->_em->persist($hotel);
+        $this->_em->persist($room1);
+        $this->_em->persist($room2);
+        $this->_em->flush();
+
+        $booking1 = new DDC1181Booking;
+        $booking1->hotel = $hotel;
+        $booking1->room = $room1;
+        $booking2 = new DDC1181Booking;
+        $booking2->hotel = $hotel;
+        $booking2->room = $room2;
+        $hotel->bookings[] = $booking1;
+        $hotel->bookings[] = $booking2;
+
+        $this->_em->persist($booking1);
+        $this->_em->persist($booking2);
+        $this->_em->flush();
+
+        $this->_em->remove($hotel);
+        $this->_em->flush();
+    }
+}
+
+/**
+ * @Entity
+ */
+class DDC1181Hotel
+{
+    /** @Id @Column(type="integer") @GeneratedValue */
+    public $id;
+
+    /**
+     * @oneToMany(targetEntity="DDC1181Booking", mappedBy="hotel", cascade={"remove"})
+     * @var Booking[]
+     */
+    public $bookings;
+
+}
+
+/**
+ * @Entity
+ */
+class DDC1181Booking
+{
+    /**
+     * @var Hotel
+     *
+     * @Id
+     * @ManyToOne(targetEntity="DDC1181Hotel", inversedBy="bookings")
+     * @JoinColumns({
+     *   @JoinColumn(name="hotel_id", referencedColumnName="id")
+     * })
+     */
+    public $hotel;
+    /**
+     * @var Room
+     *
+     * @Id
+     * @ManyToOne(targetEntity="DDC1181Room")
+     * @JoinColumns({
+     *   @JoinColumn(name="room_id", referencedColumnName="id")
+     * })
+     */
+    public $room;
+}
+
+/**
+ * @Entity
+ */
+class DDC1181Room
+{
+    /** @Id @Column(type="integer") @GeneratedValue */
+    public $id;
+}
\ No newline at end of file