12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- <?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()->executeQuery("
- 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); });
- }
- }
|