public void ExecuteDuplexStreaming_WhenItMapped_ShouldUpdateResponseMarkup()
        {
            // Arrange
            const string ExpectedMessage = "Unusual Markup Message Duplex Streaming";

            var clientMock = new Mock <TestService.TestServiceClient>();

            clientMock.Setup(m => m.DuplexStreaming(It.IsAny <CallOptions>()))
            .Returns(TestCalls.AsyncDuplexStreamingCall(
                         new AsyncStreamWriterStub(),
                         new AsyncStreamReaderStub(ExpectedMessage),
                         Task.FromResult(new Metadata()),
                         () => Status.DefaultSuccess,
                         () => new Metadata(),
                         () => { }));

            host.AddService(clientMock.Object);
            var component = host.AddComponent <TestWrapper>();

            // Act
            component.Find("button.execute.duplexStreaming").Click();
            host.WaitForNextRender();
            var markup = component.GetMarkup();

            // Assert
            Assert.Contains(ExpectedMessage, markup);
        }
        public void ClientBaseDuplexStreamingCallCanBeMocked()
        {
            var mockClient         = new Moq.Mock <Math.MathClient>();
            var mockRequestStream  = new Moq.Mock <IClientStreamWriter <DivArgs> >();
            var mockResponseStream = new Moq.Mock <IAsyncStreamReader <DivReply> >();

            // Use a factory method provided by Grpc.Core.Testing.TestCalls to create an instance of a call.
            var fakeCall = TestCalls.AsyncDuplexStreamingCall <DivArgs, DivReply>(mockRequestStream.Object, mockResponseStream.Object, Task.FromResult(new Metadata()), () => Status.DefaultSuccess, () => new Metadata(), () => { });

            mockClient.Setup(m => m.DivMany(null, null, CancellationToken.None)).Returns(fakeCall);
            Assert.AreSame(fakeCall, mockClient.Object.DivMany());
        }
Exemple #3
0
 /// <inheritdoc />
 public override AsyncDuplexStreamingCall <TRequest, TResponse> Build() => TestCalls.AsyncDuplexStreamingCall(_requests, _responses, ResponseHeaders, StatusFunc, TrailersFunc, DisposeAction);