public async Task <TimeSpan> Test() { _stopWatch.Reset(); switch (Type) { case (int)Utilities.GrpcTypes.BiDirectionalStream: _stopWatch.Start(); using (var call = _client.GetCustomersWithBidirectionalStream()) { var result = new ConcurrentBag <GrpcRequest>(); var read = Task.Run(async() => { while (await call.ResponseStream.MoveNext(CancellationToken.None)) { result.Add(new GrpcRequest { Value = call.ResponseStream.Current.Value }); } }); foreach (var grpcRequest in GrpcRequests.ToList()) { await call.RequestStream.WriteAsync(grpcRequest); } await call.RequestStream.CompleteAsync(); await read; } _stopWatch.Stop(); var elapsedTime = _stopWatch.Elapsed; _stopWatch.Reset(); return(elapsedTime); case (int)Utilities.GrpcTypes.RequestResponse: _stopWatch.Start(); foreach (var grpcRequest in GrpcRequests.ToList()) { await _client.GetCustomerAsync(grpcRequest); } _stopWatch.Stop(); break; default: throw new ArgumentException("Type not supported"); } return(_stopWatch.Elapsed); }
public override async Task <GrpcResponses> GetCustomers(GrpcRequests request, ServerCallContext context) { Console.WriteLine("GetCustomers Server Received "); var response = new GrpcResponses(); foreach (var grpcRequest in request.Request) { response.Response.Add(new GrpcResponse { Value = grpcRequest.Value }); } return(await Task.FromResult(response)); }
public async Task Should_return_correct_value() { var result = new GrpcRequests(); ; var responses = await Client.GetCustomersAsync(_sampleRequest); foreach (var grpcResponse in responses.Response) { result.Request.Add(new GrpcRequest { Value = grpcResponse.Value }); } _sampleRequest.Should().BeEquivalentTo(result); }