Xamarin Public Jenkins (auto-signing) e46a49ecf1 Imported Upstream version 5.10.0.47
Former-commit-id: d0813289fa2d35e1f8ed77530acb4fb1df441bc0
2018-01-24 17:04:36 +00:00

133 lines
3.3 KiB
C#

//
// System.Xml.XmlAttributesTests
//
// Author:
// Atsushi Enomoto
//
// (C) 2003 Atsushi Enomoto
//
using System;
using System.IO;
using System.Text;
using System.Reflection;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;
using NUnit.Framework;
namespace MonoTests.System.XmlSerialization
{
[TestFixture]
public class XmlAttributesTests
{
StringWriter sw;
XmlTextWriter xtw;
XmlSerializer xs;
private void SetUpWriter ()
{
sw = new StringWriter ();
xtw = new XmlTextWriter (sw);
xtw.QuoteChar = '\'';
xtw.Formatting = Formatting.None;
}
private string WriterText
{
get
{
string val = sw.GetStringBuilder ().ToString();
int offset = val.IndexOf ('>') + 1;
val = val.Substring (offset);
return val;
}
}
private void Serialize (object o, XmlAttributeOverrides ao)
{
SetUpWriter ();
xs = new XmlSerializer (o.GetType (), ao);
xs.Serialize (xtw, o);
}
private void Serialize (object o, XmlRootAttribute root)
{
SetUpWriter ();
xs = new XmlSerializer (o.GetType(), root);
xs.Serialize (xtw, o);
}
// Testcases.
[Test]
[Category ("MobileNotWorking")]
public void NewXmlAttributes ()
{
// seems not different from Type specified ctor().
XmlAttributes atts = new XmlAttributes ();
Assert.IsNull (atts.XmlAnyAttribute, "#1");
Assert.IsNotNull (atts.XmlAnyElements, "#2");
Assert.AreEqual (0, atts.XmlAnyElements.Count, "#3");
Assert.IsNull (atts.XmlArray, "#4");
Assert.IsNotNull (atts.XmlArrayItems, "#5");
Assert.AreEqual (0, atts.XmlArrayItems.Count, "#6");
Assert.IsNull (atts.XmlAttribute, "#7");
Assert.IsNull (atts.XmlChoiceIdentifier, "#8");
Assert.IsNull (atts.XmlDefaultValue, "#9");
Assert.IsNotNull (atts.XmlElements, "#11");
Assert.AreEqual (0, atts.XmlElements.Count, "#12");
Assert.IsNull (atts.XmlEnum, "#13");
Assert.IsNotNull (atts.XmlIgnore, "#14");
Assert.AreEqual (TypeCode.Boolean, atts.XmlIgnore.GetTypeCode (), "#15");
Assert.AreEqual (false, atts.Xmlns, "#16");
Assert.IsNull (atts.XmlRoot, "#17");
Assert.IsNull (atts.XmlText, "#18");
Assert.IsNull (atts.XmlType, "#19");
}
[Test]
public void XmlTextAttribute ()
{
// based on default ctor.
XmlTextAttribute attr = new XmlTextAttribute ();
Assert.AreEqual ("", attr.DataType, "#1");
Assert.IsNull (attr.Type, "#2");
// based on a type.
XmlTextAttribute attr2 = new XmlTextAttribute (typeof (XmlNode));
Assert.AreEqual ("", attr.DataType, "#3");
Assert.IsNull (attr.Type, "#4");
}
[Test]
public void XmlInvalidElementAttribute ()
{
XmlAttributeOverrides ao = new XmlAttributeOverrides ();
XmlAttributes atts = new XmlAttributes ();
atts.XmlElements.Add (new XmlElementAttribute ("xInt"));
ao.Add (typeof (int), atts);
try {
Serialize (10, ao);
Assert.Fail ("Should be invalid.");
} catch (InvalidOperationException) {
}
}
[Test]
public void XmlIgnore ()
{
FieldInfo field = GetType ().GetField ("XmlIgnoreField");
XmlAttributes atts = new XmlAttributes (field);
Assert.AreEqual (true, atts.XmlIgnore, "#1");
Assert.AreEqual (0, atts.XmlElements.Count, "#2");
Assert.AreEqual (0, atts.XmlAnyElements.Count, "#3");
}
[XmlIgnore]
[XmlElement (IsNullable = true)]
[XmlAnyElement]
public int XmlIgnoreField;
}
}