System.Data.Tests.DataSetTest2.ReadXml_Strm5 C# (CSharp) Method

ReadXml_Strm5() private method

private ReadXml_Strm5 ( ) : void
return void
        public void ReadXml_Strm5()
        {
            string xmlData;
            string name;
            string expected;
            #region "TestCase 1 - Empty string"
            // Empty string
            var ds = new DataSet();
            StringReader sr = new StringReader(string.Empty);
            XmlTextReader xReader = new XmlTextReader(sr);
            Assert.Throws<XmlException>(() => ds.ReadXml(xReader));
            #endregion
            #region "TestCase 2 - Single element"
            name = "Single element";
            expected = "DataSet Name=a Tables count=0";
            xmlData = "<a>1</a>";
            PrivateTestCase(name, expected, xmlData);
            #endregion
            #region "TestCase 3 - Nesting one level single element."
            name = "Nesting one level single element.";
            expected = "DataSet Name=NewDataSet Tables count=1 Table Name=a Rows count=1 Items count=1 1";
            xmlData = "<a><b>1</b></a>";
            PrivateTestCase(name, expected, xmlData);
            #endregion
            #region "TestCase 4 - Nesting one level multiple elements."
            name = "Nesting one level multiple elements.";
            expected = "DataSet Name=NewDataSet Tables count=1 Table Name=a Rows count=1 Items count=3 bb cc dd";
            xmlData = "<a><b>bb</b><c>cc</c><d>dd</d></a>";
            PrivateTestCase(name, expected, xmlData);
            #endregion
            #region "TestCase 5 - Nesting two levels single elements."
            name = "Nesting two levels single elements.";
            expected = "DataSet Name=a Tables count=1 Table Name=b Rows count=1 Items count=1 cc";
            xmlData = "<a><b><c>cc</c></b></a>";
            PrivateTestCase(name, expected, xmlData);
            #endregion
            #region "TestCase 6 - Nesting two levels multiple elements."
            name = "Nesting two levels multiple elements.";
            expected = "DataSet Name=a Tables count=1 Table Name=b Rows count=1 Items count=2 cc dd";
            xmlData = string.Empty;
            xmlData += "<a>";
            xmlData += "<b>";
            xmlData += "<c>cc</c>";
            xmlData += "<d>dd</d>";
            xmlData += "</b>";
            xmlData += "</a>";
            PrivateTestCase(name, expected, xmlData);
            #endregion
            #region "TestCase 7 - Nesting two levels multiple elements."
            name = "Nesting two levels multiple elements.";
            expected = "DataSet Name=a Tables count=2 Table Name=b Rows count=1 Items count=2 cc dd Table Name=e Rows count=1 Items count=2 cc dd";
            xmlData = string.Empty;
            xmlData += "<a>";
            xmlData += "<b>";
            xmlData += "<c>cc</c>";
            xmlData += "<d>dd</d>";
            xmlData += "</b>";
            xmlData += "<e>";
            xmlData += "<c>cc</c>";
            xmlData += "<d>dd</d>";
            xmlData += "</e>";
            xmlData += "</a>";
            PrivateTestCase(name, expected, xmlData);
            #endregion
            #region "TestCase 8 - Nesting three levels single element."
            name = "Nesting three levels single element.";
            xmlData = string.Empty;
            xmlData += "<a>";
            xmlData += "<b>";
            xmlData += "<c>";
            xmlData += "<d>dd</d>";
            xmlData += "</c>";
            xmlData += "</b>";
            xmlData += "</a>";
            expected = "DataSet Name=a Tables count=2 Table Name=b Rows count=1 Items count=1 0 Table Name=c Rows count=1 Items count=2 0 dd";
            PrivateTestCase(name, expected, xmlData);
            #endregion
            #region "TestCase 9 - Nesting three levels multiple elements."
            name = "Nesting three levels multiple elements.";
            xmlData = string.Empty;
            xmlData += "<a>";
            xmlData += "<b>";
            xmlData += "<c>";
            xmlData += "<d>dd</d>";
            xmlData += "<e>ee</e>";
            xmlData += "</c>";
            xmlData += "</b>";
            xmlData += "</a>";
            expected = "DataSet Name=a Tables count=2 Table Name=b Rows count=1 Items count=1 0 Table Name=c Rows count=1 Items count=3 0 dd ee";
            PrivateTestCase(name, expected, xmlData);
            #endregion
            #region "TestCase 10 - Nesting three levels multiple elements."
            name = "Nesting three levels multiple elements.";
            xmlData = string.Empty;
            xmlData += "<a>";
            xmlData += "<b>";
            xmlData += "<c>";
            xmlData += "<d>dd</d>";
            xmlData += "<e>ee</e>";
            xmlData += "</c>";
            xmlData += "<f>ff</f>";
            xmlData += "</b>";
            xmlData += "</a>";
            expected = "DataSet Name=a Tables count=2 Table Name=b Rows count=1 Items count=2 0 ff Table Name=c Rows count=1 Items count=3 0 dd ee";
            PrivateTestCase(name, expected, xmlData);
            #endregion
            #region "TestCase 11 - Nesting three levels multiple elements."
            name = "Nesting three levels multiple elements.";
            xmlData = string.Empty;
            xmlData += "<a>";
            xmlData += "<b>";
            xmlData += "<c>";
            xmlData += "<d>dd</d>";
            xmlData += "<e>ee</e>";
            xmlData += "</c>";
            xmlData += "<f>ff</f>";
            xmlData += "<g>";
            xmlData += "<h>hh</h>";
            xmlData += "<i>ii</i>";
            xmlData += "</g>";
            xmlData += "<j>jj</j>";
            xmlData += "</b>";
            xmlData += "</a>";
            expected = "DataSet Name=a Tables count=3 Table Name=b Rows count=1 Items count=3 0 ff jj Table Name=c Rows count=1 Items count=3 0 dd ee Table Name=g Rows count=1 Items count=3 0 hh ii";
            PrivateTestCase(name, expected, xmlData);
            #endregion
            #region "TestCase 12 - Nesting three levels multiple elements."
            name = "Nesting three levels multiple elements.";
            xmlData = string.Empty;
            xmlData += "<a>";
            xmlData += "<b>";
            xmlData += "<c>";
            xmlData += "<d>dd</d>";
            xmlData += "<e>ee</e>";
            xmlData += "</c>";
            xmlData += "<f>ff</f>";
            xmlData += "</b>";
            xmlData += "<g>";
            xmlData += "<h>";
            xmlData += "<i>ii</i>";
            xmlData += "<j>jj</j>";
            xmlData += "</h>";
            xmlData += "<f>ff</f>";
            xmlData += "</g>";
            xmlData += "</a>";
            expected = "DataSet Name=a Tables count=4 Table Name=b Rows count=1 Items count=2 0 ff Table Name=c Rows count=1 Items count=3 0 dd ee Table Name=g Rows count=1 Items count=2 ff 0 Table Name=h Rows count=1 Items count=3 0 ii jj";
            PrivateTestCase(name, expected, xmlData);
            #endregion
            #region "TestCase 13 - Nesting three levels multiple elements."
            name = "Nesting three levels multiple elements.";
            xmlData = string.Empty;
            xmlData += "<a>";
            xmlData += "<b>";
            xmlData += "<c>";
            xmlData += "<d>dd</d>";
            xmlData += "<e>ee</e>";
            xmlData += "</c>";
            xmlData += "<f>ff</f>";
            xmlData += "<k>";
            xmlData += "<l>ll</l>";
            xmlData += "<m>mm</m>";
            xmlData += "</k>";
            xmlData += "<n>nn</n>";
            xmlData += "</b>";
            xmlData += "<g>";
            xmlData += "<h>";
            xmlData += "<i>ii</i>";
            xmlData += "<j>jj</j>";
            xmlData += "</h>";
            xmlData += "<o>oo</o>";
            xmlData += "</g>";
            xmlData += "</a>";
            expected = "DataSet Name=a Tables count=5 Table Name=b Rows count=1 Items count=3 0 ff nn Table Name=c Rows count=1 Items count=3 0 dd ee Table Name=k Rows count=1 Items count=3 0 ll mm Table Name=g Rows count=1 Items count=2 0 oo Table Name=h Rows count=1 Items count=3 0 ii jj";
            PrivateTestCase(name, expected, xmlData);
            #endregion

            #region "TestCase 14 - for Bug 2387 (System.Data.DataSet.ReadXml(..) - ArgumentException while reading specific XML)"

            name = "Specific XML - for Bug 2387";
            expected = "DataSet Name=PKRoot Tables count=2 Table Name=Content Rows count=4 Items count=2 0  Items count=2 1 103 Items count=2 2 123 Items count=2 3 252 Table Name=Cont Rows count=3 Items count=3 1 103 0 Items count=3 2 123 0 Items count=3 3 252 -4";
            xmlData = "<PKRoot><Content /><Content><ContentId>103</ContentId><Cont><ContentId>103</ContentId><ContentStatusId>0</ContentStatusId></Cont></Content><Content><ContentId>123</ContentId><Cont><ContentId>123</ContentId><ContentStatusId>0</ContentStatusId></Cont></Content><Content><ContentId>252</ContentId><Cont><ContentId>252</ContentId><ContentStatusId>-4</ContentStatusId></Cont></Content></PKRoot>";
            PrivateTestCase(name, expected, xmlData);

            #endregion
        }
DataSetTest2