1
0
mirror of synced 2024-12-15 07:36:03 +03:00
doctrine2/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC211Test.php

117 lines
2.7 KiB
PHP
Raw Normal View History

<?php
namespace Doctrine\Tests\ORM\Functional\Ticket;
require_once __DIR__ . '/../../../TestInit.php';
class DDC211Test extends \Doctrine\Tests\OrmFunctionalTestCase
{
protected function setUp()
{
parent::setUp();
$this->_schemaTool->createSchema(array(
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC211User'),
$this->_em->getClassMetadata(__NAMESPACE__ . '\DDC211Group')
));
}
public function testIssue()
{
//$this->_em->getConnection()->getConfiguration()->setSqlLogger(new \Doctrine\DBAL\Logging\EchoSqlLogger);
$user = new DDC211User;
$user->setName('John Doe');
$this->_em->persist($user);
$this->_em->flush();
$groupNames = array('group 1', 'group 2', 'group 3', 'group 4');
foreach ($groupNames as $name) {
$group = new DDC211Group;
$group->setName($name);
$this->_em->persist($group);
$this->_em->flush();
if (!$user->getGroups()->contains($group)) {
$user->getGroups()->add($group);
$group->getUsers()->add($user);
$this->_em->flush();
}
}
$this->assertEquals(4, $user->getGroups()->count());
}
}
/**
* @Entity
* @Table(name="ddc211_users")
*/
class DDC211User
{
/**
* @Id
* @Column(name="id", type="integer")
* @GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @Column(name="name", type="string")
*/
protected $name;
/**
* @ManyToMany(targetEntity="DDC211Group")
* @JoinTable(name="user_groups",
* joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="group_id", referencedColumnName="id")}
* )
*/
protected $groups;
public function __construct() {
$this->groups = new \Doctrine\Common\Collections\ArrayCollection();
}
public function setName($name) { $this->name = $name; }
public function getGroups() { return $this->groups; }
}
/**
* @Entity
* @Table(name="ddc211_groups")
*/
class DDC211Group
{
/**
* @Id
* @Column(name="id", type="integer")
* @GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @Column(name="name", type="string")
*/
protected $name;
/**
* @ManyToMany(targetEntity="DDC211User", mappedBy="groups")
*/
protected $users;
public function __construct() {
$this->users = new \Doctrine\Common\Collections\ArrayCollection();
}
public function setName($name) { $this->name = $name; }
public function getUsers() { return $this->users; }
}