public function testRead()
{
$this->Memory->read();
$key = 'read_test';
$value = 'value to be read';
$this->Memory->_session[$key] = $value;
$closure = $this->Memory->read($key);
$this->assertInternalType('callable', $closure);
$params = compact('key');
$result = $closure($this->Memory, $params, null);
$this->assertIdentical($value, $result);
$key = 'non-existent';
$closure = $this->Memory->read($key);
$this->assertInternalType('callable', $closure);
$params = compact('key');
$result = $closure($this->Memory, $params, null);
$this->assertNull($result);
$closure = $this->Memory->read();
$this->assertInternalType('callable', $closure);
$result = $closure($this->Memory, array('key' => null), null);
$expected = array('read_test' => 'value to be read');
$this->assertEqual($expected, $result);
}