Add test to verify that JsonEncodedText and Utf8JsonWriter use upper-case hex digits...
authorAhson Khan <ahson_ahmedk@yahoo.com>
Wed, 13 Nov 2019 00:10:30 +0000 (16:10 -0800)
committermsftbot[bot] <48340428+msftbot[bot]@users.noreply.github.com>
Wed, 13 Nov 2019 00:10:30 +0000 (00:10 +0000)
* Add test to verify that JsonEncodedText and Utf8JsonWriter use
upper-case hex digits when escaping.

* Add test to verify that JsonEncodedText and Utf8JsonWriter use
upper-case hex digits when escaping.

* Fix spacing issue in expected text.

Commit migrated from https://github.com/dotnet/corefx/commit/6878693e4bdeb509abfdf51ad40a5a1aae46e2e4

src/libraries/System.Text.Json/tests/Utf8JsonWriterTests.cs

index 1456e0b..d24cb8e 100644 (file)
@@ -4661,6 +4661,24 @@ namespace System.Text.Json.Tests
             JsonTestHelper.AssertContents("{" + ValidUtf16Expected + ":" + ValidUtf16Expected + "}", output);
         }
 
+        // Test case from https://github.com/dotnet/corefx/issues/40702
+        [Fact]
+        public void OutputConsistentWithJsonEncodedText()
+        {
+            string jsonEncodedText = $"{{\"{JsonEncodedText.Encode("propertyName+1")}\":\"{JsonEncodedText.Encode("value+1")}\"}}";
+            
+            var output = new ArrayBufferWriter<byte>(1024);
+
+            using (var writer = new Utf8JsonWriter(output))
+            {
+                writer.WriteStartObject();
+                writer.WriteString("propertyName+1", "value+1");
+                writer.WriteEndObject();
+            }
+
+            JsonTestHelper.AssertContents(jsonEncodedText, output);
+        }
+
         public static IEnumerable<object[]> JsonEncodedTextStringsCustomAll
         {
             get