3 namespace Doctrine\Tests\ORM\Functional\Ticket;
5 use Doctrine\Common\Collections\ArrayCollection;
6 use Doctrine\Tests\Models\CMS\CmsUser;
7 use Doctrine\Tests\Models\CMS\CmsGroup;
9 require_once __DIR__ . '/../../../TestInit.php';
11 class DDC809Test extends \Doctrine\Tests\OrmFunctionalTestCase
13 public function setUp()
16 $this->_schemaTool->createSchema(array(
17 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC809Variant'),
18 $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC809SpecificationValue')
21 $conn = $this->_em->getConnection();
22 $conn->insert('specification_value_test', array('specification_value_id' => 94589));
23 $conn->insert('specification_value_test', array('specification_value_id' => 94593));
24 $conn->insert('specification_value_test', array('specification_value_id' => 94606));
25 $conn->insert('specification_value_test', array('specification_value_id' => 94607));
26 $conn->insert('specification_value_test', array('specification_value_id' => 94609));
27 $conn->insert('specification_value_test', array('specification_value_id' => 94711));
29 $conn->insert('variant_test', array('variant_id' => 545208));
30 $conn->insert('variant_test', array('variant_id' => 545209));
32 $conn->insert('var_spec_value_test', array('variant_id' => 545208, 'specification_value_id' => 94606));
33 $conn->insert('var_spec_value_test', array('variant_id' => 545208, 'specification_value_id' => 94607));
34 $conn->insert('var_spec_value_test', array('variant_id' => 545208, 'specification_value_id' => 94609));
35 $conn->insert('var_spec_value_test', array('variant_id' => 545208, 'specification_value_id' => 94711));
37 $conn->insert('var_spec_value_test', array('variant_id' => 545209, 'specification_value_id' => 94589));
38 $conn->insert('var_spec_value_test', array('variant_id' => 545209, 'specification_value_id' => 94593));
39 $conn->insert('var_spec_value_test', array('variant_id' => 545209, 'specification_value_id' => 94606));
40 $conn->insert('var_spec_value_test', array('variant_id' => 545209, 'specification_value_id' => 94607));
46 public function testIssue()
48 $result = $this->_em->createQueryBuilder()
49 ->select('Variant, SpecificationValue')
50 ->from('Doctrine\Tests\ORM\Functional\Ticket\DDC809Variant', 'Variant')
51 ->leftJoin('Variant.SpecificationValues', 'SpecificationValue')
55 $this->assertEquals(4, count($result[0]->getSpecificationValues()), "Works in test-setup.");
56 $this->assertEquals(4, count($result[1]->getSpecificationValues()), "Only returns 2 in the case of the hydration bug.");
61 * @Table(name="variant_test")
67 * @Column(name="variant_id", type="integer")
73 * @ManyToMany(targetEntity="DDC809SpecificationValue", inversedBy="Variants")
74 * @JoinTable(name="var_spec_value_test",
76 * @JoinColumn(name="variant_id", referencedColumnName="variant_id")
78 * inverseJoinColumns={
79 * @JoinColumn(name="specification_value_id", referencedColumnName="specification_value_id")
83 protected $SpecificationValues;
85 public function getSpecificationValues()
87 return $this->SpecificationValues;
92 * @Table(name="specification_value_test")
95 class DDC809SpecificationValue
98 * @Column(name="specification_value_id", type="integer")
101 protected $specificationValueId;
106 * @ManyToMany(targetEntity="DDC809Variant", mappedBy="SpecificationValues")