[Test] public void AddNew() { //create the source datatable DataTable dt = DataProvider.CreateChildDataTable(); //create the dataview for the table DataView dv = new DataView(dt); int CountView = dv.Count; int CountTable = dt.Rows.Count; DataRowView drv = null; // AddNew - DataView Row Count drv = dv.AddNew(); Assert.AreEqual(dv.Count, CountView + 1, "DV1"); // AddNew - Table Row Count Assert.AreEqual(dt.Rows.Count, CountTable, "DV2"); // AddNew - new row in DataTable drv.EndEdit(); Assert.AreEqual(dt.Rows.Count, CountTable + 1, "DV3"); // AddNew - new row != null Assert.AreEqual(true, drv != null, "DV4"); // AddNew - check table Assert.AreEqual(dt, drv.Row.Table, "DV5"); }
[Test] public void CreateChildView_ByDataRelation() { //create a dataset with two tables, with a DataRelation between them DataTable dtParent = DataProvider.CreateParentDataTable(); DataTable dtChild = DataProvider.CreateChildDataTable(); DataSet ds = new DataSet(); ds.Tables.Add(dtParent); ds.Tables.Add(dtChild); DataRelation drel = new DataRelation("ParentChild", dtParent.Columns["ParentId"], dtChild.Columns["ParentId"]); ds.Relations.Add(drel); //DataView dvChild = null; DataView dvParent = new DataView(dtParent); DataView dvTmp1 = dvParent[0].CreateChildView(drel); DataView dvTmp2 = dvParent[3].CreateChildView(drel); // ChildView != null Assert.AreEqual(true, dvTmp1 != null, "DRV10"); // Child view table = ChildTable Assert.AreEqual(dtChild, dvTmp1.Table, "DRV11"); // ChildView1.Table = ChildView2.Table Assert.AreEqual(dvTmp2.Table, dvTmp1.Table, "DRV12"); //the child dataview are different // Child DataViews different Assert.AreEqual(false, dvTmp1.Equals(dvTmp2), "DRV13"); }
[Test] public void relationName() { DataSet ds = new DataSet(); DataTable dtChild = DataProvider.CreateChildDataTable(); DataTable dtParent = DataProvider.CreateParentDataTable(); ds.Tables.Add(dtParent); ds.Tables.Add(dtChild); DataRelation dRel; dRel = new DataRelation(null, dtParent.Columns[0], dtChild.Columns[0]); // RelationName default 1 Assert.AreEqual(string.Empty, dRel.RelationName, "DR61"); ds.Relations.Add(dRel); // RelationName default 2 Assert.AreEqual("Relation1", dRel.RelationName, "DR62"); dRel.RelationName = "myRelation"; // RelationName get/set Assert.AreEqual("myRelation", dRel.RelationName, "DR63"); }
[Test] public new void ToString() { DataSet ds = new DataSet(); DataTable dtChild = DataProvider.CreateChildDataTable(); DataTable dtParent = DataProvider.CreateParentDataTable(); ds.Tables.Add(dtParent); ds.Tables.Add(dtChild); DataRelation dRel; dRel = new DataRelation(null, dtParent.Columns[0], dtChild.Columns[0]); // ToString 1 Assert.AreEqual(string.Empty, dRel.ToString(), "DR10"); ds.Relations.Add(dRel); // ToString 2 Assert.AreEqual("Relation1", dRel.ToString(), "DR11"); dRel.RelationName = "myRelation"; // ToString 3 Assert.AreEqual("myRelation", dRel.ToString(), "DR12"); }
public void ctor_DclmDclm3() { DataSet ds = new DataSet(); ds.Tables.Add(DataProvider.CreateParentDataTable()); ds.Tables.Add(DataProvider.CreateChildDataTable()); ds.Tables["Child"].Columns["ParentId"].Expression = "2"; ForeignKeyConstraint fc = new ForeignKeyConstraint(ds.Tables[0].Columns[0], ds.Tables[1].Columns[0]); }
public void Generate3() { DataTable tbl = DataProvider.CreateChildDataTable(); DataRow drParent = tbl.Rows[0]; drParent.Delete(); tbl.AcceptChanges(); object obj = drParent[0, DataRowVersion.Original]; }
public void AddRange_C2() { DataSet ds = new DataSet(); ds.Tables.Add(DataProvider.CreateParentDataTable()); ds.Tables.Add(DataProvider.CreateChildDataTable()); ds.Tables[1].Constraints.AddRange(GetConstraintArray(ds)); //Cuz foreign key belongs to child table Assert.AreEqual(2, ds.Tables[1].Constraints.Count, "ccarc#2"); Assert.AreEqual(1, ds.Tables[0].Constraints.Count, "ccarc#3"); }
private DataSet GetNewDataSet() { DataSet ds1 = new DataSet(); ds1.Tables.Add(DataProvider.CreateParentDataTable()); ds1.Tables.Add(DataProvider.CreateChildDataTable()); ds1.Tables[0].PrimaryKey = new DataColumn[] { ds1.Tables[0].Columns[0] }; return(ds1); }
public void AddRange_C3() { DataSet ds = new DataSet(); ds.Tables.Add(DataProvider.CreateParentDataTable()); ds.Tables.Add(DataProvider.CreateChildDataTable()); Constraint badConstraint = new UniqueConstraint(ds.Tables[0].Columns[0]); ds.Tables[1].Constraints.AddRange(new Constraint[] { badConstraint }); //Cuz foreign key belongs to child table }
private DataSet getDataSet() { DataSet ds = new DataSet(); DataTable dt1 = DataProvider.CreateParentDataTable(); DataTable dt2 = DataProvider.CreateChildDataTable(); ds.Tables.Add(dt1); ds.Tables.Add(dt2); return(ds); }
public void CanRemove_PartOfRelation() { DataSet ds = new DataSet(); ds.Tables.Add(DataProvider.CreateParentDataTable()); ds.Tables.Add(DataProvider.CreateChildDataTable()); ds.Relations.Add("rel", ds.Tables[0].Columns["ParentId"], ds.Tables[1].Columns["ParentId"], false); Assert.AreEqual(false, ds.Tables.CanRemove(ds.Tables[0]), "DTC11"); Assert.AreEqual(false, ds.Tables.CanRemove(ds.Tables[1]), "DTC12"); }
[Test] public void ctor_DataColumns() { Exception tmpEx = new Exception(); DataTable dtParent = DataProvider.CreateParentDataTable(); UniqueConstraint uc = null; uc = new UniqueConstraint(new DataColumn[] { dtParent.Columns[0], dtParent.Columns[1] }); // Ctor - parent Assert.AreEqual(false, uc == null, "UC20"); // Ctor - add exisiting column dtParent.Rows.Add(new object[] { 99, "str1", "str2" }); dtParent.Constraints.Add(uc); try { dtParent.Rows.Add(new object[] { 99, "str1", "str2" }); Assert.Fail("DS333: Rows.Add Failed to throw ConstraintException"); } catch (ConstraintException) {} catch (AssertionException exc) { throw exc; } catch (Exception exc) { Assert.Fail("DS334: Rows.Add. Wrong exception type. Got:" + exc); } DataTable dtChild = DataProvider.CreateChildDataTable(); uc = new UniqueConstraint(new DataColumn[] { dtChild.Columns[0], dtChild.Columns[1] }); dtChild.Constraints.Add(uc); // Ctor - child Assert.AreEqual(false, uc == null, "UC21"); dtChild.Constraints.Clear(); uc = new UniqueConstraint(new DataColumn[] { dtChild.Columns[1], dtChild.Columns[2] }); //target columnn are not unnique, will throw an exception // ArgumentException - child try { dtChild.Constraints.Add(uc); Assert.Fail("DS333: Constraints.Add Failed to throw ArgumentException"); } catch (ArgumentException) {} catch (AssertionException exc) { throw exc; } catch (Exception exc) { Assert.Fail("DS334: Constraints.Add. Wrong exception type. Got:" + exc); } }
[Test] public void FindRows_ByKeys() { DataRowView[] dvArr = null; //create the source datatable DataTable dt = DataProvider.CreateChildDataTable(); //create the dataview for the table DataView dv = new DataView(dt); // FindRows ,no sort - exception try { dvArr = dv.FindRows(new object[] { "3", "3-String1" }); Assert.Fail("DV40: FindRows Failed to throw ArgumentException"); } catch (ArgumentException) {} catch (AssertionException exc) { throw exc; } catch (Exception exc) { Assert.Fail("DV41: FindRows. Wrong exception type. Got:" + exc); } dv.Sort = "String1,ChildId"; // Find = wrong sort, can not find dvArr = dv.FindRows(new object[] { "3", "3-String1" }); Assert.AreEqual(0, dvArr.Length, "DV42"); dv.Sort = "ChildId,String1"; //get expected results DataRow[] drExpected = dt.Select("ChildId=3 and String1='3-String1'"); // FindRows - check count dvArr = dv.FindRows(new object[] { "3", "3-String1" }); Assert.AreEqual(drExpected.Length, dvArr.Length, "DV43"); // FindRows - check data //check that result is ok bool Succeed = true; for (int i = 0; i < dvArr.Length; i++) { Succeed = (int)dvArr[i]["ChildId"] == (int)drExpected [i]["ChildId"]; if (!Succeed) { break; } } Assert.AreEqual(true, Succeed, "DV44"); }
public void Expression_AggregateRelation() { DataTable parent = DataProvider.CreateParentDataTable(); DataTable child = DataProvider.CreateChildDataTable(); DataSet ds = new DataSet(); ds.Tables.Add(parent); ds.Tables.Add(child); ds.Relations.Add("Relation1", parent.Columns[0], child.Columns[0], false); //Create the computed columns DataColumn dcComputedParent = new DataColumn("computedParent", Type.GetType("System.Double")); parent.Columns.Add(dcComputedParent); dcComputedParent.Expression = "sum(child(Relation1)." + child.Columns[1].ColumnName + ")"; double preCalculatedExpression; foreach (DataRow dr in parent.Rows) { object o = child.Compute("sum(" + child.Columns[1].ColumnName + ")", parent.Columns[0].ColumnName + "=" + dr[0]); if (o == DBNull.Value) { Assert.AreEqual(dr["computedParent"], o, "dcear#1"); } else { preCalculatedExpression = Convert.ToDouble(o); Assert.AreEqual(dr["computedParent"], preCalculatedExpression, "dcear#2"); } } DataColumn dcComputedChild = new DataColumn("computedChild", Type.GetType("System.Double")); child.Columns.Add(dcComputedChild); dcComputedChild.Expression = "Parent." + parent.Columns[0].ColumnName; int index = 0; double val; foreach (DataRow dr in child.Rows) { val = Convert.ToDouble(dr.GetParentRow("Relation1")[0]); Assert.AreEqual(dr["computedChild"], val, "dcear#3"); index++; } }
public void ctor_DclmDclm() { DataTable dtParent = DataProvider.CreateParentDataTable(); DataTable dtChild = DataProvider.CreateChildDataTable(); DataSet ds = new DataSet(); ds.Tables.Add(dtChild); ds.Tables.Add(dtParent); ForeignKeyConstraint fc = null; fc = new ForeignKeyConstraint(dtParent.Columns[0], dtChild.Columns[0]); Assert.IsFalse(fc == null, "FKC64"); Assert.AreEqual(0, dtChild.Constraints.Count, "FKC50"); Assert.AreEqual(0, dtParent.Constraints.Count, "FKC51"); Assert.AreEqual(0, ds.Relations.Count, "FKC52"); dtChild.Constraints.Add(fc); Assert.AreEqual(1, dtChild.Constraints.Count, "FKC53"); Assert.AreEqual(1, dtParent.Constraints.Count, "FKC54"); Assert.AreEqual(0, ds.Relations.Count, "FKC55"); Assert.AreEqual(typeof(UniqueConstraint), dtParent.Constraints[0].GetType(), "FKC56"); Assert.AreEqual(typeof(ForeignKeyConstraint), dtChild.Constraints[0].GetType(), "FKC57"); Assert.AreEqual(0, dtParent.PrimaryKey.Length, "FKC58"); dtChild.Constraints.Clear(); dtParent.Constraints.Clear(); ds.Relations.Add(new DataRelation("myRelation", dtParent.Columns[0], dtChild.Columns[0])); Assert.AreEqual(1, dtChild.Constraints.Count, "FKC59"); Assert.AreEqual(1, dtParent.Constraints.Count, "FKC60"); Assert.AreEqual(typeof(UniqueConstraint), dtParent.Constraints[0].GetType(), "FKC61"); Assert.AreEqual(typeof(ForeignKeyConstraint), dtChild.Constraints[0].GetType(), "FKC62"); Assert.AreEqual(0, dtParent.PrimaryKey.Length, "FKC63"); }
[Test] public void ctor_NameParentColsChildCols() { DataTable dtParent = DataProvider.CreateParentDataTable(); DataTable dtChild = DataProvider.CreateChildDataTable(); ForeignKeyConstraint fc = null; fc = new ForeignKeyConstraint("myForeignKey", new DataColumn[] { dtParent.Columns[0] }, new DataColumn[] { dtChild.Columns[0] }); // Ctor Assert.AreEqual(false, fc == null, "FKC37"); // Ctor - name Assert.AreEqual("myForeignKey", fc.ConstraintName, "FKC38"); }
[Test] public void RelatedTable() { DataSet ds = new DataSet(); DataTable dtParent = DataProvider.CreateParentDataTable(); DataTable dtChild = DataProvider.CreateChildDataTable(); ds.Tables.Add(dtParent); ds.Tables.Add(dtChild); ForeignKeyConstraint fc = null; fc = new ForeignKeyConstraint(dtParent.Columns[0], dtChild.Columns[0]); // RelatedTable Assert.AreEqual(dtParent, fc.RelatedTable, "FKC6"); }
[Test] public new void ToString() { DataTable dtParent = DataProvider.CreateParentDataTable(); DataTable dtChild = DataProvider.CreateChildDataTable(); ForeignKeyConstraint fc = null; fc = new ForeignKeyConstraint(dtParent.Columns[0], dtChild.Columns[0]); // ToString - default Assert.AreEqual(string.Empty, fc.ToString(), "FKC8"); fc = new ForeignKeyConstraint("myConstraint", dtParent.Columns[0], dtChild.Columns[0]); // Tostring - Constraint name Assert.AreEqual("myConstraint", fc.ToString(), "FKC9"); }
[Test] public void DataSet() { DataSet ds = new DataSet(); DataTable dtChild = DataProvider.CreateChildDataTable(); DataTable dtParent = DataProvider.CreateParentDataTable(); ds.Tables.Add(dtParent); ds.Tables.Add(dtChild); DataRelation dRel; dRel = new DataRelation("MyRelation", dtParent.Columns[0], dtChild.Columns[0]); ds.Relations.Add(dRel); // DataSet Assert.AreEqual(ds, dRel.DataSet, "DR5"); }
[Test] public void ParentKeyConstraint() { DataSet ds = new DataSet(); DataTable dtChild = DataProvider.CreateChildDataTable(); DataTable dtParent = DataProvider.CreateParentDataTable(); ds.Tables.Add(dtParent); ds.Tables.Add(dtChild); DataRelation dRel; dRel = new DataRelation("MyRelation", dtParent.Columns[0], dtChild.Columns[0]); ds.Relations.Add(dRel); // ChildKeyConstraint 1 Assert.AreEqual(dtParent.Constraints[0], dRel.ParentKeyConstraint, "DR8"); }
public void bug79233() { DataSet ds = new DataSet(); DataTable dtChild = DataProvider.CreateChildDataTable(); DataTable dtParent = DataProvider.CreateParentDataTable(); ds.Tables.Add(dtParent); ds.Tables.Add(dtChild); dtParent.Rows.Clear(); dtChild.Rows.Clear(); DataRelation dr = dtParent.ChildRelations.Add(dtParent.Columns [0], dtChild.Columns [0]); Assert.AreEqual("Relation1", dr.RelationName, "#1"); dr = dtChild.ChildRelations.Add(dtChild.Columns [0], dtParent.Columns [0]); Assert.AreEqual("Relation2", dr.RelationName, "#1"); }
[Test] public void Columns() { //int RowCount; DataSet ds = new DataSet(); DataTable dtParent = DataProvider.CreateParentDataTable(); DataTable dtChild = DataProvider.CreateChildDataTable(); ds.Tables.Add(dtParent); ds.Tables.Add(dtChild); ForeignKeyConstraint fc = null; fc = new ForeignKeyConstraint(dtParent.Columns[0], dtChild.Columns[0]); // Columns Assert.AreEqual(dtChild.Columns[0], fc.Columns[0], "FKC1"); // Columns count Assert.AreEqual(1, fc.Columns.Length, "FKC2"); }
[Test] public void ChildColumns() { DataSet ds = new DataSet(); DataTable dtChild = DataProvider.CreateChildDataTable(); DataTable dtParent = DataProvider.CreateParentDataTable(); ds.Tables.Add(dtParent); ds.Tables.Add(dtChild); DataRelation dRel; dRel = new DataRelation("MyRelation", dtParent.Columns[0], dtChild.Columns[0]); ds.Relations.Add(dRel); // ChildColumns 1 Assert.AreEqual(1, dRel.ChildColumns.Length, "DR1"); // ChildColumns 2 Assert.AreEqual(dtChild.Columns[0], dRel.ChildColumns[0], "DR2"); }
[Test] public void constraintName() { DataSet ds = new DataSet(); DataTable dtParent = DataProvider.CreateParentDataTable(); DataTable dtChild = DataProvider.CreateChildDataTable(); ds.Tables.Add(dtParent); ds.Tables.Add(dtChild); ForeignKeyConstraint fc = null; fc = new ForeignKeyConstraint(dtParent.Columns[0], dtChild.Columns[0]); // default Assert.AreEqual(string.Empty, fc.ConstraintName, "FKC12"); fc.ConstraintName = "myConstraint"; // set/get Assert.AreEqual("myConstraint", fc.ConstraintName, "FKC13"); }
[Test] public void nested() { DataSet ds = new DataSet(); DataTable dtChild = DataProvider.CreateChildDataTable(); DataTable dtParent = DataProvider.CreateParentDataTable(); ds.Tables.Add(dtParent); ds.Tables.Add(dtChild); DataRelation dRel; dRel = new DataRelation(null, dtParent.Columns[0], dtChild.Columns[0]); ds.Relations.Add(dRel); // Nested default Assert.AreEqual(false, dRel.Nested, "DR59"); dRel.Nested = true; // Nested get/set Assert.AreEqual(true, dRel.Nested, "DR60"); }
[Test] public void Delete() { //create the source datatable DataTable dt = DataProvider.CreateChildDataTable(); //create the dataview for the table DataView dv = new DataView(dt); int CountView = dv.Count; int CountTable = dt.Rows.Count; DataRowView drv = dv[0]; // Delete - DataView Row Count dv.Delete(0); Assert.AreEqual(dv.Count, CountView - 1, "DV32"); // Delete - Table Row Count Assert.AreEqual(dt.Rows.Count, CountTable, "DV33"); // Delete - check table Assert.AreEqual(dt, drv.Row.Table, "DV34"); }
//Activate This Construntor to log All To Standard output //public TestClass():base(true){} //Activate this constructor to log Failures to a log file //public TestClass(System.IO.TextWriter tw):base(tw, false){} //Activate this constructor to log All to a log file //public TestClass(System.IO.TextWriter tw):base(tw, true){} //BY DEFAULT LOGGING IS DONE TO THE STANDARD OUTPUT ONLY FOR FAILURES [Test] public void GetEnumerator() { //create the source datatable DataTable dt = DataProvider.CreateChildDataTable(); //create the dataview for the table DataView dv = new DataView(dt); IEnumerator ienm = null; // GetEnumerator != null ienm = dv.GetEnumerator(); Assert.AreEqual(true, ienm != null, "DV53"); int i = 0; while (ienm.MoveNext()) { // Check item i Assert.AreEqual(dv[i], (DataRowView)ienm.Current, "DV54"); i++; } }
[Test] public void Equals() { DataSet ds = new DataSet(); DataTable dtParent = DataProvider.CreateParentDataTable(); DataTable dtChild = DataProvider.CreateChildDataTable(); ds.Tables.Add(dtParent); ds.Tables.Add(dtChild); dtParent.PrimaryKey = new DataColumn[] { dtParent.Columns[0] }; ds.EnforceConstraints = true; ForeignKeyConstraint fc1, fc2; fc1 = new ForeignKeyConstraint(dtParent.Columns[0], dtChild.Columns[0]); fc2 = new ForeignKeyConstraint(dtParent.Columns[0], dtChild.Columns[1]); // different columnn Assert.AreEqual(false, fc1.Equals(fc2), "FKC3"); //Two System.Data.ForeignKeyConstraint are equal if they constrain the same columns. // same column fc2 = new ForeignKeyConstraint(dtParent.Columns[0], dtChild.Columns[0]); Assert.AreEqual(true, fc1.Equals(fc2), "FKC4"); }
[Test] public void extendedProperties() { DataSet ds = new DataSet(); DataTable dtChild = DataProvider.CreateChildDataTable(); DataTable dtParent = DataProvider.CreateParentDataTable(); ds.Tables.Add(dtParent); ds.Tables.Add(dtChild); DataRelation dRel; dRel = new DataRelation("MyRelation", dtParent.Columns[0], dtChild.Columns[0]); ds.Relations.Add(dRel); PropertyCollection pc; pc = dRel.ExtendedProperties; // Checking ExtendedProperties default Assert.AreEqual(true, pc != null, "DR57"); // Checking ExtendedProperties count Assert.AreEqual(0, pc.Count, "DR58"); }
public void Add_Constraint_Column_Column() { DataTable parent = DataProvider.CreateParentDataTable(); DataTable child = DataProvider.CreateChildDataTable(); child.Constraints.Add("ForigenConstraint", parent.Columns[0], child.Columns[0]); Assert.AreEqual(1, parent.Constraints.Count, "ccaccc#1"); Assert.AreEqual(1, child.Constraints.Count, "ccaccc#2"); Assert.AreEqual("ForigenConstraint", child.Constraints[0].ConstraintName, "ccaccc#3"); parent = DataProvider.CreateParentDataTable(); child = DataProvider.CreateChildDataTable(); child.Constraints.Add("ForigenConstraint", parent.Columns[0], child.Columns[0]); ArrayList arr = new ArrayList(1); arr.Add(new InvalidConstraintException()); TestException(new testExceptionMethodCallback(DataProvider.TryToBreakForigenConstraint), arr); Assert.AreEqual(1, parent.Constraints.Count, "ccaccc#4"); Assert.AreEqual(1, child.Constraints.Count, "ccaccc#5"); }