3 namespace Doctrine\Tests\ORM\Functional\Ticket;
5 require_once __DIR__ . '/../../../TestInit.php';
7 class DDC211Test extends \Doctrine\Tests\OrmFunctionalTestCase
9 protected function setUp()
12 $this->_schemaTool->createSchema(array(
13 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC211User'),
14 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC211Group')
18 public function testIssue()
20 //$this->_em->getConnection()->getConfiguration()->setSQLLogger(new \Doctrine\DBAL\Logging\EchoSQLLogger);
22 $user = new DDC211User;
23 $user->setName('John Doe');
25 $this->_em->persist($user);
28 $groupNames = array('group 1', 'group 2', 'group 3', 'group 4');
29 foreach ($groupNames as $name) {
31 $group = new DDC211Group;
32 $group->setName($name);
33 $this->_em->persist($group);
36 if (!$user->getGroups()->contains($group)) {
37 $user->getGroups()->add($group);
38 $group->getUsers()->add($user);
43 $this->assertEquals(4, $user->getGroups()->count());
51 * @Table(name="ddc211_users")
57 * @Column(name="id", type="integer")
58 * @GeneratedValue(strategy="AUTO")
63 * @Column(name="name", type="string")
68 * @ManyToMany(targetEntity="DDC211Group", inversedBy="users")
69 * @JoinTable(name="user_groups",
70 * joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
71 * inverseJoinColumns={@JoinColumn(name="group_id", referencedColumnName="id")}
76 public function __construct() {
77 $this->groups = new \Doctrine\Common\Collections\ArrayCollection();
80 public function setName($name) { $this->name = $name; }
82 public function getGroups() { return $this->groups; }
87 * @Table(name="ddc211_groups")
93 * @Column(name="id", type="integer")
94 * @GeneratedValue(strategy="AUTO")
99 * @Column(name="name", type="string")
104 * @ManyToMany(targetEntity="DDC211User", mappedBy="groups")
108 public function __construct() {
109 $this->users = new \Doctrine\Common\Collections\ArrayCollection();
112 public function setName($name) { $this->name = $name; }
114 public function getUsers() { return $this->users; }