44
55namespace DawidMazurek \JsonRpc \server ;
66
7+ use DawidMazurek \JsonRpc \exception \ParseError ;
78use DawidMazurek \JsonRpc \handler \JsonRpcRequestHandler ;
9+ use DawidMazurek \JsonRpc \io \JsonRpcInput ;
10+ use DawidMazurek \JsonRpc \request \JsonRpcRequest ;
811use DawidMazurek \JsonRpc \request \JsonRpcRequestAggregate ;
912use DawidMazurek \JsonRpc \request \Request ;
13+ use DawidMazurek \JsonRpc \response \FailedResponse ;
14+ use DawidMazurek \JsonRpc \response \JsonRpcResponse ;
1015use PHPUnit \Framework \TestCase ;
1116
1217class JsonRpcServerTest extends TestCase
@@ -42,8 +47,13 @@ public function handlesRequest()
4247 1
4348 ));
4449
50+ $ input = $ this ->createMock (JsonRpcInput::class);
51+ $ input ->expects ($ this ->once ())
52+ ->method ('getRequest ' )
53+ ->willReturn ($ this ->requests );
54+
4555 $ server = new JsonRpcServer ($ this ->requestHandler );
46- $ server ->run ($ this -> requests );
56+ $ server ->run ($ input );
4757 }
4858
4959
@@ -68,18 +78,53 @@ public function handlesMultipleRequests()
6878 2
6979 ));
7080
81+ $ input = $ this ->createMock (JsonRpcInput::class);
82+ $ input ->expects ($ this ->once ())
83+ ->method ('getRequest ' )
84+ ->willReturn ($ this ->requests );
85+
7186 $ server = new JsonRpcServer ($ this ->requestHandler );
72- $ server ->run ($ this -> requests );
87+ $ server ->run ($ input );
7388 }
7489
7590 /**
7691 * @test
7792 */
7893 public function returnsEmptyResponseForEmptyInput ()
7994 {
95+ $ input = $ this ->createMock (JsonRpcInput::class);
96+ $ input ->expects ($ this ->once ())
97+ ->method ('getRequest ' )
98+ ->willReturn ($ this ->requests );
99+
80100 $ server = new JsonRpcServer ($ this ->requestHandler );
81101 $ this ->assertEmpty (
82- $ server ->run ($ this ->requests )->getAll ()
102+ $ server ->run ($ input )->getAll ()
103+ );
104+ }
105+
106+ /**
107+ * @test
108+ */
109+ public function handlesExceptionWhileHandlingRequest ()
110+ {
111+ $ input = $ this ->createMock (JsonRpcInput::class);
112+ $ input ->expects ($ this ->once ())
113+ ->method ('getRequest ' )
114+ ->willThrowException (new ParseError ());
115+
116+ $ server = new JsonRpcServer ($ this ->requestHandler );
117+
118+ $ response = $ server ->run ($ input )->getAll ();
119+
120+ $ this ->assertContainsOnlyInstancesOf (
121+ JsonRpcResponse::class,
122+ $ response
123+ );
124+
125+ $ this ->assertEquals (
126+ 1 ,
127+ count ($ response )
83128 );
84129 }
85130}
0 commit comments