Library to mocking gRPC client. Instead of Grpc.Core.Testing
using extensions for NSubstitute
Based on libraries:
Install-Package Net.Testing.NSubstitute.Grpc
// Create client
var grpcMock = Substitute.For<TestService.TestServiceClient>();
// Add mock
grpcMock
.Simple(Arg.Any<TestRequest>(), null, null, default)
.Returns(expectedResponse);
// Call
var response = grpcMock.Simple(new TestRequest());
// Create client
var testRequest = new TestRequest();
var grpcClient = Substitute.For<TestService.TestServiceClient>();
// Add mock
grpcClient
.SimpleAsync(Arg.Any<TestRequest>(), Arg.Any<Metadata>(), Arg.Any<DateTime?>(), Arg.Any<CancellationToken>())
.Returns(new TestResponse());
// Call
var response = await grpcClient.SimpleAsync(testRequest);
// Create client
var testRequest = new TestRequest();
var grpcClient = Substitute.For<TestService.TestServiceClient>();
// Add mock
grpcClient
.SimpleAsync(Arg.Any<TestRequest>(), Arg.Any<Metadata>(), Arg.Any<DateTime?>(), Arg.Any<CancellationToken>())
.Returns(() => new TestResponse());
// Call
var response = await grpcClient.SimpleAsync(testRequest);
// Create client
var testRequest = new TestRequest();
var grpcClient = Substitute.For<TestService.TestServiceClient>();
// Add mock
grpcClient
.SimpleAsync(Arg.Any<TestRequest>(), Arg.Any<Metadata>(), Arg.Any<DateTime?>(), Arg.Any<CancellationToken>())
.Returns<TestRequest, TestResponse>(r => new TestResponse{ Val = r.Val });
// Call
var response = await grpcClient.SimpleAsync(testRequest);
// Create client
var grpcMock = Substitute.For<TestService.TestServiceClient>();
// Add mock
grpcMock
.SimpleClientStream(Arg.Any<Metadata>(), Arg.Any<DateTime?>(), Arg.Any<CancellationToken>())
.Returns(expectedResponses);
// Call
var call = grpcMock.SimpleClientStream();
await call.RequestStream.WriteAllAsync(requests, complete: true);
var message = await call;
// Create client
var grpcMock = Substitute.For<TestService.TestServiceClient>();
// Add mock
grpcMock
.SimpleClientStream(Arg.Any<Metadata>(), Arg.Any<DateTime?>(), Arg.Any<CancellationToken>())
.Returns(() => expectedResponses);
// Call
var call = grpcMock.SimpleClientStream();
await call.RequestStream.WriteAllAsync(requests, complete: true);
var message = await call;
// Create client
var grpcMock = Substitute.For<TestService.TestServiceClient>();
// Add mock
grpcMock
.SimpleClientStream(Arg.Any<Metadata>(), Arg.Any<DateTime?>(), Arg.Any<CancellationToken>())
.Returns(rs => new TestResponse { Val = rs.Sum(r => r.Val) });
// Call
var call = grpcMock.SimpleClientStream();
await call.RequestStream.WriteAllAsync(requests, complete: true);
var message = await call;
// Create client
var grpcMock = Substitute.For<TestService.TestServiceClient>();
// Add mock
grpcMock
.SimpleServerStream(Arg.Any<TestRequest>(), null, null, default)
.Returns(expectedResponses);
// Call
var call = grpcMock.SimpleServerStream(new TestRequest());
var messages = await call.ResponseStream.ReadAllAsync().ToArrayAsync();
// Create client
var grpcMock = Substitute.For<TestService.TestServiceClient>();
// Add mock
grpcMock
.SimpleServerStream(Arg.Any<TestRequest>(), null, null, default)
.Returns(() => expectedResponses);
// Call
var call = grpcMock.SimpleServerStream(new TestRequest());
var messages = await call.ResponseStream.ReadAllAsync().ToArrayAsync();
// Create client
var grpcMock = Substitute.For<TestService.TestServiceClient>();
// Add mock
grpcMock
.SimpleServerStream(Arg.Any<TestRequest>(), null, null, default)
.Returns<TestRequest, TestResponse>(r => Enumerable.Repeat(new TestResponse { Val = r.Val }, 2));
// Call
var call = grpcMock.SimpleServerStream(new TestRequest());
var messages = await call.ResponseStream.ReadAllAsync().ToArrayAsync();
// Creation client
var grpcMock = Substitute.For<TestService.TestServiceClient>();
// Add mock
grpcMock
.SimpleClientServerStream(null, null, default)
.Returns(expectedResponses);
// Call
var call = grpcMock.SimpleClientServerStream();
await call.RequestStream.WriteAllAsync(requests, complete: true);
var messages = await call.ResponseStream.ReadAllAsync().ToArrayAsync();
// Creation client
var grpcMock = Substitute.For<TestService.TestServiceClient>();
// Add mock
grpcMock
.SimpleClientServerStream(null, null, default)
.Returns(() => expectedResponses);
// Call
var call = grpcMock.SimpleClientServerStream();
await call.RequestStream.WriteAllAsync(requests, complete: true);
var messages = await call.ResponseStream.ReadAllAsync().ToArrayAsync();
// Creation client
var grpcMock = Substitute.For<TestService.TestServiceClient>();
// Add mock
grpcMock
.SimpleClientServerStream(null, null, default)
.Returns(rs => new[] { new TestResponse { Val = rs.Sum(r => r.Val) } });
// Call
var call = grpcMock.SimpleClientServerStream();
await call.RequestStream.WriteAllAsync(requests, complete: true);
var messages = await call.ResponseStream.ReadAllAsync().ToArrayAsync();