. */ /** * Doctrine_Query_Cache_TestCase * * @package Doctrine * @author Konsta Vesterinen * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @category Object Relational Mapping * @link www.phpdoctrine.com * @since 1.0 * @version $Revision$ */ class Doctrine_Query_Cache_TestCase extends Doctrine_UnitTestCase { public function testResultSetCacheAddsResultSetsIntoCache() { $q = new Doctrine_Query(); $cache = new Doctrine_Cache_Array(); $q->setCache($cache); $q->select('u.name')->from('User u'); $coll = $q->execute(); $this->assertEqual($cache->count(), 1); $this->assertTrue($coll instanceof Doctrine_Collection); $this->assertEqual($coll->count(), 8); $coll = $q->execute(); $this->assertEqual($cache->count(), 1); $this->assertTrue($coll instanceof Doctrine_Collection); $this->assertEqual($coll->count(), 8); } public function testResultSetCacheSupportsQueriesWithJoins() { $q = new Doctrine_Query(); $cache = new Doctrine_Cache_Array(); $q->setCache($cache); $q->select('u.name')->from('User u')->leftJoin('u.Phonenumber p'); $coll = $q->execute(); $this->assertEqual($cache->count(), 1); $this->assertTrue($coll instanceof Doctrine_Collection); $this->assertEqual($coll->count(), 8); $coll = $q->execute(); $this->assertEqual($cache->count(), 1); $this->assertTrue($coll instanceof Doctrine_Collection); $this->assertEqual($coll->count(), 8); } public function testResultSetCacheSupportsPreparedStatements() { $q = new Doctrine_Query(); $cache = new Doctrine_Cache_Array(); $q->setCache($cache); $q->select('u.name')->from('User u')->leftJoin('u.Phonenumber p') ->where('u.id = ?'); $coll = $q->execute(array(5)); $this->assertEqual($cache->count(), 1); $this->assertTrue($coll instanceof Doctrine_Collection); $this->assertEqual($coll->count(), 1); $coll = $q->execute(array(5)); $this->assertEqual($cache->count(), 1); $this->assertTrue($coll instanceof Doctrine_Collection); $this->assertEqual($coll->count(), 1); } }