| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913 |
- //
- // XmlDataDocumentTestTest.cs - NUnit Test Cases for XmlDataDocument
- //
- // Authors:
- // Ville Palo ([email protected])
- // Martin Willemoes Hansen ([email protected])
- //
- // (C) 2002 Ville Palo
- // (C) 2003 Martin Willemoes Hansen
- //
- //
- // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
- //
- // Permission is hereby granted, free of charge, to any person obtaining
- // a copy of this software and associated documentation files (the
- // "Software"), to deal in the Software without restriction, including
- // without limitation the rights to use, copy, modify, merge, publish,
- // distribute, sublicense, and/or sell copies of the Software, and to
- // permit persons to whom the Software is furnished to do so, subject to
- // the following conditions:
- //
- // The above copyright notice and this permission notice shall be
- // included in all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- //
- 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 : DataSetAssertion {
- static string EOL = "\n";
- [SetUp]
- public void GetReady()
- {
- Thread.CurrentThread.CurrentCulture = new CultureInfo ("en-US");
- }
- [Test]
- public void NewInstance ()
- {
- XmlDataDocument doc = new XmlDataDocument ();
- AssertDataSet ("#1", doc.DataSet, "NewDataSet", 0, 0);
- Assert.IsFalse (doc.DataSet.EnforceConstraints);
- XmlElement el = doc.CreateElement ("TEST");
- AssertDataSet ("#2", doc.DataSet, "NewDataSet", 0, 0);
- Assert.IsNull (doc.GetRowFromElement (el));
- doc.AppendChild (el);
- AssertDataSet ("#3", doc.DataSet, "NewDataSet", 0, 0);
- DataSet ds = new DataSet ();
- doc = new XmlDataDocument (ds);
- Assert.IsTrue (doc.DataSet.EnforceConstraints);
- }
- [Test]
- public void SimpleLoad ()
- {
- string xml001 = "<root/>";
- XmlDataDocument doc = new XmlDataDocument ();
- DataSet ds = new DataSet ();
- ds.InferXmlSchema (new StringReader (xml001), null);
- doc.LoadXml (xml001);
- string xml002 = "<root><child/></root>";
- doc = new XmlDataDocument ();
- ds = new DataSet ();
- ds.InferXmlSchema (new StringReader (xml002), null);
- doc.LoadXml (xml002);
- string xml003 = "<root><col1>test</col1><col1></col1></root>";
- doc = new XmlDataDocument ();
- ds = new DataSet ();
- ds.InferXmlSchema (new StringReader (xml003), null);
- doc.LoadXml (xml003);
- string xml004 = "<set><tab1><col1>test</col1><col1>test2</col1></tab1><tab2><col2>test3</col2><col2>test4</col2></tab2></set>";
- doc = new XmlDataDocument ();
- ds = new DataSet ();
- ds.InferXmlSchema (new StringReader (xml004), null);
- doc.LoadXml (xml004);
- }
- [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);
-
- Assert.AreEqual (0, doc2.ChildNodes.Count, "#I01");
- Assert.AreEqual ("<?xml version=\"1.0\" encoding=\"utf-16\"?>", doc2.DataSet.GetXmlSchema ().Substring (0, 39), "#I02");
-
- doc2 = (XmlDataDocument)doc.CloneNode (true);
-
- Assert.AreEqual (2, doc2.ChildNodes.Count, "#I03");
- Assert.AreEqual ("<?xml version=\"1.0\" encoding=\"utf-16\"?>", doc2.DataSet.GetXmlSchema ().Substring (0, 39), "#I04");
-
- doc.DataSet.Tables [0].Rows [0][0] = "64";
-
- Assert.AreEqual ("1", doc2.DataSet.Tables [0].Rows [0][0].ToString (), "#I05");
- }
- [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";
- Assert.AreEqual ("64", doc.DataSet.Tables [0].Rows [1] [0], "test#01");
-
- DataSet Set = new DataSet ();
- Set.ReadXml ("Test/System.Xml/region.xml");
- doc = new XmlDataDocument (Set);
-
- Element = doc.GetElementFromRow (doc.DataSet.Tables [0].Rows [1]);
- Assert.IsNotNull (Element);
-
- try {
- Element.FirstChild.InnerText = "64";
- Assert.Fail ("test#02");
- } catch (InvalidOperationException) {
- }
-
- Assert.AreEqual ("2", doc.DataSet.Tables [0].Rows [1] [0], "test#05");
-
- Set.EnforceConstraints = false;
- Element.FirstChild.InnerText = "64";
- Assert.AreEqual ("64", doc.DataSet.Tables [0].Rows [1] [0], "test#06");
- }
-
- [Test]
- public void EditingDataSet ()
- {
- string xml = "<Root><Region><RegionID>1</RegionID><RegionDescription>Eastern\r\n </RegionDescription></Region><Region><RegionID>2</RegionID><RegionDescription>Western\r\n </RegionDescription></Region><Region><RegionID>3</RegionID><RegionDescription>Northern\r\n </RegionDescription></Region><Region><RegionID>4</RegionID><RegionDescription>Southern\r\n </RegionDescription></Region><MoreData><Column1>12</Column1><Column2>Hi There</Column2></MoreData><MoreData><Column1>12</Column1><Column2>Hi There</Column2></MoreData></Root>";
- XmlReader Reader = new XmlTextReader ("Test/System.Xml/region.xml");
- XmlDataDocument Doc = new XmlDataDocument ();
- Doc.DataSet.ReadXml (Reader);
- StringWriter sw = new StringWriter ();
- XmlTextWriter xw = new XmlTextWriter (sw);
- Doc.DataSet.WriteXml (xw);
- string s = sw.ToString ();
- Assert.AreEqual (xml, s, "#1");
- Assert.AreEqual (xml, Doc.InnerXml, "#2");
- Assert.AreEqual ("EndOfFile", Reader.ReadState.ToString (), "test#01");
- DataSet Set = Doc.DataSet;
- Assert.AreEqual ("2", Set.Tables [0].Rows [1] [0], "test#01.5");
- Set.Tables [0].Rows [1] [0] = "64";
- Assert.AreEqual ("64", Doc.FirstChild.FirstChild.NextSibling.FirstChild.InnerText, "test#02");
- }
-
- [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");
- Assert.AreEqual ("prefix", Element.Prefix, "test#01");
- Assert.AreEqual ("localname", Element.LocalName, "test#02");
- Assert.AreEqual ("namespaceURI", Element.NamespaceURI, "test#03");
- 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.IsTrue (substring.IndexOf ("<Root>") != -1, "test#05");
- substring = TextString.Substring (0, TextString.IndexOf("\n"));
- TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
- Assert.IsTrue (substring.IndexOf (" <Region>") != -1, "test#06");
- substring = TextString.Substring (0, TextString.IndexOf("\n"));
- TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
- Assert.IsTrue (substring.IndexOf (" <RegionID>1</RegionID>") != -1, "test#07");
- 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.IsTrue (substring.IndexOf ("</Root>") != -1, "test#08");
- }
-
- [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");
- Assert.AreEqual ("", Element.Prefix, "test#01");
- Assert.AreEqual ("ElementName", Element.LocalName, "test#02");
- Assert.AreEqual ("", Element.NamespaceURI, "test#03");
-
- Element = doc.CreateElement ("prefix:ElementName");
- Assert.AreEqual ("prefix", Element.Prefix, "test#04");
- Assert.AreEqual ("ElementName", Element.LocalName, "test#05");
- Assert.AreEqual ("", Element.NamespaceURI, "test#06");
- }
- [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");
- Assert.AreEqual ("", Element.Prefix, "test#01");
- Assert.AreEqual ("ElementName", Element.LocalName, "test#02");
- Assert.AreEqual ("namespace", Element.NamespaceURI, "test#03");
-
- Element = doc.CreateElement ("prefix:ElementName", "namespace");
- Assert.AreEqual ("prefix", Element.Prefix, "test#04");
- Assert.AreEqual ("ElementName", Element.LocalName, "test#05");
- Assert.AreEqual ("namespace", Element.NamespaceURI, "test#06");
- }
-
- [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 ();
- Assert.AreEqual ("Root", Nav.Name.ToString (), "test#01");
- Assert.AreEqual ("", Nav.NamespaceURI.ToString (), "test#02");
- Assert.AreEqual ("False", Nav.IsEmptyElement.ToString (), "test#03");
- Assert.AreEqual ("Element", Nav.NodeType.ToString (), "test#04");
- Assert.AreEqual ("", Nav.Prefix, "test#05");
-
- Nav.MoveToFirstChild ();
- Nav.MoveToNext ();
- Assert.AreEqual ("Region", Nav.Name.ToString (), "test#06");
-
- Assert.AreEqual ("2Western", Nav.Value.Substring(0, Nav.Value.IndexOf ("\n") - 1), "test#07");
- Nav.MoveToFirstChild ();
- Assert.AreEqual ("2", Nav.Value, "test#08");
- Nav.MoveToRoot ();
- Assert.AreEqual ("Root", Nav.NodeType.ToString (), "test#09");
-
- }
- // 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 ();
- text.NewLine = "\n";
- 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(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf ("<?xml version=\"1.0\" encoding=\"utf-16\"?>") == 0, "#A01");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf ("<!--sample XML fragment-->") != -1, "#A02");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf ("<bookstore>") != -1, "#A03");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <book genre=\"novel\" ISBN=\"10-861003-324\">") != -1, "#A04");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <title>The Handmaid's Tale</title>") != -1, "#A05");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.AreEqual (" <price>12.95</price>", substring, "#A06");
-
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </book>") != -1, "#A07");
-
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <book genre=\"novel\" ISBN=\"1-861001-57-5\">") != -1, "#A08");
-
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <title>Pride And Prejudice</title>") != -1, "#A09");
-
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <price>24.95</price>") != -1, "#A10");
-
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </book>") != -1, "#A11");
-
- substring = TextString;
- Assert.IsTrue (substring.IndexOf ("</bookstore>") != -1, "#A12");
-
- }
- // Test public fields
- [Test]
- public void Test2()
- {
- DataSet RegionDS = new DataSet ();
- DataRow RegionRow;
- RegionDS.ReadXmlSchema ("Test/System.Xml/region.xsd");
- Assert.AreEqual (1, RegionDS.Tables.Count, "Was read correct?");
- 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 ();
- text.NewLine = "\n";
- DataDoc.Save (text);
- string TextString = text.ToString ();
- string substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
-
- //Assert.AreEqual ("<?xml version=\"1.0\" encoding=\"utf-16\" standalone=\"yes\"?>", substring, "#B01");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.AreEqual ("<Root>", substring, "#B02");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Region>") != -1, "#B03");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionID>1</RegionID>") != -1, "#B04");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.AreEqual (" <RegionDescription>Reeeeeaalllly Far East!</RegionDescription>", substring, "#B05");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </Region>") != -1, "#B06");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Region>") != -1, "#B07");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionID>2</RegionID>") != -1, "#B08");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionDescription>Western") != -1, "#B09");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </RegionDescription>") != -1, "#B10");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </Region>") != -1, "#B11");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Region>") != -1, "#B12");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionID>3</RegionID>") != -1, "#B13");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionDescription>Northern") != -1, "#B14");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </RegionDescription>") != -1, "#B15");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </Region>") != -1, "#B16");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Region>") != -1, "#B17");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionID>4</RegionID>") != -1, "#B18");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionDescription>Southern") != -1, "#B19");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </RegionDescription>") != -1, "#B20");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </Region>") != -1, "#B21");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <MoreData>") != -1, "#B22");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Column1>12</Column1>") != -1, "#B23");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Column2>Hi There</Column2>") != -1, "#B24");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </MoreData>") != -1, "#B25");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <MoreData>") != -1, "#B26");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Column1>12</Column1>") != -1, "#B27");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Column2>Hi There</Column2>") != -1, "#B28");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </MoreData>") != -1, "#B29");
- }
-
- [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 ();
- text.NewLine = "\n";
- dataset.WriteXml (text);
- //DataDoc.Save (text);
- string TextString = text.ToString ();
- string substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf ("<Root>") != -1, "#C01");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.AreEqual (" <Region />", substring, "#C02");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.AreEqual (" <Region>", substring, "#C03");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.AreEqual (" <RegionID>2</RegionID>", substring, "#C04");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- // Regardless of NewLine value, original xml contains CR
- // (but in the context of XML spec, it should be normalized)
- Assert.AreEqual (" <RegionDescription>Western\r", substring, "#C05");
-
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </RegionDescription>") != -1, "#C06");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.AreEqual (" </Region>", substring, "#C07");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Region>") != -1, "#C08");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionID>3</RegionID>") != -1, "#C09");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- // Regardless of NewLine value, original xml contains CR
- // (but in the context of XML spec, it should be normalized)
- Assert.AreEqual (" <RegionDescription>Northern\r", substring, "#C10");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </RegionDescription>") != -1, "#C11");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </Region>") != -1, "#C12");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Region>") != -1, "#C13");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionID>4</RegionID>") != -1, "#C14");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionDescription>Southern") != -1, "#C15");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </RegionDescription>") != -1, "#C16");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </Region>") != -1, "#C17");
- substring = TextString.Substring (0, TextString.Length);
- Assert.IsTrue (substring.IndexOf ("</Root>") != -1, "#C18");
- }
- [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");
- Assert.IsTrue (RegionDS.EnforceConstraints);
- 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 ();
- text.NewLine = "\n";
- DataDoc.Save (text);
- string TextString = text.ToString ();
- string substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf ("<Root>") != -1, "#F02");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Region>") != -1, "#F03");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionID>1</RegionID>") != -1, "#F04");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- // Regardless of NewLine value, original xml contains CR
- // (but in the context of XML spec, it should be normalized)
- Assert.AreEqual (" <RegionDescription>Eastern\r", substring, "#F05");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.AreEqual (" </RegionDescription>", substring, "#F06");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </Region>") != -1, "#F07");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Region>") != -1, "#F08");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionID>2</RegionID>") != -1, "#F09");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionDescription>Western") != -1, "#F10");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </RegionDescription>") != -1, "#F11");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </Region>") != -1, "#F12");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Region>") != -1, "#F13");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionID>3</RegionID>") != -1, "#F14");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionDescription>Northern") != -1, "#F15");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </RegionDescription>") != -1, "#F16");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </Region>") != -1, "#F17");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Region>") != -1, "#F18");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionID>4</RegionID>") != -1, "#F19");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- // Regardless of NewLine value, original xml contains CR
- // (but in the context of XML spec, it should be normalized)
- Assert.AreEqual (" <RegionDescription>Southern\r", substring, "#F20");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </RegionDescription>") != -1, "#F21");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </Region>") != -1, "#F22");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <MoreData>") != -1, "#F23");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Column1>12</Column1>") != -1, "#F24");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Column2>Hi There</Column2>") != -1, "#F25");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </MoreData>") != -1, "#F26");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <MoreData>") != -1, "#F27");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Column1>12</Column1>") != -1, "#F28");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Column2>Hi There</Column2>") != -1, "#F29");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </MoreData>") != -1, "#F30");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <Region>") != -1, "#F31");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionID>new row</RegionID>") != -1, "#F32");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" <RegionDescription>new description</RegionDescription>") != -1, "#F33");
- substring = TextString.Substring (0, TextString.IndexOf(EOL));
- TextString = TextString.Substring (TextString.IndexOf(EOL) + EOL.Length);
- Assert.IsTrue (substring.IndexOf (" </Region>") != -1, "#F34");
- substring = TextString.Substring (0, TextString.Length);
- Assert.IsTrue (substring.IndexOf ("</Root>") != -1, "#F35");
- }
- [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);
- Assert.Fail ("#G01");
- } catch (Exception e) {
- Assert.AreEqual (typeof (InvalidOperationException), e.GetType (), "#G02");
- Assert.AreEqual ("Please set DataSet.EnforceConstraints == false before trying to edit " +
- "XmlDataDocument using XML operations.", e.Message, "#G03");
- 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.IsTrue (substring.IndexOf (" <Region>") != -1, "#G04");
-
- substring = TextString.Substring (0, TextString.IndexOf("\n"));
- TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
- Assert.IsTrue (substring.IndexOf (" <RegionID>64</RegionID>") != -1, "#G05");
-
- substring = TextString.Substring (0, TextString.IndexOf("\n"));
- TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
- Assert.IsTrue (substring.IndexOf (" <RegionDescription>test node</RegionDescription>") != -1, "#G06");
-
- substring = TextString.Substring (0, TextString.IndexOf("\n"));
- TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
- Assert.IsTrue (substring.IndexOf (" </Region>") != -1, "#G07");
-
- substring = TextString.Substring (0, TextString.Length);
- Assert.IsTrue (substring.IndexOf ("</Root>") != -1, "#G08");
- }
-
- [Test]
- public void Test6 ()
- {
- DataSet RegionDS = new DataSet ();
-
- RegionDS.ReadXmlSchema ("Test/System.Xml/region.xsd");
- XmlDataDocument DataDoc = new XmlDataDocument (RegionDS);
- DataDoc.Load("Test/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");
- Assert.Fail ("#H01");
- } catch (XmlException) {
- }
- 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.IsTrue (substring.IndexOf (" <Region>") != -1, "#H03");
- substring = TextString.Substring (0, TextString.IndexOf("\n"));
- TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
- Assert.IsTrue (substring.IndexOf (" <RegionID>64</RegionID>") != -1, "#H04");
- substring = TextString.Substring (0, TextString.IndexOf("\n") );
- TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
- Assert.IsTrue (substring.IndexOf (" </Region>") != -1, "#H05");
- substring = TextString.Substring (0, TextString.Length);
- Assert.IsTrue (substring.IndexOf ("</Root>") != -1, "#H06");
-
-
- }
- [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]);
- Assert.AreEqual ("Region", element.Name, "#D01");
- Assert.AreEqual ("3", element ["RegionID"].InnerText, "#D02");
-
- try {
- element = doc.GetElementFromRow (table.Rows [4]);
- Assert.Fail ("#D03");
- } catch (Exception e) {
- Assert.AreEqual (typeof (IndexOutOfRangeException), e.GetType (), "#D04");
- Assert.AreEqual ("There is no row at position 4.", e.Message, "#D05");
- }
- }
-
- [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);
-
- Assert.AreEqual ("1", row [0], "#E01");
- row = doc.GetRowFromElement((XmlElement)root.ChildNodes [2]);
- Assert.AreEqual ("3", row [0], "#E02");
-
- }
- }
- }
|