public async Task InvokeMethodGrpcAsync_CanInvokeMethodWithReturnTypeNoData() { await using var client = TestClient.CreateForDaprClient(c => { c.UseJsonSerializationOptions(this.jsonSerializerOptions); }); var request = await client.CaptureGrpcRequestAsync(async daprClient => { return(await daprClient.InvokeMethodGrpcAsync <Response>("test", "test")); }); // Get Request and validate var envelope = await request.GetRequestEnvelopeAsync <InvokeServiceRequest>(); envelope.Id.Should().Be("test"); envelope.Message.Method.Should().Be("test"); envelope.Message.ContentType.Should().Be(string.Empty); // Create Response & Respond var data = new Response() { Name = "Look, I was invoked!" }; var response = new Autogen.Grpc.v1.InvokeResponse() { Data = Any.Pack(data), }; // Validate Response var invokedResponse = await request.CompleteWithMessageAsync(response); invokedResponse.Name.Should().Be("Look, I was invoked!"); }
public async Task InvokeMethodGrpcAsync_WithReturnTypeAndData() { await using var client = TestClient.CreateForDaprClient(c => { c.UseJsonSerializationOptions(this.jsonSerializerOptions); }); var invokeRequest = new Request() { RequestParameter = "Hello " }; var invokeResponse = new Response { Name = "Look, I was invoked!" }; var request = await client.CaptureGrpcRequestAsync(async daprClient => { return(await daprClient.InvokeMethodGrpcAsync <Request, Response>("test", "test", invokeRequest)); }); // Get Request and validate var envelope = await request.GetRequestEnvelopeAsync <InvokeServiceRequest>(); envelope.Id.Should().Be("test"); envelope.Message.Method.Should().Be("test"); envelope.Message.ContentType.Should().Be(Constants.ContentTypeApplicationGrpc); var actual = envelope.Message.Data.Unpack <Request>(); Assert.Equal(invokeRequest.RequestParameter, actual.RequestParameter); // Create Response & Respond var data = new Response() { Name = "Look, I was invoked!" }; var response = new Autogen.Grpc.v1.InvokeResponse() { Data = Any.Pack(data), }; // Validate Response var invokedResponse = await request.CompleteWithMessageAsync(response); invokeResponse.Name.Should().Be(invokeResponse.Name); }