Added a bulk of tests from Mainsoft repository.
[mono.git] / mcs / class / System.Data / Test / System.Data / DataTableCollectionTest2.cs
index e3bcb15bd7eddb31bbce935d065e4bac850df33d..ec1db6f389ce262fd451651df5b718813cea833c 100644 (file)
@@ -287,5 +287,196 @@ namespace MonoTests_System.Data
                        Assert.AreEqual(dt, ds.Tables["NewTable1"], "DTC41");
                        Assert.AreEqual(dt1, ds.Tables["NewTable2"], "DTC42");
                }
+
+               [Test]\r
+               public void DataTableCollection_Add_D1()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+                       DataTable dt = new DataTable("NewTable1");\r
+                       ds.Tables.Add(dt);\r
+                       Assert.AreEqual("NewTable1",ds.Tables[0].TableName,"DTC43");\r
+               }\r
+\r
+               [Test]\r
+               [ExpectedException(typeof(ArgumentNullException))]\r
+               public void DataTableCollection_Add_D2()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+\r
+                       ds.Tables.Add((DataTable)null);\r
+               }\r
+\r
+               [Test]\r
+               [ExpectedException(typeof(ArgumentException))]\r
+#if !TARGET_JVM\r
+               [Category ("NotWorking")]\r
+#endif\r
+               public void DataTableCollection_Add_D3()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+                       DataSet ds1 = new DataSet();\r
+                       ds1.Tables.Add();\r
+\r
+                       ds.Tables.Add(ds1.Tables[0]);\r
+               }\r
+\r
+               [Test]\r
+               [ExpectedException(typeof(DuplicateNameException))]\r
+               public void DataTableCollection_Add_D4()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+                       ds.Tables.Add();\r
+\r
+                       DataTable dt = new DataTable("Table1");\r
+                       ds.Tables.Add(dt);\r
+               }
+
+               [Test]\r
+               public void DataTableCollection_Add_S1()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+                       ds.Tables.Add("NewTable1");\r
+                       Assert.AreEqual("NewTable1",ds.Tables[0].TableName,"DTC44");\r
+                       ds.Tables.Add("NewTable2");\r
+                       Assert.AreEqual("NewTable2",ds.Tables[1].TableName,"DTC45");\r
+               }\r
+\r
+               [Test]\r
+               [ExpectedException(typeof(DuplicateNameException))]\r
+               public void DataTableCollection_Add_S2()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+                       ds.Tables.Add("NewTable1");\r
+\r
+                       ds.Tables.Add("NewTable1");\r
+               }
+
+               [Test]\r
+               public void DataTableCollection_Clear1()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+                       ds.Tables.Add();\r
+                       ds.Tables.Add();\r
+                       ds.Tables.Clear();\r
+                       Assert.AreEqual(0,ds.Tables.Count,"DTC46");\r
+\r
+               }\r
+\r
+               [Test]\r
+               [ExpectedException(typeof(IndexOutOfRangeException))]\r
+               public void DataTableCollection_Clear2()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+                       ds.Tables.Add();\r
+                       ds.Tables.Add();\r
+                       ds.Tables.Clear();\r
+\r
+                       ds.Tables[0].TableName = "Error";\r
+               }
+
+               [Test]\r
+               public void DataTableCollection_Remove_D1()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+                       DataTable dt = new DataTable("NewTable1");\r
+                       DataTable dt1 = new DataTable("NewTable2");\r
+                       ds.Tables.AddRange(new DataTable[] {dt,dt1});\r
+\r
+                       ds.Tables.Remove(dt);\r
+                       Assert.AreEqual(1,ds.Tables.Count,"DTC47");\r
+                       Assert.AreEqual(dt1,ds.Tables[0],"DTC48");\r
+                       ds.Tables.Remove(dt1);\r
+                       Assert.AreEqual(0,ds.Tables.Count,"DTC49");\r
+               }\r
+\r
+               [Test]\r
+               [ExpectedException(typeof(ArgumentException))]\r
+               public void DataTableCollection_Remove_D2()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+                       DataTable dt = new DataTable("NewTable1");\r
+\r
+                       ds.Tables.Remove(dt);\r
+               }\r
+\r
+               [Test]\r
+               [ExpectedException(typeof(ArgumentNullException))]\r
+               public void DataTableCollection_Remove_D3()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+\r
+                       ds.Tables.Remove((DataTable)null);\r
+               }
+
+               [Test]\r
+               public void DataTableCollection_Remove_S1()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+                       DataTable dt = new DataTable("NewTable1");\r
+                       DataTable dt1 = new DataTable("NewTable2");\r
+                       ds.Tables.AddRange(new DataTable[] {dt,dt1});\r
+\r
+                       ds.Tables.Remove("NewTable1");\r
+                       Assert.AreEqual(1,ds.Tables.Count,"DTC50");\r
+                       Assert.AreEqual(dt1,ds.Tables[0],"DTC51");\r
+                       ds.Tables.Remove("NewTable2");\r
+                       Assert.AreEqual(0,ds.Tables.Count,"DTC52");     \r
+               }\r
+\r
+               [Test]\r
+               [ExpectedException(typeof(ArgumentException))]\r
+#if !TARGET_JVM\r
+               [Category ("NotWorking")]\r
+#endif\r
+               public void DataTableCollection_Remove_S2()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+\r
+                       ds.Tables.Remove("NewTable2");\r
+               }\r
+\r
+               [Test]\r
+               [ExpectedException(typeof(ArgumentException))]\r
+#if !TARGET_JVM\r
+               [Category ("NotWorking")]\r
+#endif\r
+               public void DataTableCollection_Remove_S3()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+\r
+                       ds.Tables.Remove((string)null);\r
+               }
+
+               [Test]\r
+               public void DataTableCollection_RemoveAt_I1()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+                       DataTable dt = new DataTable("NewTable1");\r
+                       DataTable dt1 = new DataTable("NewTable2");\r
+                       ds.Tables.AddRange(new DataTable[] {dt,dt1});\r
+\r
+                       ds.Tables.RemoveAt(1);\r
+                       Assert.AreEqual(dt,ds.Tables[0],"DTC53");\r
+                       ds.Tables.RemoveAt(0);\r
+                       Assert.AreEqual(0,ds.Tables.Count,"DTC54");\r
+               }\r
+\r
+               [Test]\r
+               [ExpectedException(typeof(IndexOutOfRangeException))]\r
+               public void DataTableCollection_RemoveAt_I2()\r
+               {\r
+                       DataSet ds = new DataSet();\r
+\r
+                       ds.Tables.RemoveAt(-1);\r
+               }\r
+\r
+               [Test]\r
+               [ExpectedException(typeof(ArgumentException))]\r
+               public void DataTableCollection_RemoveAt_I3()\r
+               {\r
+                       DataSet ds = DataProvider.CreateForigenConstraint();\r
+\r
+                       ds.Tables.RemoveAt(0); //Parent table\r
+               }
        }
 }