1
0
mirror of synced 2024-12-15 15:46:02 +03:00
doctrine2/tests/Doctrine/Tests/ORM/Functional/AbstractManyToManyAssociationTestCase.php

54 lines
1.6 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); });
/*if (count($first) != count($second)) {
return false;
}
foreach ($first as $element) {
if (!$second->contains($element)) {
return false;
}
}
return true;*/
}
}