Переглянути джерело

Test JavaScriptSerializer.Deserialize with nullable enums. Covers #19287.

marcos henrich 11 роки тому
батько
коміт
5e76deaf72

+ 23 - 0
mcs/class/System.Web.Extensions/Test/System.Web.Script.Serialization/JavaScriptSerializerTest.cs

@@ -1365,5 +1365,28 @@ namespace MonoTests.System.Web.Script.Serialization
 			var ret2vad = (IDictionary<string,object>) ret2va [0];
 			Assert.AreEqual ("subval", ret2vad ["subkey"], "#2.4");
 		}
+		
+		class ClassWithNullableEnum
+		{
+			public MyEnum? Value { get; set; }
+		}
+		
+		[Test]
+		public void DeserializeNullableEnum ()
+		{		
+			var jsonValues = new Dictionary<string, MyEnum?> {
+				{ "{\"Value\":0}", MyEnum.AAA},
+				{ "{\"Value\":\"0\"}", MyEnum.AAA},
+				{ "{\"Value\":null}", null}
+			};
+			
+			var ser = new JavaScriptSerializer ();
+			
+			foreach (var kv in jsonValues)
+			{
+				var obj = ser.Deserialize<ClassWithNullableEnum> (kv.Key);
+				Assert.AreEqual (kv.Value, obj.Value);
+			}
+		}
 	}
 }