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);
        }