public function testGlobalErrorHandler()
 {
     $this->client->expects($this->once())->method('call')->with('system.multicall', array(array(array('methodName' => 'method1', 'params' => array('arg11', 'arg12')), array('methodName' => 'method2', 'params' => array('arg21', 'arg22')))))->will($this->returnValue(array('return1', array('faultCode' => 200))));
     $individualSuccessHandlerResults = array();
     $individualSuccessHandler = function ($result) use(&$individualSuccessHandlerResults) {
         $individualSuccessHandlerResults[] = $result;
     };
     $globalSuccessHandlerResults = array();
     $globalSuccessHandler = function ($result) use(&$globalSuccessHandlerResults) {
         $globalSuccessHandlerResults[] = $result;
     };
     $globalErrorHandlerResults = array();
     $globalErrorHandler = function ($result) use(&$globalErrorHandlerResults) {
         $globalErrorHandlerResults[] = $result;
     };
     $results = $this->multicall->addCall('method1', array('arg11', 'arg12'), $individualSuccessHandler)->addCall('method2', array('arg21', 'arg22'), $individualSuccessHandler)->onSuccess($globalSuccessHandler)->onError($globalErrorHandler)->execute();
     $this->assertSame(array('return1', array('faultCode' => 200)), $results);
     $this->assertSame($results, $individualSuccessHandlerResults);
     $this->assertSame(array('return1'), $globalSuccessHandlerResults);
     $this->assertSame(array(array('faultCode' => 200)), $globalErrorHandlerResults);
 }