public function testCacheReadAndWriteWithConditions() {
$config = array('default' => array(
'adapter' => 'Memory', 'filters' => array()
));
Cache::config($config);
$result = Cache::config();
$expected = $config;
$this->assertEqual($expected, $result);
$conditions = function() use (&$config) {
return (isset($config['default']));
};
$result = Cache::read('non_existing', 'key_value', compact('conditions'));
$this->assertFalse($result);
$result = Cache::read('default', 'key_value', compact('conditions'));
$this->assertFalse($result);
$result = Cache::write('default', 'keyed', 'some data', '+1 minute', compact('conditions'));
$this->assertTrue($result);
$conditions = function() {
return false;
};
$result = Cache::write('default', 'keyed', 'some data', '+1 minute', compact('conditions'));
$this->assertFalse($result);
}