2011-05-14 15:32:12 +04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Doctrine\Tests\ORM\Functional\Ticket;
|
|
|
|
|
|
|
|
require_once __DIR__ . '/../../../TestInit.php';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @group DDC-1080
|
|
|
|
*/
|
|
|
|
class DDC1080Test extends \Doctrine\Tests\OrmFunctionalTestCase
|
|
|
|
{
|
|
|
|
public function testHydration()
|
|
|
|
{
|
|
|
|
$this->_schemaTool->createSchema(array(
|
|
|
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1080Foo'),
|
|
|
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1080Bar'),
|
|
|
|
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC1080FooBar'),
|
|
|
|
));
|
2011-12-20 01:56:19 +04:00
|
|
|
|
2011-05-14 15:32:12 +04:00
|
|
|
$foo1 = new DDC1080Foo();
|
|
|
|
$foo1->setFooTitle('foo title 1');
|
|
|
|
$foo2 = new DDC1080Foo();
|
|
|
|
$foo2->setFooTitle('foo title 2');
|
2011-12-20 01:56:19 +04:00
|
|
|
|
2011-05-14 15:32:12 +04:00
|
|
|
$bar1 = new DDC1080Bar();
|
|
|
|
$bar1->setBarTitle('bar title 1');
|
|
|
|
$bar2 = new DDC1080Bar();
|
|
|
|
$bar2->setBarTitle('bar title 2');
|
|
|
|
$bar3 = new DDC1080Bar();
|
|
|
|
$bar3->setBarTitle('bar title 3');
|
2011-12-20 01:56:19 +04:00
|
|
|
|
2011-05-14 15:32:12 +04:00
|
|
|
$foobar1 = new DDC1080FooBar();
|
|
|
|
$foobar1->setFoo($foo1);
|
|
|
|
$foobar1->setBar($bar1);
|
|
|
|
$foobar1->setOrderNr(0);
|
2011-12-20 01:56:19 +04:00
|
|
|
|
2011-05-14 15:32:12 +04:00
|
|
|
$foobar2 = new DDC1080FooBar();
|
|
|
|
$foobar2->setFoo($foo1);
|
|
|
|
$foobar2->setBar($bar2);
|
|
|
|
$foobar2->setOrderNr(0);
|
2011-12-20 01:56:19 +04:00
|
|
|
|
2011-05-14 15:32:12 +04:00
|
|
|
$foobar3 = new DDC1080FooBar();
|
|
|
|
$foobar3->setFoo($foo1);
|
|
|
|
$foobar3->setBar($bar3);
|
|
|
|
$foobar3->setOrderNr(0);
|
2011-12-20 01:56:19 +04:00
|
|
|
|
2011-05-14 15:32:12 +04:00
|
|
|
$this->_em->persist($foo1);
|
|
|
|
$this->_em->persist($foo2);
|
|
|
|
$this->_em->persist($bar1);
|
|
|
|
$this->_em->persist($bar2);
|
|
|
|
$this->_em->persist($bar3);
|
|
|
|
$this->_em->flush();
|
2011-12-20 01:56:19 +04:00
|
|
|
|
2011-05-14 15:32:12 +04:00
|
|
|
$this->_em->persist($foobar1);
|
|
|
|
$this->_em->persist($foobar2);
|
|
|
|
$this->_em->persist($foobar3);
|
|
|
|
$this->_em->flush();
|
|
|
|
$this->_em->clear();
|
2011-12-20 01:56:19 +04:00
|
|
|
|
2011-05-14 15:32:12 +04:00
|
|
|
$foo = $this->_em->find('Doctrine\Tests\ORM\Functional\Ticket\DDC1080Foo', $foo1->getFooId());
|
|
|
|
$fooBars = $foo->getFooBars();
|
2011-12-20 01:56:19 +04:00
|
|
|
|
2011-05-14 15:32:12 +04:00
|
|
|
$this->assertEquals(3, count($fooBars), "Should return three foobars.");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @Entity
|
|
|
|
* @Table(name="foo")
|
|
|
|
*/
|
|
|
|
class DDC1080Foo
|
|
|
|
{
|
|
|
|
|
|
|
|
/**
|
2011-12-20 01:56:19 +04:00
|
|
|
* @Id
|
2011-05-14 15:32:12 +04:00
|
|
|
* @Column(name="fooID", type="integer")
|
|
|
|
* @GeneratedValue(strategy="AUTO")
|
|
|
|
*/
|
|
|
|
protected $_fooID;
|
|
|
|
/**
|
|
|
|
* @Column(name="fooTitle", type="string")
|
|
|
|
*/
|
|
|
|
protected $_fooTitle;
|
|
|
|
/**
|
|
|
|
* @OneToMany(targetEntity="DDC1080FooBar", mappedBy="_foo",
|
|
|
|
* cascade={"persist"})
|
|
|
|
* @OrderBy({"_orderNr"="ASC"})
|
|
|
|
*/
|
|
|
|
protected $_fooBars;
|
|
|
|
|
|
|
|
public function __construct()
|
|
|
|
{
|
|
|
|
$this->_fooBars = new \Doctrine\Common\Collections\ArrayCollection();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the $fooID
|
|
|
|
*/
|
|
|
|
public function getFooID()
|
|
|
|
{
|
|
|
|
return $this->_fooID;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the $fooTitle
|
|
|
|
*/
|
|
|
|
public function getFooTitle()
|
|
|
|
{
|
|
|
|
return $this->_fooTitle;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the $fooBars
|
|
|
|
*/
|
|
|
|
public function getFooBars()
|
|
|
|
{
|
|
|
|
return $this->_fooBars;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param field_type $fooID
|
|
|
|
*/
|
|
|
|
public function setFooID($fooID)
|
|
|
|
{
|
|
|
|
$this->_fooID = $fooID;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param field_type $fooTitle
|
|
|
|
*/
|
|
|
|
public function setFooTitle($fooTitle)
|
|
|
|
{
|
|
|
|
$this->_fooTitle = $fooTitle;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param field_type $fooBars
|
|
|
|
*/
|
|
|
|
public function setFooBars($fooBars)
|
|
|
|
{
|
|
|
|
$this->_fooBars = $fooBars;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* @Entity
|
|
|
|
* @Table(name="bar")
|
|
|
|
*/
|
|
|
|
class DDC1080Bar
|
|
|
|
{
|
|
|
|
|
|
|
|
/**
|
2011-12-20 01:56:19 +04:00
|
|
|
* @Id
|
2011-05-14 15:32:12 +04:00
|
|
|
* @Column(name="barID", type="integer")
|
|
|
|
* @GeneratedValue(strategy="AUTO")
|
|
|
|
*/
|
|
|
|
protected $_barID;
|
|
|
|
/**
|
|
|
|
* @Column(name="barTitle", type="string")
|
|
|
|
*/
|
|
|
|
protected $_barTitle;
|
|
|
|
/**
|
|
|
|
* @OneToMany(targetEntity="DDC1080FooBar", mappedBy="_bar",
|
|
|
|
* cascade={"persist"})
|
|
|
|
* @OrderBy({"_orderNr"="ASC"})
|
|
|
|
*/
|
|
|
|
protected $_fooBars;
|
|
|
|
|
|
|
|
public function __construct()
|
|
|
|
{
|
|
|
|
$this->_fooBars = new \Doctrine\Common\Collections\ArrayCollection();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the $barID
|
|
|
|
*/
|
|
|
|
public function getBarID()
|
|
|
|
{
|
|
|
|
return $this->_barID;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the $barTitle
|
|
|
|
*/
|
|
|
|
public function getBarTitle()
|
|
|
|
{
|
|
|
|
return $this->_barTitle;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the $fooBars
|
|
|
|
*/
|
|
|
|
public function getFooBars()
|
|
|
|
{
|
|
|
|
return $this->_fooBars;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param field_type $barID
|
|
|
|
*/
|
|
|
|
public function setBarID($barID)
|
|
|
|
{
|
|
|
|
$this->_barID = $barID;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param field_type $barTitle
|
|
|
|
*/
|
|
|
|
public function setBarTitle($barTitle)
|
|
|
|
{
|
|
|
|
$this->_barTitle = $barTitle;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param field_type $fooBars
|
|
|
|
*/
|
|
|
|
public function setFooBars($fooBars)
|
|
|
|
{
|
|
|
|
$this->_fooBars = $fooBars;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @Table(name="fooBar")
|
|
|
|
* @Entity
|
|
|
|
*/
|
|
|
|
class DDC1080FooBar
|
|
|
|
{
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @ManyToOne(targetEntity="DDC1080Foo")
|
|
|
|
* @JoinColumn(name="fooID", referencedColumnName="fooID")
|
|
|
|
* @Id
|
|
|
|
*/
|
|
|
|
protected $_foo = null;
|
|
|
|
/**
|
|
|
|
* @ManyToOne(targetEntity="DDC1080Bar")
|
|
|
|
* @JoinColumn(name="barID", referencedColumnName="barID")
|
|
|
|
* @Id
|
|
|
|
*/
|
|
|
|
protected $_bar = null;
|
|
|
|
/**
|
|
|
|
* @var integer orderNr
|
|
|
|
* @Column(name="orderNr", type="integer", nullable=false)
|
|
|
|
*/
|
|
|
|
protected $_orderNr = null;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Retrieve the foo property
|
|
|
|
*
|
|
|
|
* @return DDC1080Foo
|
|
|
|
*/
|
|
|
|
public function getFoo()
|
|
|
|
{
|
|
|
|
return $this->_foo;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the foo property
|
|
|
|
*
|
|
|
|
* @param DDC1080Foo $foo
|
|
|
|
* @return DDC1080FooBar
|
|
|
|
*/
|
|
|
|
public function setFoo($foo)
|
|
|
|
{
|
|
|
|
$this->_foo = $foo;
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Retrieve the bar property
|
|
|
|
*
|
|
|
|
* @return DDC1080Bar
|
|
|
|
*/
|
|
|
|
public function getBar()
|
|
|
|
{
|
|
|
|
return $this->_bar;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the bar property
|
|
|
|
*
|
|
|
|
* @param DDC1080Bar $bar
|
|
|
|
* @return DDC1080FooBar
|
|
|
|
*/
|
|
|
|
public function setBar($bar)
|
|
|
|
{
|
|
|
|
$this->_bar = $bar;
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Retrieve the orderNr property
|
|
|
|
*
|
|
|
|
* @return integer|null
|
|
|
|
*/
|
|
|
|
public function getOrderNr()
|
|
|
|
{
|
|
|
|
return $this->_orderNr;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the orderNr property
|
|
|
|
*
|
|
|
|
* @param integer|null $orderNr
|
|
|
|
* @return DDC1080FooBar
|
|
|
|
*/
|
|
|
|
public function setOrderNr($orderNr)
|
|
|
|
{
|
|
|
|
$this->_orderNr = $orderNr;
|
|
|
|
return $this;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|