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()); }
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()); }