You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

TestGrpcClient.cs 1.2 kB

1234567891011121314151617181920212223242526272829303132333435
  1. // Copyright (c) Microsoft Corporation. All rights reserved.
  2. // TestGrpcClient.cs
  3. using Microsoft.AutoGen.Protobuf;
  4. namespace Microsoft.AutoGen.RuntimeGateway.Grpc.Tests.Helpers.Grpc;
  5. internal sealed class TestGrpcClient : IDisposable
  6. {
  7. public TestAsyncStreamReader<Message> RequestStream { get; }
  8. public TestServerStreamWriter<Message> ResponseStream { get; }
  9. public TestServerCallContext CallContext { get; }
  10. private CancellationTokenSource CallContextCancellation = new();
  11. public TestGrpcClient()
  12. {
  13. CallContext = TestServerCallContext.Create(cancellationToken: CallContextCancellation.Token);
  14. RequestStream = new TestAsyncStreamReader<Message>(CallContext);
  15. ResponseStream = new TestServerStreamWriter<Message>(CallContext);
  16. }
  17. public async Task<Message> ReadNext()
  18. {
  19. var response = await ResponseStream.ReadNextAsync();
  20. return response!;
  21. }
  22. public void AddMessage(Message message)
  23. {
  24. RequestStream.AddMessage(message);
  25. }
  26. public void Dispose()
  27. {
  28. CallContextCancellation.Cancel();
  29. RequestStream.Dispose();
  30. ResponseStream.Dispose();
  31. }
  32. }