private function _testEvent($eventName, array $getters, array $values, array $translatedValues)
{
global $mock_stream_socket_client;
global $mock_stream_set_blocking;
global $mockTime;
global $standardAMIStart;
$eventClass = "\\PAMI\\Message\\Event\\" . $eventName . 'Event';
$mockTime = true;
$mock_stream_socket_client = true;
$mock_stream_set_blocking = true;
$options = array('host' => '2.3.4.5', 'scheme' => 'tcp://', 'port' => 9999, 'username' => 'asd', 'secret' => 'asd', 'connect_timeout' => 10, 'read_timeout' => 10);
$write = array("action: Login\r\nactionid: 1432.123\r\nusername: asd\r\nsecret: asd\r\n");
setFgetsMock($standardAMIStart, $write);
$client = new \PAMI\Client\Impl\ClientImpl($options);
$client->registerEventListener(new SomeListenerClass());
$client->open();
$message = array();
$message[] = 'Event: ' . $eventName;
foreach ($values as $key => $value) {
$message[] = $key . ': ' . $value;
}
$message[] = '';
setFgetsMock($message, $message);
for ($i = 0; $i < count($message); $i++) {
$client->process();
}
$event = SomeListenerClass::$event;
foreach ($values as $key => $value) {
if (isset($getters[$eventName][$key])) {
$methodName = 'get' . $getters[$eventName][$key];
} else {
$methodName = 'get' . $key;
}
if (isset($translatedValues[$eventName][$key])) {
$value = $translatedValues[$eventName][$key];
}
$this->assertTrue(method_exists($event, $methodName), sprintf('Method %s doesn\'t exixt in event %s', $methodName, get_class($event)));
$this->assertEquals($event->{$methodName}(), $value, $eventName);
}
}