public void TestEquals_SameTableDiffViewProp()
{
DataTable table = new DataTable("table");
table.Columns.Add("col1", typeof(int));
table.Columns.Add("col2", typeof(int));
for (int i = 0; i < 5; ++i)
table.Rows.Add(new object[] { i, 100 + i });
DataView view1 = new DataView(table);
DataView view2 = new DataView(table);
object obj2 = view2;
Assert.False(view1.Equals(obj2));
Assert.True(view1.Equals(view1));
Assert.True(view2.Equals(view1));
view1.Sort = "col1 ASC";
Assert.False(view1.Equals(view2));
view2.Sort = "col1 ASC";
Assert.True(view1.Equals(view2));
view1.RowFilter = "col1 > 100";
Assert.False(view1.Equals(view2));
view1.RowFilter = "";
Assert.True(view1.Equals(view2));
view1.RowStateFilter = DataViewRowState.Added;
Assert.False(view1.Equals(view2));
view1.RowStateFilter = DataViewRowState.CurrentRows;
Assert.True(view1.Equals(view2));
view1.AllowDelete = !view2.AllowDelete;
Assert.False(view1.Equals(view2));
view1.AllowDelete = view2.AllowDelete;
Assert.True(view1.Equals(view2));
view1.AllowEdit = !view2.AllowEdit;
Assert.False(view1.Equals(view2));
view1.AllowEdit = view2.AllowEdit;
Assert.True(view1.Equals(view2));
view1.AllowNew = !view2.AllowNew;
Assert.False(view1.Equals(view2));
view1.AllowNew = view2.AllowNew;
Assert.True(view1.Equals(view2));
//ApplyDefaultSort doesnet affect the comparision
view1.ApplyDefaultSort = !view2.ApplyDefaultSort;
Assert.True(view1.Equals(view2));
DataTable table2 = table.Copy();
view1.Table = table2;
Assert.False(view1.Equals(view2));
view1.Table = table;
//well.. sort is set to null when Table is assigned..
view1.Sort = view2.Sort;
Assert.True(view1.Equals(view2));
}