// // XmlDataDocumentTestTest.cs - NUnit Test Cases for XmlDataDocument // // Authors: // Ville Palo (vi64pa@koti.soon.fi) // Martin Willemoes Hansen (mwh@sysrq.dk) // // (C) 2002 Ville Palo // (C) 2003 Martin Willemoes Hansen // using NUnit.Framework; using System; using System.Data; using System.Xml; using System.Xml.XPath; using System.IO; using System.Threading; using System.Globalization; namespace MonoTests.System.Data.Xml { [TestFixture] public class XmlDataDocumentTest : Assertion { [SetUp] public void GetReady() { Thread.CurrentThread.CurrentCulture = new CultureInfo ("en-US"); } [Test] public void CloneNode () { XmlDataDocument doc = new XmlDataDocument (); doc.DataSet.ReadXmlSchema ("Test/System.Xml/region.xsd"); doc.Load ("Test/System.Xml/region.xml"); XmlDataDocument doc2 = (XmlDataDocument)doc.CloneNode (false); AssertEquals ("#I01", 0, doc2.ChildNodes.Count); AssertEquals ("#I02", "", doc2.DataSet.GetXmlSchema ().Substring (0, 39)); doc2 = (XmlDataDocument)doc.CloneNode (true); AssertEquals ("#I03", 2, doc2.ChildNodes.Count); AssertEquals ("#I04", "", doc2.DataSet.GetXmlSchema ().Substring (0, 39)); doc.DataSet.Tables [0].Rows [0][0] = "64"; AssertEquals ("#I05", "1", doc2.DataSet.Tables [0].Rows [0][0].ToString ()); } [Test] public void EditingXmlTree () { XmlDataDocument doc = new XmlDataDocument (); doc.DataSet.ReadXmlSchema ("Test/System.Xml/region.xsd"); doc.Load ("Test/System.Xml/region.xml"); XmlElement Element = doc.GetElementFromRow (doc.DataSet.Tables [0].Rows [1]); Element.FirstChild.InnerText = "64"; AssertEquals ("test#01", "64", doc.DataSet.Tables [0].Rows [1] [0]); DataSet Set = new DataSet (); Set.ReadXml ("Test/System.Xml/region.xml"); doc = new XmlDataDocument (Set); Element = doc.GetElementFromRow (doc.DataSet.Tables [0].Rows [1]); try { Element.FirstChild.InnerText = "64"; Fail ("test#02"); } catch (Exception e) { AssertEquals ("test#03", typeof (InvalidOperationException), e.GetType ()); AssertEquals ("test#04", "Please set DataSet.EnforceConstraints == false before trying to edit XmlDataDocument using XML operations.", e.Message); } AssertEquals ("test#05", "2", doc.DataSet.Tables [0].Rows [1] [0]); Set.EnforceConstraints = false; Element.FirstChild.InnerText = "64"; AssertEquals ("test#06", "64", doc.DataSet.Tables [0].Rows [1] [0]); } [Test] public void EditingDataSet () { XmlReader Reader = new XmlTextReader ("Test/System.Xml/region.xml"); XmlDataDocument Doc = new XmlDataDocument (); Doc.DataSet.ReadXml (Reader); AssertEquals ("test#01", "EndOfFile", Reader.ReadState.ToString ()); DataSet Set = Doc.DataSet; Set.Tables [0].Rows [1] [0] = "64"; AssertEquals ("test#02", "64", Doc.FirstChild.FirstChild.NextSibling.FirstChild.InnerText); } [Test] public void CreateElement1 () { XmlDataDocument doc = new XmlDataDocument (); doc.DataSet.ReadXmlSchema ("Test/System.Xml/region.xsd"); doc.Load ("Test/System.Xml/region.xml"); XmlElement Element = doc.CreateElement ("prefix", "localname", "namespaceURI"); AssertEquals ("test#01", "prefix", Element.Prefix); AssertEquals ("test#02", "localname", Element.LocalName); AssertEquals ("test#03", "namespaceURI", Element.NamespaceURI); doc.ImportNode (Element, false); TextWriter text = new StringWriter (); doc.Save(text); string substring = ""; string TextString = text.ToString (); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("test#05", substring.IndexOf ("") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("test#06", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("test#07", substring.IndexOf (" 1") != -1); for (int i = 0; i < 26; i++) { substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); } substring = TextString.Substring (0, TextString.Length); Assert ("test#07", substring.IndexOf ("") != -1); } [Test] public void CreateElement2 () { XmlDataDocument doc = new XmlDataDocument (); doc.DataSet.ReadXmlSchema ("Test/System.Xml/region.xsd"); doc.Load ("Test/System.Xml/region.xml"); XmlElement Element = doc.CreateElement ("ElementName"); AssertEquals ("test#01", "", Element.Prefix); AssertEquals ("test#02", "ElementName", Element.LocalName); AssertEquals ("test#03", "", Element.NamespaceURI); Element = doc.CreateElement ("prefix:ElementName"); AssertEquals ("test#04", "prefix", Element.Prefix); AssertEquals ("test#05", "ElementName", Element.LocalName); AssertEquals ("test#06", "", Element.NamespaceURI); } [Test] public void CreateElement3 () { XmlDataDocument doc = new XmlDataDocument (); doc.DataSet.ReadXmlSchema ("Test/System.Xml/region.xsd"); doc.Load ("Test/System.Xml/region.xml"); XmlElement Element = doc.CreateElement ("ElementName", "namespace"); AssertEquals ("test#01", "", Element.Prefix); AssertEquals ("test#02", "ElementName", Element.LocalName); AssertEquals ("test#03", "namespace", Element.NamespaceURI); Element = doc.CreateElement ("prefix:ElementName", "namespace"); AssertEquals ("test#04", "prefix", Element.Prefix); AssertEquals ("test#05", "ElementName", Element.LocalName); AssertEquals ("test#06", "namespace", Element.NamespaceURI); } [Test] public void Navigator () { XmlDataDocument doc = new XmlDataDocument (); doc.DataSet.ReadXmlSchema ("Test/System.Xml/region.xsd"); doc.Load ("Test/System.Xml/region.xml"); XPathNavigator Nav = doc.CreateNavigator (); Nav.MoveToRoot (); Nav.MoveToFirstChild (); AssertEquals ("test#01", "Root", Nav.Name.ToString ()); AssertEquals ("test#02", "", Nav.NamespaceURI.ToString ()); AssertEquals ("test#03", "False", Nav.IsEmptyElement.ToString ()); AssertEquals ("test#04", "Element", Nav.NodeType.ToString ()); AssertEquals ("test#05", "", Nav.Prefix); Nav.MoveToFirstChild (); Nav.MoveToNext (); AssertEquals ("test#06", "Region", Nav.Name.ToString ()); AssertEquals ("test#07", "2Western", Nav.Value.Substring(0, Nav.Value.IndexOf ("\n") - 1)); Nav.MoveToFirstChild (); AssertEquals ("test#08", "2", Nav.Value); Nav.MoveToRoot (); AssertEquals ("test#09", "Root", Nav.NodeType.ToString ()); } // Test constructor [Test] public void Test1() { //Create an XmlDataDocument. XmlDataDocument doc = new XmlDataDocument(); //Load the schema file. doc.DataSet.ReadXmlSchema("Test/System.Xml/store.xsd"); Console.WriteLine ("books: " + doc.DataSet.Tables.Count); //Load the XML data. doc.Load("Test/System.Xml/2books.xml"); //Update the price on the first book using the DataSet methods. DataTable books = doc.DataSet.Tables["book"]; Console.WriteLine ("books: " + doc.DataSet.Tables [0].TableName); books.Rows[0]["price"] = "12.95"; //string outstring = ""; TextWriter text = new StringWriter (); doc.Save(text); //str.Read (bytes, 0, (int)str.Length); //String OutString = new String (bytes); string TextString = text.ToString (); string substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#A01", substring.IndexOf ("") == 0); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#A02", substring.IndexOf ("") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#A03", substring.IndexOf ("") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#A04", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#A05", substring.IndexOf (" The Handmaid's Tale") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#A06", substring.IndexOf (" 12.95") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#A07", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#A08", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#A09", substring.IndexOf (" Pride And Prejudice") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#A10", substring.IndexOf (" 24.95") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#A11", substring.IndexOf (" ") != -1); substring = TextString; Assert ("#A12", substring.IndexOf ("") != -1); } // Test public fields [Test] public void Test2() { DataSet RegionDS = new DataSet (); DataRow RegionRow; RegionDS.ReadXmlSchema ("Test/System.Xml/region.xsd"); XmlDataDocument DataDoc = new XmlDataDocument (RegionDS); DataDoc.Load("Test/System.Xml/region.xml" ); RegionRow = RegionDS.Tables[0].Rows[0]; RegionDS.AcceptChanges (); RegionRow["RegionDescription"] = "Reeeeeaalllly Far East!"; RegionDS.AcceptChanges (); TextWriter text = new StringWriter (); DataDoc.Save (text); string TextString = text.ToString (); string substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); //AssertEquals ("#B01", "", substring); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B02", substring.IndexOf ("") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B03", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B04", substring.IndexOf (" 1") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B05", substring.IndexOf (" Reeeeeaalllly Far East!") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B06", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B07", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B08", substring.IndexOf (" 2") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B09", substring.IndexOf (" Western") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B10", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B11", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B12", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B13", substring.IndexOf (" 3") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B14", substring.IndexOf (" Northern") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B15", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B16", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B17", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B18", substring.IndexOf (" 4") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B19", substring.IndexOf (" Southern") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B20", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B21", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B22", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B23", substring.IndexOf (" 12") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B24", substring.IndexOf (" Hi There") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B25", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B26", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B27", substring.IndexOf (" 12") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B28", substring.IndexOf (" Hi There") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#B29", substring.IndexOf (" ") != -1); } [Test] public void Test3() { XmlDataDocument DataDoc = new XmlDataDocument (); DataSet dataset = DataDoc.DataSet; dataset.ReadXmlSchema ("Test/System.Xml/region.xsd"); DataDoc.Load("Test/System.Xml/region.xml" ); DataDoc.GetElementsByTagName ("Region") [0].RemoveAll (); TextWriter text = new StringWriter (); dataset.WriteXml (text); //DataDoc.Save (text); string TextString = text.ToString (); string substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C01", substring.IndexOf ("") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C02", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C03", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C04", substring.IndexOf (" 2") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")- 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C05", substring.IndexOf (" Western") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C06", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C07", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C08", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C09", substring.IndexOf (" 3") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C10", substring.IndexOf (" Northern") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C11", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C12", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C13", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C14", substring.IndexOf (" 4") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C15", substring.IndexOf (" Southern") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C16", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#C17", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.Length); Assert ("#C18", substring.IndexOf ("") != -1); } [Test] public void Test4 () { DataSet RegionDS = new DataSet (); RegionDS.ReadXmlSchema ("Test/System.Xml/region.xsd"); XmlDataDocument DataDoc = new XmlDataDocument (RegionDS); DataDoc.Load("Test/System.Xml/region.xml" ); DataTable table = DataDoc.DataSet.Tables ["Region"]; DataRow newRow = table.NewRow (); newRow [0] = "new row"; newRow [1] = "new description"; table.Rows.Add (newRow); TextWriter text = new StringWriter (); DataDoc.Save (text); string TextString = text.ToString (); string substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F02", substring.IndexOf ("") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F03", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F04", substring.IndexOf (" 1") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F05", substring.IndexOf (" Eastern") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F06", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F07", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F08", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F09", substring.IndexOf (" 2") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F10", substring.IndexOf (" Western") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F11", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F12", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F13", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F14", substring.IndexOf (" 3") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F15", substring.IndexOf (" Northern") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F16", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F17", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F18", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F19", substring.IndexOf (" 4") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F20", substring.IndexOf (" Southern") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F21", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F22", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F23", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F24", substring.IndexOf (" 12") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F25", substring.IndexOf (" Hi There") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F26", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F27", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F28", substring.IndexOf (" 12") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F29", substring.IndexOf (" Hi There") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F30", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F31", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F32", substring.IndexOf (" new row") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F33", substring.IndexOf (" new description") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#F34", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.Length); Assert ("#F35", substring.IndexOf ("") != -1); } [Test] public void Test5 () { DataSet RegionDS = new DataSet (); RegionDS.ReadXmlSchema ("Test/System.Xml/region.xsd"); XmlDataDocument DataDoc = new XmlDataDocument (RegionDS); DataDoc.Load("Test/System.Xml/region.xml" ); try { DataDoc.DocumentElement.AppendChild (DataDoc.DocumentElement.FirstChild); Fail ("#G01"); } catch (Exception e) { AssertEquals ("#G02", typeof (InvalidOperationException), e.GetType ()); AssertEquals ("#G03", "Please set DataSet.EnforceConstraints == false before trying to edit " + "XmlDataDocument using XML operations.", e.Message); DataDoc.DataSet.EnforceConstraints = false; } XmlElement newNode = DataDoc.CreateElement ("Region"); XmlElement newChildNode = DataDoc.CreateElement ("RegionID"); newChildNode.InnerText = "64"; XmlElement newChildNode2 = DataDoc.CreateElement ("RegionDescription"); newChildNode2.InnerText = "test node"; newNode.AppendChild (newChildNode); newNode.AppendChild (newChildNode2); DataDoc.DocumentElement.AppendChild (newNode); TextWriter text = new StringWriter (); //DataDoc.Save (text); DataDoc.DataSet.WriteXml(text); string TextString = text.ToString (); string substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); for (int i = 0; i < 21; i++) { substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); } Assert ("#G04", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#G05", substring.IndexOf (" 64") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#G06", substring.IndexOf (" test node") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#G07", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.Length); Assert ("#G08", substring.IndexOf ("") != -1); } [Test] public void Test6 () { DataSet RegionDS = new DataSet (); RegionDS.ReadXmlSchema ("Test/System.Xml/region.xsd"); XmlDataDocument DataDoc = new XmlDataDocument (RegionDS); DataDoc.Load("System.Xml/region.xml" ); DataDoc.DataSet.EnforceConstraints = false; XmlElement newNode = DataDoc.CreateElement ("Region"); XmlElement newChildNode = DataDoc.CreateElement ("RegionID"); newChildNode.InnerText = "64"; XmlElement newChildNode2 = null; try { newChildNode2 = DataDoc.CreateElement ("something else"); Fail ("#H01"); } catch (Exception e) { AssertEquals ("#H02", typeof (XmlException), e.GetType ()); newChildNode2 = DataDoc.CreateElement ("something_else"); } newChildNode2.InnerText = "test node"; newNode.AppendChild (newChildNode); newNode.AppendChild (newChildNode2); DataDoc.DocumentElement.AppendChild (newNode); TextWriter text = new StringWriter (); //DataDoc.Save (text); DataDoc.DataSet.WriteXml(text); string TextString = text.ToString (); string substring = TextString.Substring (0, TextString.IndexOf("\n") - 1); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); for (int i = 0; i < 21; i++) { substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); } Assert ("#H03", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n")); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#H04", substring.IndexOf (" 64") != -1); substring = TextString.Substring (0, TextString.IndexOf("\n") ); TextString = TextString.Substring (TextString.IndexOf("\n") + 1); Assert ("#H05", substring.IndexOf (" ") != -1); substring = TextString.Substring (0, TextString.Length); Assert ("#H06", substring.IndexOf ("") != -1); } [Test] public void GetElementFromRow () { XmlDataDocument doc = new XmlDataDocument (); doc.DataSet.ReadXmlSchema ("Test/System.Xml/region.xsd"); doc.Load ("Test/System.Xml/region.xml"); DataTable table = doc.DataSet.Tables ["Region"]; XmlElement element = doc.GetElementFromRow (table.Rows [2]); AssertEquals ("#D01", "Region", element.Name); AssertEquals ("#D02", "3", element ["RegionID"].InnerText); try { element = doc.GetElementFromRow (table.Rows [4]); Fail ("#D03"); } catch (Exception e) { AssertEquals ("#D04", typeof (IndexOutOfRangeException), e.GetType ()); AssertEquals ("#D05", "There is no row at position 4.", e.Message); } } [Test] public void GetRowFromElement () { XmlDataDocument doc = new XmlDataDocument (); doc.DataSet.ReadXmlSchema ("Test/System.Xml/region.xsd"); doc.Load ("Test/System.Xml/region.xml"); XmlElement root = doc.DocumentElement; DataRow row = doc.GetRowFromElement((XmlElement)root.FirstChild); AssertEquals ("#E01", "1", row [0]); row = doc.GetRowFromElement((XmlElement)root.ChildNodes [2]); AssertEquals ("#E02", "3", row [0]); } } }