Example #1
0
        public async Task SayHelloBidirectionStreamingTest()
        {
            // Arrange
            var service = new TesterService(NullLoggerFactory.Instance.CreateLogger <TesterService>());

            var callContext    = TestServerCallContext.Create();
            var requestStream  = new TestAsyncStreamReader <HelloRequest>(callContext);
            var responseStream = new TestServerStreamWriter <HelloReply>(callContext);

            //Act
            var call = service.SayHelloBidirectionalStreaming(requestStream, responseStream, callContext);

            //Assert

            requestStream.AddMessage(new HelloRequest {
                Name = "James"
            });
            Assert.AreEqual("Hello James", (await responseStream.ReadNextAsync()) !.Message);

            requestStream.AddMessage(new HelloRequest {
                Name = "Jo"
            });
            Assert.AreEqual("Hello Jo", (await responseStream.ReadNextAsync()) !.Message);

            requestStream.Complete();

            await call;

            responseStream.Complete();

            Assert.IsNull(await responseStream.ReadNextAsync());
        }
Example #2
0
        public async Task SayHelloBidirectionStreamingTest()
        {
            // Arrange
            var mockGreeter = new Mock <IGreeter>();

            mockGreeter.Setup(m => m.Greet(It.IsAny <string>())).Returns((string s) => $"Hello {s}");
            var service = new TesterService(mockGreeter.Object);

            var callContext    = TestServerCallContext.Create();
            var requestStream  = new TestAsyncStreamReader <HelloRequest>(callContext);
            var responseStream = new TestServerStreamWriter <HelloReply>(callContext);

            // Act
            using var call = service.SayHelloBidirectionalStreaming(requestStream, responseStream, callContext);

            // Assert
            requestStream.AddMessage(new HelloRequest {
                Name = "James"
            });
            Assert.Equal("Hello James", (await responseStream.ReadNextAsync()) !.Message);

            requestStream.AddMessage(new HelloRequest {
                Name = "Jo"
            });
            Assert.Equal("Hello Jo", (await responseStream.ReadNextAsync()) !.Message);

            requestStream.AddMessage(new HelloRequest {
                Name = "Lee"
            });
            Assert.Equal("Hello Lee", (await responseStream.ReadNextAsync()) !.Message);

            requestStream.Complete();

            await call;

            responseStream.Complete();

            Assert.Null(await responseStream.ReadNextAsync());
        }