public function testCaching()
{
$data = array('catalog' => 'Katalog');
Catalog::write('runtime', 'message', 'de', $data, array('scope' => 'foo'));
$this->assertEmpty(Message::cache());
$result = Message::translate('catalog', array('locale' => 'de', 'scope' => 'foo'));
$this->assertEqual('Katalog', $result);
$cache = Message::cache();
$this->assertEqual('Katalog', $cache['foo']['de']['catalog']);
Message::cache(false);
$this->assertEmpty(Message::cache());
Message::cache(array('foo' => array('de' => array('catalog' => '<Katalog>'))));
$result = Message::translate('catalog', array('locale' => 'de', 'scope' => 'foo'));
$this->assertEqual('<Katalog>', $result);
$options = array('locale' => 'de', 'scope' => 'foo', 'count' => 2);
$this->assertEqual('<Katalog>', Message::translate('catalog', $options));
Message::cache(false);
Message::cache(array('foo' => array('de' => array('catalog' => array('<Katalog>')))));
$this->assertNull(Message::translate('catalog', $options));
}