public function testReadMergeSelectedConfigurations()
{
Catalog::reset();
Catalog::config(array('runtime0' => array('adapter' => new Memory()), 'runtime1' => array('adapter' => new Memory()), 'runtime2' => array('adapter' => new Memory())));
$data = '/postalCode en0/';
Catalog::write('runtime0', 'validation.postalCode', 'en', $data);
$data = '/postalCode en1/';
Catalog::write('runtime1', 'validation.postalCode', 'en', $data);
$data = '/postalCode en2/';
Catalog::write('runtime2', 'validation.postalCode', 'en', $data);
$data = '/ssn en2/';
Catalog::write('runtime2', 'validation.ssn', 'en', $data);
$result = Catalog::read('runtime0', 'validation.postalCode', 'en');
$expected = '/postalCode en0/';
$this->assertEqual($expected, $result);
$result = Catalog::read('runtime2', 'validation.postalCode', 'en');
$expected = '/postalCode en2/';
$this->assertEqual($expected, $result);
$result = Catalog::read('runtime2', 'validation.postalCode', 'en');
$expected = '/postalCode en2/';
$this->assertEqual($expected, $result);
$result = Catalog::read(array('runtime0', 'runtime2'), 'validation', 'en');
$expected = array('postalCode' => '/postalCode en0/', 'ssn' => '/ssn en2/');
$this->assertEqual($expected, $result);
$resultA = Catalog::read(array('runtime0', 'runtime2'), 'validation', 'en');
$resultB = Catalog::read(true, 'validation', 'en');
$this->assertEqual($resultA, $resultB);
}