From 2e5e5f661c61f9523b84ec7407a159d13843d17c Mon Sep 17 00:00:00 2001
From: Jan Tattermusch <jtattermusch@google.com>
Date: Wed, 18 Jan 2017 21:31:06 +0100
Subject: [PATCH] add test for utf8 status

---
 src/csharp/Grpc.Core.Tests/ClientServerTest.cs | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/csharp/Grpc.Core.Tests/ClientServerTest.cs b/src/csharp/Grpc.Core.Tests/ClientServerTest.cs
index dcdddc769e..6bf9756962 100644
--- a/src/csharp/Grpc.Core.Tests/ClientServerTest.cs
+++ b/src/csharp/Grpc.Core.Tests/ClientServerTest.cs
@@ -335,6 +335,22 @@ namespace Grpc.Core.Tests
             Assert.AreEqual(StatusCode.Unimplemented, ex.Status.StatusCode);
         }
 
+        [Test]
+        public void StatusDetailIsUtf8()
+        {
+            // some japanese and chinese characters
+            var nonAsciiString = "\u30a1\u30a2\u30a3 \u62b5\u6297\u662f\u5f92\u52b3\u7684";
+            helper.UnaryHandler = new UnaryServerMethod<string, string>(async (request, context) =>
+            {
+                context.Status = new Status(StatusCode.Unknown, nonAsciiString);
+                return "";
+            });
+
+            var ex = Assert.Throws<RpcException>(() => Calls.BlockingUnaryCall(helper.CreateUnaryCall(), "abc"));
+            Assert.AreEqual(StatusCode.Unknown, ex.Status.StatusCode);
+            Assert.AreEqual(nonAsciiString, ex.Status.Detail);
+        }
+
         [Test]
         public void ServerCallContext_PeerInfoPresent()
         {
-- 
GitLab