From: Oleg T. <he...@us...> - 2004-10-17 21:01:50
|
Update of /cvsroot/mvp-xml/XInclude/v1/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11505/v1/test Modified Files: XIncludeReaderTests.cs XIncludeTest.csproj Added Files: EntryPoint.cs Log Message: XInclude Test Suite stuff. Index: XIncludeTest.csproj =================================================================== RCS file: /cvsroot/mvp-xml/XInclude/v1/test/XIncludeTest.csproj,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- XIncludeTest.csproj 16 Oct 2004 21:01:37 -0000 1.4 +++ XIncludeTest.csproj 17 Oct 2004 21:01:12 -0000 1.5 @@ -15,7 +15,7 @@ DefaultHTMLPageLayout = "Grid" DefaultTargetSchema = "IE50" DelaySign = "false" - OutputType = "Library" + OutputType = "Exe" PreBuildEvent = "" PostBuildEvent = "" RootNamespace = "Mvp.Xml.XInclude.Test" @@ -100,6 +100,11 @@ BuildAction = "Compile" /> <File + RelPath = "EntryPoint.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "FourThoughtTests.cs" SubType = "Code" BuildAction = "Compile" @@ -133,6 +138,18 @@ BuildAction = "Content" /> <File + RelPath = "results\filenotfound.xml" + BuildAction = "Content" + /> + <File + RelPath = "results\includesitself.xml" + BuildAction = "Content" + /> + <File + RelPath = "results\nonxmlchar.xml" + BuildAction = "Content" + /> + <File RelPath = "results\working_example.xml" BuildAction = "Content" /> --- NEW FILE: EntryPoint.cs --- using System; namespace Mvp.Xml.XInclude.Test { /// <summary> /// Entry point for console application. /// </summary> public class EntryPoint { public static void Main() { //XIncludeReaderTests rt = new XIncludeReaderTests(); EdUniTests rt = new EdUniTests(); try { rt.Test2(); } catch (Exception e) { Console.WriteLine(e); } } } } Index: XIncludeReaderTests.cs =================================================================== RCS file: /cvsroot/mvp-xml/XInclude/v1/test/XIncludeReaderTests.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- XIncludeReaderTests.cs 14 Oct 2004 15:17:13 -0000 1.2 +++ XIncludeReaderTests.cs 17 Oct 2004 21:01:12 -0000 1.3 @@ -21,27 +21,126 @@ Debug.Listeners.Add(new TextWriterTraceListener(Console.Error)); } + /// <summary> /// Utility method for running tests. /// </summary> public static void RunAndCompare(string source, string result) - { - XIncludingReader xir = new XIncludingReader(source); + { XmlDocument doc = new XmlDocument(); - doc.Load(xir); - MemoryStream ms = new MemoryStream(); - doc.Save(new StreamWriter(ms, Encoding.UTF8)); - ms.Position = 0; - string actualResult = new StreamReader(ms).ReadToEnd(); - StreamReader sr = new StreamReader(result); - string expectedResult = sr.ReadToEnd(); - sr.Close(); - if (actualResult != expectedResult) + doc.PreserveWhitespace = true; + XmlValidatingReader vr = new XmlValidatingReader(new XmlTextReader(source)); + vr.ValidationType = ValidationType.None; + vr.EntityHandling = EntityHandling.ExpandEntities; + doc.Load(new XIncludingReader(vr)); + XmlTextReader r1 = new XmlTextReader(new StringReader(doc.OuterXml)); + r1.WhitespaceHandling = WhitespaceHandling.Significant; + XmlTextReader r2 = new XmlTextReader(result); + r2.WhitespaceHandling = WhitespaceHandling.Significant; + try { - Console.WriteLine("Actual Result was {0}", actualResult); - Console.WriteLine("Expected Result was {0}", expectedResult); + while (r1.Read()) + { + Assert.IsTrue(r2.Read()); + while (r1.NodeType == XmlNodeType.XmlDeclaration || + r1.NodeType == XmlNodeType.Whitespace) + r1.Read(); + while (r2.NodeType == XmlNodeType.XmlDeclaration || + r2.NodeType == XmlNodeType.Whitespace) + r2.Read(); + switch (r1.NodeType) + { + case XmlNodeType.Attribute: + Assert.AreEqual(r2.NodeType, XmlNodeType.Attribute); + Assert.AreEqual(r1.Name, r2.Name); + Assert.AreEqual(r1.LocalName, r2.LocalName); + Assert.AreEqual(r1.NamespaceURI, r2.NamespaceURI); + Assert.AreEqual(r1.Value, r2.Value); + break; + case XmlNodeType.CDATA: + Assert.AreEqual(r2.NodeType, XmlNodeType.CDATA); + Assert.AreEqual(r1.Value, r2.Value); + break; + case XmlNodeType.Comment: + Assert.AreEqual(r2.NodeType, XmlNodeType.Comment); + Assert.AreEqual(r1.Value, r2.Value); + break; + case XmlNodeType.DocumentType: + Assert.AreEqual(r2.NodeType, XmlNodeType.DocumentType); + Assert.AreEqual(r1.Name, r2.Name); + Assert.AreEqual(r1.Value, r2.Value); + break; + case XmlNodeType.Element: + Assert.AreEqual(r2.NodeType, XmlNodeType.Element); + Assert.AreEqual(r1.Name, r2.Name); + Assert.AreEqual(r1.LocalName, r2.LocalName); + Assert.AreEqual(r1.NamespaceURI, r2.NamespaceURI); + Assert.AreEqual(r1.Value, r2.Value); + break; + case XmlNodeType.Entity: + Assert.AreEqual(r2.NodeType, XmlNodeType.Entity); + Assert.AreEqual(r1.Name, r2.Name); + Assert.AreEqual(r1.Value, r2.Value); + break; + case XmlNodeType.EndElement: + Assert.AreEqual(r2.NodeType, XmlNodeType.EndElement); + break; + case XmlNodeType.EntityReference: + Assert.AreEqual(r2.NodeType, XmlNodeType.EntityReference); + Assert.AreEqual(r1.Name, r2.Name); + Assert.AreEqual(r1.Value, r2.Value); + break; + case XmlNodeType.Notation: + Assert.AreEqual(r2.NodeType, XmlNodeType.Notation); + Assert.AreEqual(r1.Name, r2.Name); + Assert.AreEqual(r1.Value, r2.Value); + break; + case XmlNodeType.ProcessingInstruction: + Assert.AreEqual(r2.NodeType, XmlNodeType.ProcessingInstruction); + Assert.AreEqual(r1.Name, r2.Name); + Assert.AreEqual(r1.Value, r2.Value); + break; + case XmlNodeType.SignificantWhitespace: + Assert.AreEqual(r2.NodeType, XmlNodeType.SignificantWhitespace); + Assert.AreEqual(r1.Value, r2.Value); + break; + case XmlNodeType.Text: + Assert.AreEqual(r2.NodeType, XmlNodeType.Text); + Assert.AreEqual(r1.Value, r2.Value); + break; + default: + break; + } + } + Assert.IsFalse(r2.Read()); + Assert.IsTrue(r1.ReadState == ReadState.EndOfFile || r1.ReadState == ReadState.Closed); + Assert.IsTrue(r2.ReadState == ReadState.EndOfFile || r2.ReadState == ReadState.Closed); + } + catch(Exception e) + { + r1.Close(); + r1 = null; + r2.Close(); + r2 = null; + StreamReader sr = new StreamReader(result); + string expectedResult = sr.ReadToEnd(); + sr.Close(); + XIncludingReader xir = new XIncludingReader(source); + MemoryStream ms = new MemoryStream(); + doc.Save(new StreamWriter(ms, Encoding.UTF8)); + ms.Position = 0; + string actualResult = new StreamReader(ms).ReadToEnd(); + Console.WriteLine("\n-----------Expected result:-----------\n{0}", expectedResult); + Console.WriteLine("-----------Actual result:-----------\n{0}", actualResult); + throw e; + } + finally + { + if (r1 != null) + r1.Close(); + if (r2 != null) + r2.Close(); } - Assert.IsTrue(actualResult == expectedResult); } /// <summary> @@ -60,7 +159,7 @@ [ExpectedException(typeof(NonXmlCharacterException))] public void NonXMLChar() { - RunAndCompare("../../tests/nonxmlchar.xml", "../../results/result.xml"); + RunAndCompare("../../tests/nonxmlchar.xml", "../../results/nonxmlchar.xml"); } /// <summary> @@ -70,7 +169,7 @@ [ExpectedException(typeof(FatalResourceException))] public void FileNotFound() { - RunAndCompare("../../tests/filenotfound.xml", "../../results/result.xml"); + RunAndCompare("../../tests/filenotfound.xml", "../../results/filenotfound.xml"); } /// <summary> @@ -80,7 +179,7 @@ [ExpectedException(typeof(CircularInclusionException))] public void IncludesItself() { - RunAndCompare("../../tests/includesitself.xml", "../../results/result.xml"); + RunAndCompare("../../tests/includesitself.xml", "../../results/includesitself.xml"); } /// <summary> |