44 lines
1.3 KiB
PHP
44 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Doctrine\Tests\ORM\Functional;
|
|
|
|
use Doctrine\Common\Collections\Collection;
|
|
|
|
require_once __DIR__ . '/../../TestInit.php';
|
|
|
|
/**
|
|
* Base class for testing a many-to-many association mapping (without inheritance).
|
|
*/
|
|
class AbstractManyToManyAssociationTestCase extends \Doctrine\Tests\OrmFunctionalTestCase
|
|
{
|
|
protected $_firstField;
|
|
protected $_secondField;
|
|
protected $_table;
|
|
|
|
public function assertForeignKeysContain($firstId, $secondId)
|
|
{
|
|
$this->assertEquals(1, $this->_countForeignKeys($firstId, $secondId));
|
|
}
|
|
|
|
public function assertForeignKeysNotContain($firstId, $secondId)
|
|
{
|
|
$this->assertEquals(0, $this->_countForeignKeys($firstId, $secondId));
|
|
}
|
|
|
|
protected function _countForeignKeys($firstId, $secondId)
|
|
{
|
|
return count($this->_em->getConnection()
|
|
->execute("SELECT {$this->_firstField}
|
|
FROM {$this->_table}
|
|
WHERE {$this->_firstField}=?
|
|
AND {$this->_secondField}=?",
|
|
array($firstId, $secondId))
|
|
->fetchAll());
|
|
}
|
|
|
|
public function assertCollectionEquals(Collection $first, Collection $second)
|
|
{
|
|
return $first->forAll(function($k, $e) use($second) { return $second->contains($e); });
|
|
}
|
|
}
|