Merge pull request #1410 from alesliehughes/master
[mono.git] / mcs / class / System.Runtime.Serialization / Test / System.Runtime.Serialization / DataContractSerializerTest.cs
index 91fe958e0bf2d343721a2408e2a4028437845121..ada461fe2b8610290a5e9ef17a4170552cfd21e9 100644 (file)
@@ -92,6 +92,35 @@ namespace MonoTests.System.Runtime.Serialization
                         var ser = new DataContractSerializer(typeof(MyObject));
                        ser.ReadObject (XmlReader.Create(new StringReader(s)));
                }
-               
+
+               [Flags ()]
+               [Serializable]
+               public enum FlagsEnum
+               {
+                       None = 0,
+                       Flag1 = 0x10,
+                       Flag2 = 0x20,
+                       All = 0xffff,
+               };
+
+               [Serializable]
+               public class ClassWithFlagsEnum
+               {
+                       public FlagsEnum Flags = FlagsEnum.All;
+               }
+
+               // Bug #21072
+               [Test]
+               public void FlagsEnumTest ()
+               {
+                       var ser = new DataContractSerializer (typeof (ClassWithFlagsEnum));
+
+                       using (var m = new MemoryStream ()) {
+                               ser.WriteObject (m, new ClassWithFlagsEnum ());
+                               var data = m.ToArray ();
+                               var s = Encoding.UTF8.GetString (data, 0, (int) data.Length);
+                               Assert.IsTrue (s.Contains ("<Flags>All</Flags>"));
+                       }
+               }
        }
 }