1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
<?php
declare(strict_types=1);
namespace Doctrine\Tests\ORM\Functional\Ticket;
use Doctrine\Common\Collections\Criteria;
use Doctrine\Tests\Models\Company\CompanyFlexContract;
use Doctrine\Tests\Models\Company\CompanyManager;
use Doctrine\Tests\OrmFunctionalTestCase;
use PHPUnit\Framework\Attributes\Group;
class DDC3719Test extends OrmFunctionalTestCase
{
protected function setUp(): void
{
$this->useModelSet('company');
parent::setUp();
}
#[Group('DDC-3719')]
public function testCriteriaOnNotOwningSide(): void
{
$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;
self::assertCount(2, $contracts);
$criteria = Criteria::create();
$criteria->where(Criteria::expr()->eq('completed', true));
$completedContracts = $contracts->matching($criteria);
self::assertCount(1, $completedContracts);
}
}
|