From 90eb388c17a611f01579856307b64c781bb39663 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch <jtattermusch@google.com> Date: Wed, 9 Nov 2016 22:53:16 +0100 Subject: [PATCH] add more MetadataCredentials tests --- .../MetadataCredentialsTest.cs | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/csharp/Grpc.IntegrationTesting/MetadataCredentialsTest.cs b/src/csharp/Grpc.IntegrationTesting/MetadataCredentialsTest.cs index eb3bb8a28b..10ab67abae 100644 --- a/src/csharp/Grpc.IntegrationTesting/MetadataCredentialsTest.cs +++ b/src/csharp/Grpc.IntegrationTesting/MetadataCredentialsTest.cs @@ -103,6 +103,33 @@ namespace Grpc.IntegrationTesting client.UnaryCall(new SimpleRequest { }, new CallOptions(credentials: callCredentials)); } + [Test] + public void MetadataCredentials_InterceptorLeavesMetadataEmpty() + { + var channelCredentials = ChannelCredentials.Create(TestCredentials.CreateSslCredentials(), + CallCredentials.FromInterceptor(new AsyncAuthInterceptor((context, metadata) => TaskUtils.CompletedTask))); + channel = new Channel(Host, server.Ports.Single().BoundPort, channelCredentials, options); + client = new TestService.TestServiceClient(channel); + + var ex = Assert.Throws<RpcException>(() => client.UnaryCall(new SimpleRequest { })); + Assert.AreEqual(StatusCode.Unknown, ex.Status.StatusCode); + } + + [Test] + public void MetadataCredentials_InterceptorThrows() + { + var callCredentials = CallCredentials.FromInterceptor(new AsyncAuthInterceptor((context, metadata) => + { + throw new Exception("Auth interceptor throws"); + })); + var channelCredentials = ChannelCredentials.Create(TestCredentials.CreateSslCredentials(), callCredentials); + channel = new Channel(Host, server.Ports.Single().BoundPort, channelCredentials, options); + client = new TestService.TestServiceClient(channel); + + var ex = Assert.Throws<RpcException>(() => client.UnaryCall(new SimpleRequest { })); + Assert.AreEqual(StatusCode.Unauthenticated, ex.Status.StatusCode); + } + private class FakeTestService : TestService.TestServiceBase { public override Task<SimpleResponse> UnaryCall(SimpleRequest request, ServerCallContext context) -- GitLab