Merge pull request #1052 from sethjackson/master
[mono.git] / mcs / class / System.Runtime.Serialization / Test / System.Runtime.Serialization / Bug11916Test.cs
1 using System;
2 using System.IO;
3 using System.Runtime.Serialization;
4 using System.Xml;
5 using System.Xml.Schema;
6 using System.Xml.Serialization;
7 using System.Text;
8
9 using NUnit.Framework;
10
11 namespace MonoTests.System.Runtime.Serialization
12 {
13
14     [XmlSchemaProvider(null, IsAny = true)]
15     public class TestElement : IXmlSerializable
16     {
17         public string Value { get; set; }
18
19         void IXmlSerializable.WriteXml(XmlWriter writer)
20         {
21             writer.WriteElementString("dummy", Value);
22         }
23
24         void IXmlSerializable.ReadXml(XmlReader reader)
25         {
26             Value = reader.ReadElementString("dummy");
27         }
28
29         XmlSchema IXmlSerializable.GetSchema()
30         {
31             return null;
32         }
33     }
34
35
36     [TestFixture]
37     public class Bug11916Test
38     {
39         [Test]
40         public void TestIsAnyTrueDataContractSerializer()
41         {
42             TestElement element = new TestElement();
43             element.Value = "bar";
44
45             StringBuilder stringBuilder = new StringBuilder ();
46
47             DataContractSerializer ser = new DataContractSerializer (typeof (TestElement));
48
49             using (var xw = XmlDictionaryWriter.CreateDictionaryWriter (XmlWriter.Create (new StringWriter (stringBuilder))))
50             {
51                 ser.WriteObject(xw, element);
52             }
53
54             string actualXml   = stringBuilder.ToString ();
55             string expectedXml = "<?xml version=\"1.0\" encoding=\"utf-16\"?><dummy>bar</dummy>";
56
57             Assert.AreEqual (expectedXml, actualXml, "#1 IsAny=true DataContractSerializer");
58         }
59     }
60 }