//
// DataObjectTest.cs - NUnit Test Cases for DataObject
//
// Author:
// Sebastien Pouliot (spouliot@motus.com)
//
// (C) 2002 Motus Technologies Inc. (http://www.motus.com)
//
using NUnit.Framework;
using System;
using System.Security.Cryptography;
using System.Security.Cryptography.Xml;
using System.Xml;
namespace MonoTests.System.Security.Cryptography.Xml {
public class DataObjectTest : TestCase {
public DataObjectTest () : base ("System.Security.Cryptography.Xml.DataObject testsuite") {}
public DataObjectTest (string name) : base (name) {}
protected override void SetUp () {}
protected override void TearDown () {}
public static ITest Suite {
get {
return new TestSuite (typeof (DataObjectTest));
}
}
public void TestNewDataObject ()
{
string test = "DataObject";
XmlDocument doc = new XmlDocument ();
doc.LoadXml (test);
DataObject obj1 = new DataObject ();
Assert ("Data.Count==0", (obj1.Data.Count == 0));
obj1.Id = "id";
obj1.MimeType = "mime";
obj1.Encoding = "encoding";
AssertEquals ("Only attributes", "", (obj1.GetXml ().OuterXml));
obj1.Data = doc.ChildNodes;
Assert ("Data.Count==1", (obj1.Data.Count == 1));
XmlElement xel = obj1.GetXml ();
DataObject obj2 = new DataObject ();
obj2.LoadXml (xel);
AssertEquals ("obj1==obj2", (obj1.GetXml ().OuterXml), (obj2.GetXml ().OuterXml));
DataObject obj3 = new DataObject (obj1.Id, obj1.MimeType, obj1.Encoding, doc.DocumentElement);
AssertEquals ("obj2==obj3", (obj2.GetXml ().OuterXml), (obj3.GetXml ().OuterXml));
}
public void TestImportDataObject ()
{
string value1 = "";
XmlDocument doc = new XmlDocument ();
doc.LoadXml (value1);
DataObject obj1 = new DataObject ();
obj1.LoadXml (doc.DocumentElement);
Assert ("Data.Count==2", (obj1.Data.Count == 2));
string s = (obj1.GetXml ().OuterXml);
AssertEquals ("DataObject 1", value1, s);
string value2 = "";
doc = new XmlDocument ();
doc.LoadXml (value2);
DataObject obj2 = new DataObject ();
obj2.LoadXml (doc.DocumentElement);
s = (obj2.GetXml ().OuterXml);
AssertEquals ("DataObject 2", value2, s);
string value3 = "";
doc = new XmlDocument ();
doc.LoadXml (value3);
DataObject obj3 = new DataObject ();
obj3.LoadXml (doc.DocumentElement);
s = (obj3.GetXml ().OuterXml);
AssertEquals ("DataObject 3", value3, s);
string value4 = "";
doc = new XmlDocument ();
doc.LoadXml (value4);
DataObject obj4 = new DataObject ();
obj4.LoadXml (doc.DocumentElement);
s = (obj4.GetXml ().OuterXml);
AssertEquals ("DataObject 4", value4, s);
}
public void TestInvalidDataObject ()
{
DataObject obj1 = new DataObject ();
try {
obj1.Data = null;
Fail ("Expected ArgumentNullException but none");
}
catch (ArgumentNullException) {
// this is expected
}
catch (Exception e) {
Fail ("Expected ArgumentNullException but got: " + e.ToString ());
}
try {
obj1.LoadXml (null);
Fail ("Expected ArgumentNullException but none");
}
catch (ArgumentNullException) {
// this is expected
}
catch (Exception e) {
Fail ("Expected ArgumentNullException but got: " + e.ToString ());
}
// seems this isn't invalid !?!
string value = "Bad";
XmlDocument doc = new XmlDocument ();
doc.LoadXml (value);
obj1.LoadXml (doc.DocumentElement);
string s = (obj1.GetXml ().OuterXml);
AssertEquals ("DataObject Bad", value, s);
}
}
}