public function testWriteReadMergeLocales()
{
$data = '/postalCode en/';
Catalog::write('runtime', 'validation.postalCode', 'en', $data);
$result = Catalog::read('runtime', 'validation.postalCode', 'en_US');
$expected = '/postalCode en/';
$this->assertEqual($expected, $result);
$this->tearDown();
$this->setUp();
$data = '/postalCode en_US/';
Catalog::write('runtime', 'validation.postalCode', 'en_US', $data);
$data = '/postalCode en/';
Catalog::write('runtime', 'validation.postalCode', 'en', $data);
$result = Catalog::read('runtime', 'validation.postalCode', 'en_US');
$expected = '/postalCode en_US/';
$this->assertEqual($expected, $result);
$this->tearDown();
$this->setUp();
$data = array('a' => true, 'b' => true, 'c' => true);
Catalog::write('runtime', 'language', 'en', $data);
$result = Catalog::read('runtime', 'language', 'en_US');
$expected = array('a' => true, 'b' => true, 'c' => true);
$this->assertEqual($expected, $result);
$this->tearDown();
$this->setUp();
$data = array('DKK' => 'Dänische Krone');
Catalog::write('runtime', 'currency', 'de', $data);
$data = array('GRD' => 'Griechische Drachme');
Catalog::write('runtime', 'currency', 'de_CH', $data);
$result = Catalog::read('runtime', 'currency', 'de_CH');
$expected = array('GRD' => 'Griechische Drachme', 'DKK' => 'Dänische Krone');
$this->assertEqual($expected, $result);
$this->tearDown();
$this->setUp();
$data = array('GRD' => 'de Griechische Drachme', 'DKK' => 'de Dänische Krone');
Catalog::write('runtime', 'currency', 'de', $data);
$data = array('GRD' => 'de_CH Griechische Drachme');
Catalog::write('runtime', 'currency', 'de_CH', $data);
$result = Catalog::read('runtime', 'currency', 'de_CH');
$expected = array('GRD' => 'de_CH Griechische Drachme', 'DKK' => 'de Dänische Krone');
$this->assertEqual($expected, $result);
}