add missing files for forked idiorm
This commit is contained in:
82
vendor/j4mie/idiorm/test/CacheTest53.php
vendored
Normal file
82
vendor/j4mie/idiorm/test/CacheTest53.php
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
class CacheTest53 extends PHPUnit_Framework_TestCase {
|
||||
|
||||
const ALTERNATE = 'alternate'; // Used as name of alternate connection
|
||||
|
||||
public function setUp() {
|
||||
// Set up the dummy database connections
|
||||
ORM::set_db(new MockPDO('sqlite::memory:'));
|
||||
ORM::set_db(new MockDifferentPDO('sqlite::memory:'), self::ALTERNATE);
|
||||
|
||||
// Enable logging
|
||||
ORM::configure('logging', true);
|
||||
ORM::configure('logging', true, self::ALTERNATE);
|
||||
ORM::configure('caching', true);
|
||||
ORM::configure('caching', true, self::ALTERNATE);
|
||||
}
|
||||
|
||||
public function tearDown() {
|
||||
ORM::reset_config();
|
||||
ORM::reset_db();
|
||||
}
|
||||
|
||||
|
||||
public function testCustomCacheCallback() {
|
||||
$phpunit = $this;
|
||||
$my_cache = array();
|
||||
ORM::configure('caching_auto_clear', true);
|
||||
|
||||
ORM::configure('create_cache_key', function ($query, $parameters, $table_name, $connection) use ($phpunit, &$my_cache) {
|
||||
$phpunit->assertEquals(true, is_string($query));
|
||||
$phpunit->assertEquals(true, is_array($parameters));
|
||||
$phpunit->assertEquals(true, is_string($connection));
|
||||
$phpunit->assertEquals('widget', $table_name);
|
||||
$parameter_string = join(',', $parameters);
|
||||
$key = $query . ':' . $parameter_string;
|
||||
$my_key = 'some-prefix'.crc32($key);
|
||||
return $my_key;
|
||||
});
|
||||
ORM::configure('cache_query_result', function ($cache_key, $value, $table_name, $connection_name) use ($phpunit, &$my_cache) {
|
||||
$phpunit->assertEquals(true, is_string($cache_key));
|
||||
$phpunit->assertEquals('widget', $table_name);
|
||||
$my_cache[$cache_key] = $value;
|
||||
});
|
||||
ORM::configure('check_query_cache', function ($cache_key, $table_name, $connection_name) use ($phpunit, &$my_cache) {
|
||||
$phpunit->assertEquals(true, is_string($cache_key));
|
||||
$phpunit->assertEquals(true, is_string($connection_name));
|
||||
$phpunit->assertEquals('widget', $table_name);
|
||||
|
||||
if(isset($my_cache) and isset($my_cache[$cache_key])){
|
||||
$phpunit->assertEquals(true, is_array($my_cache[$cache_key]));
|
||||
return $my_cache[$cache_key];
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
ORM::configure('clear_cache', function ($table_name, $connection_name) use ($phpunit, &$my_cache) {
|
||||
$phpunit->assertEquals(true, is_string($table_name));
|
||||
$phpunit->assertEquals(true, is_string($connection_name));
|
||||
$my_cache = array();
|
||||
});
|
||||
ORM::for_table('widget')->where('name', 'Fred')->where('age', 21)->find_one();
|
||||
ORM::for_table('widget')->where('name', 'Fred')->where('age', 21)->find_one();
|
||||
ORM::for_table('widget')->where('name', 'Bob')->where('age', 42)->find_one();
|
||||
|
||||
//our custom cache should be full now
|
||||
$this->assertEquals(true, !empty($my_cache));
|
||||
|
||||
//checking custom cache key
|
||||
foreach($my_cache as $k=>$v){
|
||||
$this->assertEquals('some-prefix', substr($k,0,11));
|
||||
}
|
||||
|
||||
$new = ORM::for_table('widget')->create();
|
||||
$new->name = "Joe";
|
||||
$new->age = 25;
|
||||
$saved = $new->save();
|
||||
|
||||
//our custom cache should be empty now
|
||||
$this->assertEquals(true, empty($my_cache));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user