getMockBuilder(JsonRpcHandler::class) ->disableOriginalConstructor() ->onlyMethods(['process']) ->getMock(); $handler->expects($this->exactly(2))->method('process')->willReturnOnConsecutiveCalls( [['{"jsonrpc":"2.0","id":0,"error":{"code":-32700,"message":"Parse error"}}', []]], [['success', []]] ); $transport = $this->getMockBuilder(InMemoryTransport::class) ->setConstructorArgs([['foo', 'bar']]) ->onlyMethods(['send']) ->getMock(); $transport->expects($this->exactly(2))->method('send')->willReturnOnConsecutiveCalls( null, null ); $server = new Server($handler); $server->connect($transport); $transport->listen(); } }