public void Sort()
{
DataRow[] drArrTable;
//create the source datatable
DataTable dt = DataProvider.CreateChildDataTable();
//create the dataview for the table
DataView dv = new DataView(dt);
dv.Sort = "ParentId";
drArrTable = dt.Select("", "ParentId");
// sort = ParentId
Assert.Equal(true, CompareSortedRowsByParentAndChildId(dv, drArrTable));
dv.Sort = "ChildId";
drArrTable = dt.Select("", "ChildId");
// sort = ChildId
Assert.Equal(true, CompareSortedRowsByParentAndChildId(dv, drArrTable));
dv.Sort = "ParentId Desc, ChildId";
drArrTable = dt.Select("", "ParentId Desc, ChildId");
// sort = ParentId Desc, ChildId
Assert.Equal(true, CompareSortedRowsByParentAndChildId(dv, drArrTable));
dv.Sort = "ChildId Asc, ParentId";
drArrTable = dt.Select("", "ChildId Asc, ParentId");
// sort = ChildId Asc, ParentId
Assert.Equal(true, CompareSortedRowsByParentAndChildId(dv, drArrTable));
dv.Sort = "ChildId Asc, ChildId Desc";
drArrTable = dt.Select("", "ChildId Asc, ChildId Desc");
// sort = ChildId Asc, ChildId Desc
Assert.Equal(true, CompareSortedRowsByParentAndChildId(dv, drArrTable));
// IndexOutOfRangeException - 1
Assert.Throws<IndexOutOfRangeException>(() =>
{
dv.Sort = "something";
});
// IndexOutOfRangeException - 2
Assert.Throws<IndexOutOfRangeException>(() =>
{
dv.Sort = "ColumnId Desc Asc";
});
// IndexOutOfRangeException - 3
Assert.Throws<IndexOutOfRangeException>(() =>
{
dv.Sort = "ColumnId blabla";
});
}