51 lines
1.5 KiB
PHP
51 lines
1.5 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)));
|
|
}
|
|
|
|
public function assertCollectionEquals(Collection $first, Collection $second)
|
|
{
|
|
if (count($first) != count($second)) {
|
|
return false;
|
|
}
|
|
foreach ($first as $element) {
|
|
if (!$second->contains($element)) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}
|