2 // System.Xml.XmlAttributesTests
7 // (C) 2003 Atsushi Enomoto
13 using System.Reflection;
15 using System.Xml.Schema;
16 using System.Xml.Serialization;
18 using NUnit.Framework;
20 namespace MonoTests.System.XmlSerialization
23 public class XmlAttributesTests
29 private void SetUpWriter ()
31 sw = new StringWriter ();
32 xtw = new XmlTextWriter (sw);
34 xtw.Formatting = Formatting.None;
37 private string WriterText
41 string val = sw.GetStringBuilder ().ToString();
42 int offset = val.IndexOf ('>') + 1;
43 val = val.Substring (offset);
48 private void Serialize (object o, XmlAttributeOverrides ao)
51 xs = new XmlSerializer (o.GetType (), ao);
52 xs.Serialize (xtw, o);
55 private void Serialize (object o, XmlRootAttribute root)
58 xs = new XmlSerializer (o.GetType(), root);
59 xs.Serialize (xtw, o);
65 public void NewXmlAttributes ()
67 // seems not different from Type specified ctor().
68 XmlAttributes atts = new XmlAttributes ();
69 Assert.IsNull (atts.XmlAnyAttribute, "#1");
70 Assert.IsNotNull (atts.XmlAnyElements, "#2");
71 Assert.AreEqual (0, atts.XmlAnyElements.Count, "#3");
72 Assert.IsNull (atts.XmlArray, "#4");
73 Assert.IsNotNull (atts.XmlArrayItems, "#5");
74 Assert.AreEqual (0, atts.XmlArrayItems.Count, "#6");
75 Assert.IsNull (atts.XmlAttribute, "#7");
76 Assert.IsNull (atts.XmlChoiceIdentifier, "#8");
77 Assert.IsNull (atts.XmlDefaultValue, "#9");
78 Assert.IsNotNull (atts.XmlElements, "#11");
79 Assert.AreEqual (0, atts.XmlElements.Count, "#12");
80 Assert.IsNull (atts.XmlEnum, "#13");
81 Assert.IsNotNull (atts.XmlIgnore, "#14");
82 Assert.AreEqual (TypeCode.Boolean, atts.XmlIgnore.GetTypeCode (), "#15");
83 Assert.AreEqual (false, atts.Xmlns, "#16");
84 Assert.IsNull (atts.XmlRoot, "#17");
85 Assert.IsNull (atts.XmlText, "#18");
86 Assert.IsNull (atts.XmlType, "#19");
90 public void XmlTextAttribute ()
92 // based on default ctor.
93 XmlTextAttribute attr = new XmlTextAttribute ();
94 Assert.AreEqual ("", attr.DataType, "#1");
95 Assert.IsNull (attr.Type, "#2");
97 XmlTextAttribute attr2 = new XmlTextAttribute (typeof (XmlNode));
98 Assert.AreEqual ("", attr.DataType, "#3");
99 Assert.IsNull (attr.Type, "#4");
103 public void XmlInvalidElementAttribute ()
105 XmlAttributeOverrides ao = new XmlAttributeOverrides ();
106 XmlAttributes atts = new XmlAttributes ();
107 atts.XmlElements.Add (new XmlElementAttribute ("xInt"));
108 ao.Add (typeof (int), atts);
111 Assert.Fail ("Should be invalid.");
112 } catch (InvalidOperationException ex) {
117 public void XmlIgnore ()
119 FieldInfo field = GetType ().GetField ("XmlIgnoreField");
120 XmlAttributes atts = new XmlAttributes (field);
121 Assert.AreEqual (true, atts.XmlIgnore, "#1");
122 Assert.AreEqual (0, atts.XmlElements.Count, "#2");
123 Assert.AreEqual (0, atts.XmlAnyElements.Count, "#3");
127 [XmlElement (IsNullable = true)]
129 public int XmlIgnoreField;