public function testServiceLocation()
{
$this->assertNull(Libraries::locate('adapter', 'File'));
$this->assertNull(Libraries::locate('adapter.view', 'File'));
$this->assertNull(Libraries::locate('invalid_package', 'InvalidClass'));
$result = Libraries::locate('adapter.template.view', 'File');
$this->assertEqual('lithium\\template\\view\\adapter\\File', $result);
$result = Libraries::locate('adapter.storage.cache', 'File');
$expected = 'lithium\\storage\\cache\\adapter\\File';
$this->assertEqual($expected, $result);
$result = Libraries::locate('data.source', 'Database');
$expected = 'lithium\\data\\source\\Database';
$this->assertEqual($expected, $result);
$result = Libraries::locate('adapter.data.source.database', 'MySql');
$expected = 'lithium\\data\\source\\database\\adapter\\MySql';
$this->assertEqual($expected, $result);
$result = Libraries::locate(null, '\\lithium\\data\\source\\Database');
$expected = '\\lithium\\data\\source\\Database';
$this->assertEqual($expected, $result);
$expected = new stdClass();
$result = Libraries::locate(null, $expected);
$this->assertEqual($expected, $result);
}