From 375b0369ae7b3343fb62bb5558584a2b447fee04 Mon Sep 17 00:00:00 2001 From: Jean Carlo Machado Date: Thu, 28 Jan 2016 19:36:52 -0200 Subject: [PATCH] added test of matching non-owing side with criteria --- .../ORM/Functional/Ticket/DDC3719Test.php | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3719Test.php diff --git a/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3719Test.php b/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3719Test.php new file mode 100644 index 000000000..28e65b32e --- /dev/null +++ b/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC3719Test.php @@ -0,0 +1,54 @@ + + */ +class DDC3719Test extends \Doctrine\Tests\OrmFunctionalTestCase +{ + public function setUp() + { + $this->useModelSet('company'); + parent::setUp(); + } + + /** + * @group DDC-3719 + */ + public function testCriteriaOnNotOwningSide() + { + $manager = new CompanyManager(); + $manager->setName('Gandalf'); + $manager->setSalary(666); + $manager->setTitle('Boss'); + $manager->setDepartment('Marketing'); + $this->_em->persist($manager); + + $contractA = new CompanyFlexContract(); + $contractA->markCompleted(); + $contractA->addManager($manager); + $this->_em->persist($contractA); + + $contractB = new CompanyFlexContract(); + $contractB->addManager($manager); + $this->_em->persist($contractB); + + $this->_em->flush(); + $this->_em->refresh($manager); + + $contracts = $manager->managedContracts; + static::assertCount(2, $contracts); + + $criteria = Criteria::create(); + $criteria->where(Criteria::expr()->eq("completed", true)); + + $completedContracts = $contracts->matching($criteria); + static::assertCount(1, $completedContracts); + } +}