1111
1212namespace Josser \Tests ;
1313
14+ use Josser \Exception \RpcFaultException ;
1415use Josser \Tests \TestCase as JosserTestCase ;
1516use Josser \Protocol \JsonRpc2 ;
1617use Josser \Client \Request \Request ;
@@ -97,15 +98,23 @@ public function testCreatingResponseFromValidDtoWithoutRpcError($responseDataTra
9798 * Test protocols' response objects factory and its RPC fault detection if invalid DTO is provided.
9899 *
99100 * @param mixed $responseDataTransferObject
101+ * @param mixed $message
102+ * @param mixed $code
103+ * @param mixed $data
100104 * @return void
101105 *
102106 * @dataProvider validResponseDTOsWithRpcErrorDataProvider
103107 */
104- public function testCreatingResponseFromValidDtoWithRpcError ($ responseDataTransferObject )
108+ public function testCreatingResponseFromValidDtoWithRpcError ($ responseDataTransferObject, $ message , $ code , $ data )
105109 {
106- $ this ->setExpectedException ('Josser\Exception\RpcFaultException ' );
107-
108- $ this ->protocol ->createResponse ($ responseDataTransferObject );
110+ $ this ->setExpectedException ('Josser\Exception\RpcFaultException ' , $ message , $ code );
111+
112+ try {
113+ $ this ->protocol ->createResponse ($ responseDataTransferObject );
114+ } catch (RpcFaultException $ e ) {
115+ $ this ->assertEquals ($ data , $ e ->getData ());
116+ throw $ e ;
117+ }
109118 }
110119
111120 /**
@@ -231,7 +240,11 @@ public function validResponseDTOsWithoutRpcErrorDataProvider()
231240 public function validResponseDTOsWithRpcErrorDataProvider ()
232241 {
233242 return array (
234- array (array ('jsonrpc ' => '2.0 ' , 'error ' => array ('message ' => 'Error message ' , 'code ' => 1000 ), 'id ' => 1 )), // RPC error
243+ array (array ('jsonrpc ' => '2.0 ' , 'error ' => array ('message ' => 'Error message ' , 'code ' => 1000 ), 'id ' => 1 ), 'Error message ' , 1000 , null ),
244+ array (array ('jsonrpc ' => '2.0 ' , 'error ' => array ('message ' => 'Error message ' , 'code ' => 1000 , 'data ' => 1 ), 'id ' => 1 ), 'Error message ' , 1000 , 1 ),
245+ array (array ('jsonrpc ' => '2.0 ' , 'error ' => array ('message ' => 'Error message ' , 'code ' => 1000 , 'data ' => '1 ' ), 'id ' => 1 ), 'Error message ' , 1000 , '1 ' ),
246+ array (array ('jsonrpc ' => '2.0 ' , 'error ' => array ('message ' => 'Error message ' , 'code ' => 1000 , 'data ' => []), 'id ' => 1 ), 'Error message ' , 1000 , []),
247+ array (array ('jsonrpc ' => '2.0 ' , 'error ' => array ('message ' => 'Error message ' , 'code ' => 1000 , 'data ' => ['error ' => 'error ' ]), 'id ' => 1 ), 'Error message ' , 1000 , ['error ' => 'error ' ]),
235248 );
236249 }
237250
@@ -366,4 +379,4 @@ public function requestsAndNotificationsDataProvider()
366379 array (new Notification ('system.exit ' , array ()), true ),
367380 );
368381 }
369- }
382+ }
0 commit comments