XmlDataDocumentTest.cs 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629
  1. //
  2. // XmlDataDocumentTestTest.cs - NUnit Test Cases for XmlDataDocument
  3. //
  4. // Ville Palo ([email protected])
  5. //
  6. // (C) Ville Palo 2002
  7. //
  8. using NUnit.Framework;
  9. using System;
  10. using System.Data;
  11. using System.Xml;
  12. using System.IO;
  13. namespace MonoTests.System.Data.Xml
  14. {
  15. public class XmlDataDocumentTest : TestCase {
  16. public XmlDataDocumentTest() : base ("System.Xml.XmlDataDocument") {}
  17. public XmlDataDocumentTest(string name) : base(name) {}
  18. protected override void TearDown() {}
  19. protected override void SetUp()
  20. {
  21. }
  22. public static ITest Suite {
  23. get {
  24. return new TestSuite(typeof(XmlDataDocumentTest));
  25. }
  26. }
  27. // Test constructor
  28. public void Test1()
  29. {
  30. //Create an XmlDataDocument.
  31. XmlDataDocument doc = new XmlDataDocument();
  32. //Load the schema file.
  33. doc.DataSet.ReadXmlSchema("System.Xml/store.xsd");
  34. //Load the XML data.
  35. doc.Load("System.Xml/2books.xml");
  36. //Update the price on the first book using the DataSet methods.
  37. DataTable books = doc.DataSet.Tables["book"];
  38. books.Rows[0]["price"] = "12,95";
  39. //string outstring = "";
  40. TextWriter text = new StringWriter ();
  41. doc.Save(text);
  42. //str.Read (bytes, 0, (int)str.Length);
  43. //String OutString = new String (bytes);
  44. string TextString = text.ToString ();
  45. string substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  46. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  47. AssertEquals ("#A01", "<?xml version=\"1.0\" encoding=\"utf-16\"?>", substring);
  48. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  49. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  50. AssertEquals ("#A02", "<!--sample XML fragment-->", substring);
  51. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  52. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  53. AssertEquals ("#A03", "<bookstore>", substring);
  54. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  55. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  56. AssertEquals ("#A04", " <book genre=\"novel\" ISBN=\"10-861003-324\">", substring);
  57. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  58. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  59. AssertEquals ("#A05", " <title>The Handmaid's Tale</title>", substring);
  60. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  61. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  62. AssertEquals ("#A06", " <price>12.95</price>", substring);
  63. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  64. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  65. AssertEquals ("#A07", " </book>", substring);
  66. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  67. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  68. AssertEquals ("#A08", " <book genre=\"novel\" ISBN=\"1-861001-57-5\">", substring);
  69. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  70. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  71. AssertEquals ("#A09", " <title>Pride And Prejudice</title>", substring);
  72. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  73. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  74. AssertEquals ("#A10", " <price>24.95</price>", substring);
  75. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  76. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  77. AssertEquals ("#A11", " </book>", substring);
  78. substring = TextString;
  79. AssertEquals ("#A12", "</bookstore>", substring);
  80. }
  81. // Test public fields
  82. public void Test2()
  83. {
  84. DataSet RegionDS = new DataSet ();
  85. DataRow RegionRow;
  86. RegionDS.ReadXmlSchema ("System.Xml/region.xsd");
  87. XmlDataDocument DataDoc = new XmlDataDocument (RegionDS);
  88. DataDoc.Load("System.Xml/region.xml" );
  89. RegionRow = RegionDS.Tables[0].Rows[0];
  90. RegionDS.AcceptChanges ();
  91. RegionRow["RegionDescription"] = "Reeeeeaalllly Far East!";
  92. RegionDS.AcceptChanges ();
  93. TextWriter text = new StringWriter ();
  94. DataDoc.Save (text);
  95. string TextString = text.ToString ();
  96. string substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  97. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  98. AssertEquals ("#B01", "<?xml version=\"1.0\" encoding=\"utf-16\" standalone=\"yes\"?>", substring);
  99. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  100. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  101. AssertEquals ("#B02", "<Root>", substring);
  102. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  103. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  104. AssertEquals ("#B03", " <Region>", substring);
  105. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  106. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  107. AssertEquals ("#B04", " <RegionID>1</RegionID>", substring);
  108. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  109. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  110. AssertEquals ("#B05", " <RegionDescription>Reeeeeaalllly Far East!</RegionDescription>", substring);
  111. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  112. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  113. AssertEquals ("#B06", " </Region>", substring);
  114. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  115. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  116. AssertEquals ("#B07", " <Region>", substring);
  117. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  118. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  119. AssertEquals ("#B08", " <RegionID>2</RegionID>", substring);
  120. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  121. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  122. AssertEquals ("#B09", " <RegionDescription>Western", substring);
  123. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  124. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  125. AssertEquals ("#B10", " </RegionDescription>", substring);
  126. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  127. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  128. AssertEquals ("#B11", " </Region>", substring);
  129. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  130. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  131. AssertEquals ("#B12", " <Region>", substring);
  132. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  133. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  134. AssertEquals ("#B13", " <RegionID>3</RegionID>", substring);
  135. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  136. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  137. AssertEquals ("#B14", " <RegionDescription>Northern", substring);
  138. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  139. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  140. AssertEquals ("#B15", " </RegionDescription>", substring);
  141. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  142. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  143. AssertEquals ("#B16", " </Region>", substring);
  144. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  145. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  146. AssertEquals ("#B17", " <Region>", substring);
  147. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  148. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  149. AssertEquals ("#B18", " <RegionID>4</RegionID>", substring);
  150. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  151. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  152. AssertEquals ("#B19", " <RegionDescription>Southern", substring);
  153. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  154. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  155. AssertEquals ("#B20", " </RegionDescription>", substring);
  156. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  157. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  158. AssertEquals ("#B21", " </Region>", substring);
  159. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  160. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  161. AssertEquals ("#B22", " <MoreData>", substring);
  162. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  163. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  164. AssertEquals ("#B23", " <Column1>12</Column1>", substring);
  165. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  166. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  167. AssertEquals ("#B24", " <Column2>Hi There</Column2>", substring);
  168. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  169. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  170. AssertEquals ("#B25", " </MoreData>", substring);
  171. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  172. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  173. AssertEquals ("#B26", " <MoreData>", substring);
  174. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  175. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  176. AssertEquals ("#B27", " <Column1>12</Column1>", substring);
  177. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  178. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  179. AssertEquals ("#B28", " <Column2>Hi There</Column2>", substring);
  180. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  181. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  182. AssertEquals ("#B29", " </MoreData>", substring);
  183. }
  184. public void Test3()
  185. {
  186. XmlDataDocument DataDoc = new XmlDataDocument ();
  187. DataSet dataset = DataDoc.DataSet;
  188. dataset.ReadXmlSchema ("System.Xml/region.xsd");
  189. DataDoc.Load("System.Xml/region.xml" );
  190. DataDoc.GetElementsByTagName ("Region") [0].RemoveAll ();
  191. TextWriter text = new StringWriter ();
  192. dataset.WriteXml (text);
  193. //DataDoc.Save (text);
  194. string TextString = text.ToString ();
  195. string substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  196. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  197. AssertEquals ("#C01", "<Root>", substring);
  198. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  199. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  200. AssertEquals ("#C02", " <Region />", substring);
  201. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  202. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  203. AssertEquals ("#C03", " <Region>", substring);
  204. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  205. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  206. AssertEquals ("#C04", " <RegionID>2</RegionID>", substring);
  207. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  208. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  209. AssertEquals ("#C05", " <RegionDescription>Western", substring);
  210. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  211. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  212. AssertEquals ("#C06", " </RegionDescription>", substring);
  213. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  214. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  215. AssertEquals ("#C07", " </Region>", substring);
  216. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  217. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  218. AssertEquals ("#C08", " <Region>", substring);
  219. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  220. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  221. AssertEquals ("#C09", " <RegionID>3</RegionID>", substring);
  222. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  223. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  224. AssertEquals ("#C10", " <RegionDescription>Northern", substring);
  225. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  226. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  227. AssertEquals ("#C11", " </RegionDescription>", substring);
  228. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  229. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  230. AssertEquals ("#C12", " </Region>", substring);
  231. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  232. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  233. AssertEquals ("#C13", " <Region>", substring);
  234. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  235. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  236. AssertEquals ("#C14", " <RegionID>4</RegionID>", substring);
  237. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  238. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  239. AssertEquals ("#C15", " <RegionDescription>Southern", substring);
  240. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  241. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  242. AssertEquals ("#C16", " </RegionDescription>", substring);
  243. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  244. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  245. AssertEquals ("#C17", " </Region>", substring);
  246. substring = TextString.Substring (0, TextString.Length);
  247. //TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  248. AssertEquals ("#C18", "</Root>", substring);
  249. }
  250. public void Test4 ()
  251. {
  252. DataSet RegionDS = new DataSet ();
  253. RegionDS.ReadXmlSchema ("System.Xml/region.xsd");
  254. XmlDataDocument DataDoc = new XmlDataDocument (RegionDS);
  255. DataDoc.Load("System.Xml/region.xml" );
  256. DataTable table = DataDoc.DataSet.Tables ["Region"];
  257. DataRow newRow = table.NewRow ();
  258. newRow [0] = "new row";
  259. newRow [1] = "new description";
  260. table.Rows.Add (newRow);
  261. TextWriter text = new StringWriter ();
  262. DataDoc.Save (text);
  263. string TextString = text.ToString ();
  264. string substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  265. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  266. AssertEquals ("#F01", "<?xml version=\"1.0\" encoding=\"utf-16\" standalone=\"yes\"?>", substring);
  267. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  268. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  269. AssertEquals ("#F02", "<Root>", substring);
  270. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  271. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  272. AssertEquals ("#F03", " <Region>", substring);
  273. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  274. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  275. AssertEquals ("#F04", " <RegionID>1</RegionID>", substring);
  276. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  277. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  278. AssertEquals ("#F05", " <RegionDescription>Eastern", substring);
  279. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  280. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  281. AssertEquals ("#F06", " </RegionDescription>", substring);
  282. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  283. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  284. AssertEquals ("#F07", " </Region>", substring);
  285. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  286. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  287. AssertEquals ("#F08", " <Region>", substring);
  288. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  289. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  290. AssertEquals ("#F09", " <RegionID>2</RegionID>", substring);
  291. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  292. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  293. AssertEquals ("#F10", " <RegionDescription>Western", substring);
  294. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  295. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  296. AssertEquals ("#F11", " </RegionDescription>", substring);
  297. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  298. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  299. AssertEquals ("#F12", " </Region>", substring);
  300. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  301. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  302. AssertEquals ("#F13", " <Region>", substring);
  303. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  304. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  305. AssertEquals ("#F14", " <RegionID>3</RegionID>", substring);
  306. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  307. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  308. AssertEquals ("#F15", " <RegionDescription>Northern", substring);
  309. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  310. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  311. AssertEquals ("#F16", " </RegionDescription>", substring);
  312. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  313. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  314. AssertEquals ("#F17", " </Region>", substring);
  315. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  316. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  317. AssertEquals ("#F18", " <Region>", substring);
  318. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  319. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  320. AssertEquals ("#F19", " <RegionID>4</RegionID>", substring);
  321. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  322. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  323. AssertEquals ("#F20", " <RegionDescription>Southern", substring);
  324. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  325. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  326. AssertEquals ("#F21", " </RegionDescription>", substring);
  327. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  328. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  329. AssertEquals ("#F22", " </Region>", substring);
  330. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  331. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  332. AssertEquals ("#F23", " <MoreData>", substring);
  333. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  334. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  335. AssertEquals ("#F24", " <Column1>12</Column1>", substring);
  336. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  337. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  338. AssertEquals ("#F25", " <Column2>Hi There</Column2>", substring);
  339. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  340. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  341. AssertEquals ("#F26", " </MoreData>", substring);
  342. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  343. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  344. AssertEquals ("#F27", " <MoreData>", substring);
  345. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  346. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  347. AssertEquals ("#F28", " <Column1>12</Column1>", substring);
  348. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  349. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  350. AssertEquals ("#F29", " <Column2>Hi There</Column2>", substring);
  351. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  352. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  353. AssertEquals ("#F30", " </MoreData>", substring);
  354. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  355. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  356. AssertEquals ("#F31", " <Region>", substring);
  357. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  358. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  359. AssertEquals ("#F32", " <RegionID>new row</RegionID>", substring);
  360. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  361. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  362. AssertEquals ("#F33", " <RegionDescription>new description</RegionDescription>", substring);
  363. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  364. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  365. AssertEquals ("#F34", " </Region>", substring);
  366. substring = TextString.Substring (0, TextString.Length);
  367. AssertEquals ("#F35", "</Root>", substring);
  368. }
  369. public void Test5 ()
  370. {
  371. DataSet RegionDS = new DataSet ();
  372. RegionDS.ReadXmlSchema ("System.Xml/region.xsd");
  373. XmlDataDocument DataDoc = new XmlDataDocument (RegionDS);
  374. DataDoc.Load("System.Xml/region.xml" );
  375. try {
  376. DataDoc.DocumentElement.AppendChild (DataDoc.DocumentElement.FirstChild);
  377. Fail ("#G01");
  378. } catch (Exception e) {
  379. AssertEquals ("#G02", typeof (InvalidOperationException), e.GetType ());
  380. AssertEquals ("#G03", "Please set DataSet.EnforceConstraints == false before trying to edit " +
  381. "XmlDataDocument using XML operations.", e.Message);
  382. DataDoc.DataSet.EnforceConstraints = false;
  383. }
  384. XmlElement newNode = DataDoc.CreateElement ("Region");
  385. XmlElement newChildNode = DataDoc.CreateElement ("RegionID");
  386. newChildNode.InnerText = "64";
  387. XmlElement newChildNode2 = DataDoc.CreateElement ("RegionDescription");
  388. newChildNode2.InnerText = "test node";
  389. newNode.AppendChild (newChildNode);
  390. newNode.AppendChild (newChildNode2);
  391. DataDoc.DocumentElement.AppendChild (newNode);
  392. TextWriter text = new StringWriter ();
  393. //DataDoc.Save (text);
  394. DataDoc.DataSet.WriteXml(text);
  395. string TextString = text.ToString ();
  396. string substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  397. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  398. for (int i = 0; i < 21; i++) {
  399. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  400. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  401. }
  402. AssertEquals ("#G04", " <Region>", substring);
  403. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  404. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  405. AssertEquals ("#G05", " <RegionID>64</RegionID>", substring);
  406. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  407. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  408. AssertEquals ("#G06", " <RegionDescription>test node</RegionDescription>", substring);
  409. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  410. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  411. AssertEquals ("#G07", " </Region>", substring);
  412. substring = TextString.Substring (0, TextString.Length);
  413. AssertEquals ("#G08", "</Root>", substring);
  414. }
  415. public void Test6 ()
  416. {
  417. DataSet RegionDS = new DataSet ();
  418. RegionDS.ReadXmlSchema ("System.Xml/region.xsd");
  419. XmlDataDocument DataDoc = new XmlDataDocument (RegionDS);
  420. DataDoc.Load("System.Xml/region.xml" );
  421. DataDoc.DataSet.EnforceConstraints = false;
  422. XmlElement newNode = DataDoc.CreateElement ("Region");
  423. XmlElement newChildNode = DataDoc.CreateElement ("RegionID");
  424. newChildNode.InnerText = "64";
  425. XmlElement newChildNode2 = null;
  426. try {
  427. newChildNode2 = DataDoc.CreateElement ("something else");
  428. Fail ("#H01");
  429. } catch (Exception e) {
  430. AssertEquals ("#H02", typeof (XmlException), e.GetType ());
  431. newChildNode2 = DataDoc.CreateElement ("something_else");
  432. }
  433. newChildNode2.InnerText = "test node";
  434. newNode.AppendChild (newChildNode);
  435. newNode.AppendChild (newChildNode2);
  436. DataDoc.DocumentElement.AppendChild (newNode);
  437. TextWriter text = new StringWriter ();
  438. //DataDoc.Save (text);
  439. DataDoc.DataSet.WriteXml(text);
  440. string TextString = text.ToString ();
  441. string substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  442. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  443. for (int i = 0; i < 21; i++) {
  444. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  445. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  446. }
  447. AssertEquals ("#H03", " <Region>", substring);
  448. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  449. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  450. AssertEquals ("#H04", " <RegionID>64</RegionID>", substring);
  451. substring = TextString.Substring (0, TextString.IndexOf("\n") - 1);
  452. TextString = TextString.Substring (TextString.IndexOf("\n") + 1);
  453. AssertEquals ("#H05", " </Region>", substring);
  454. substring = TextString.Substring (0, TextString.Length);
  455. AssertEquals ("#H06", "</Root>", substring);
  456. }
  457. public void TestGetElementFromRow ()
  458. {
  459. XmlDataDocument doc = new XmlDataDocument ();
  460. doc.DataSet.ReadXmlSchema ("System.Xml/region.xsd");
  461. doc.Load ("System.Xml/region.xml");
  462. DataTable table = doc.DataSet.Tables ["Region"];
  463. XmlElement element = doc.GetElementFromRow (table.Rows [2]);
  464. AssertEquals ("#D01", "Region", element.Name);
  465. AssertEquals ("#D02", "3", element ["RegionID"].InnerText);
  466. try {
  467. element = doc.GetElementFromRow (table.Rows [4]);
  468. Fail ("#D03");
  469. } catch (Exception e) {
  470. AssertEquals ("#D04", typeof (IndexOutOfRangeException), e.GetType ());
  471. AssertEquals ("#D05", "There is no row at position 4.", e.Message);
  472. }
  473. }
  474. public void TestGetRowFromElement ()
  475. {
  476. XmlDataDocument doc = new XmlDataDocument ();
  477. doc.DataSet.ReadXmlSchema ("System.Xml/region.xsd");
  478. doc.Load ("System.Xml/region.xml");
  479. XmlElement root = doc.DocumentElement;
  480. DataRow row = doc.GetRowFromElement((XmlElement)root.FirstChild);
  481. AssertEquals ("#E01", "1", row [0]);
  482. row = doc.GetRowFromElement((XmlElement)root.ChildNodes [2]);
  483. AssertEquals ("#E02", "3", row [0]);
  484. }
  485. }
  486. }