Source

						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);
	}