public ClientTestHelper(MessageReader reader, MessageWriter writer)
            {
                ClientHandler       = new StreamRpcClientHandler();
                Client              = new JsonRpcClient(ClientHandler);
                ClientMessageReader = reader;
                ClientMessageWriter = writer;
                // We use positional parameters when issuing cancelRequest request. Just for more test coverage.
                Client.RequestCancelling += (_, e) => { Client.SendNotificationAsync("cancelRequest", new JArray(e.RequestId.Value), CancellationToken.None); };
                disposables.Add(ClientHandler.Attach(ClientMessageReader, ClientMessageWriter));

                var proxyBuilder = new JsonRpcProxyBuilder {
                    ContractResolver = Utility.DefaultContractResolver
                };

                ClientStub             = proxyBuilder.CreateProxy <ITestRpcContract>(Client);
                ClientExceptionStub    = proxyBuilder.CreateProxy <ITestRpcExceptionContract>(Client);
                ClientCancellationStub = proxyBuilder.CreateProxy <ITestRpcCancellationContract>(Client);
            }