3 namespace Doctrine\Tests\ORM\Functional\Ticket;
5 use Doctrine\Common\Collections\ArrayCollection;
7 require_once __DIR__ . '/../../../TestInit.php';
9 class DDC742Test extends \Doctrine\Tests\OrmFunctionalTestCase
14 protected function setUp()
18 if (\extension_loaded('memcache')) {
19 $memcache = new \Memcache();
20 $memcache->addServer('localhost');
23 $cacheDriver = new \Doctrine\Common\Cache\MemcacheCache();
24 $cacheDriver->setMemcache($memcache);
26 $this->_em->getMetadataFactory()->setCacheDriver($cacheDriver);
27 } else if (\extension_loaded('apc')) {
28 $this->_em->getMetadataFactory()->setCacheDriver(new \Doctrine\Common\Cache\ApcCache());
32 $this->_schemaTool->createSchema(array(
33 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC742User'),
34 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC742Comment')
36 } catch(\Exception $e) {
40 // make sure classes will be deserialized from caches
41 $this->_em->getMetadataFactory()->setMetadataFor(__NAMESPACE__ . '\DDC742User', null);
42 $this->_em->getMetadataFactory()->setMetadataFor(__NAMESPACE__ . '\DDC742Comment', null);
45 public function testIssue()
47 $user = new DDC742User();
49 $user->favoriteComments = new ArrayCollection();
51 $comment1 = new DDC742Comment();
52 $comment1->content = "foo";
54 $comment2 = new DDC742Comment();
55 $comment2->content = "bar";
57 $comment3 = new DDC742Comment();
58 $comment3->content = "baz";
60 $user->favoriteComments->add($comment1);
61 $user->favoriteComments->add($comment2);
63 $this->_em->persist($user);
64 $this->_em->persist($comment1);
65 $this->_em->persist($comment2);
66 $this->_em->persist($comment3);
70 $user = $this->_em->find(get_class($user), $user->id);
71 $comment3 = $this->_em->find(get_class($comment3), $comment3->id);
72 $user->favoriteComments->add($comment3);
79 * @Table(name="users")
87 * @GeneratedValue(strategy="AUTO")
88 * @Column(type="integer")
93 * @Column(length=100, type="string")
98 * @ManyToMany(targetEntity="DDC742Comment", cascade={"persist"}, fetch="EAGER")
100 * name="user_comments",
101 * joinColumns={@JoinColumn(name="user_id",referencedColumnName="id")},
102 * inverseJoinColumns={@JoinColumn(name="comment_id", referencedColumnName="id")}
105 * @var Doctrine\ORM\PersistentCollection
107 public $favoriteComments;
112 * @Table(name="comments")
120 * @GeneratedValue(strategy="AUTO")
121 * @Column(type="integer")
126 * @Column(length=100, type="string")