public async Task TestPassesThroughStreamSuccess()
        {
            const string resultInResponse = "whatever";
            var          reader           = new FakeReader(resultInResponse, () => true);
            var          response         = BuildStreamingCall(reader);

            var result = _subject.AsyncServerStreamingCall("hello", _context, (request, con) => response);

            await result.ResponseStream.MoveNext();

            Assert.AreEqual(result.ResponseStream.Current, resultInResponse);
        }
        public async Task TestPassesThroughDuplexSuccess()
        {
            const string resultInResponse = "whatever";
            var          reader           = new FakeReader(resultInResponse, () => true);
            var          writer           = new FakeWriter(() => { });
            var          response         = BuildDuplexCall(reader, writer);

            var result = _subject.AsyncDuplexStreamingCall(_context, con => response);

            await result.RequestStream.WriteAsync("success");

            await result.ResponseStream.MoveNext();

            await result.RequestStream.CompleteAsync();

            Assert.AreEqual(result.ResponseStream.Current, resultInResponse);
        }