public void GetChildRows_ByDataRealtionDataRowVersion()
{
DataRow drParent;
DataRow[] drArrExcepted, drArrResult;
DataTable dtChild, dtParent;
var ds = new DataSet();
//Create tables
dtChild = DataProvider.CreateChildDataTable();
dtParent = DataProvider.CreateParentDataTable();
//Add tables to dataset
ds.Tables.Add(dtChild);
ds.Tables.Add(dtParent);
//Add Relation
DataRelation dRel = new DataRelation("Parent-Child", dtParent.Columns["ParentId"], dtChild.Columns["ParentId"]);
ds.Relations.Add(dRel);
drParent = dtParent.Rows[0];
// Teting: DateTime.Now.ToShortTimeString()
//Get Excepted result
drArrExcepted = dtChild.Select("ParentId=" + drParent["ParentId"], "", DataViewRowState.CurrentRows);
//Get Result DataRowVersion.Current
drArrResult = drParent.GetChildRows(dRel, DataRowVersion.Current);
Assert.Equal(drArrExcepted, drArrResult);
// Teting: DataRow.GetParentRows_D_D
//Get Excepted result
drArrExcepted = dtChild.Select("ParentId=" + drParent["ParentId"], "", DataViewRowState.OriginalRows);
//Get Result DataRowVersion.Current
drArrResult = drParent.GetChildRows(dRel, DataRowVersion.Original);
Assert.Equal(drArrExcepted, drArrResult);
// Teting: DataRow.GetParentRows_D_D
//Get Excepted result, in this case Current = Default
drArrExcepted = dtChild.Select("ParentId=" + drParent["ParentId"], "", DataViewRowState.CurrentRows);
//Get Result DataRowVersion.Current
drArrResult = drParent.GetChildRows(dRel, DataRowVersion.Default);
Assert.Equal(drArrExcepted, drArrResult);
// Teting: DataRow.GetParentRows_D_D
drParent.BeginEdit();
drParent["String1"] = "Value";
//Get Excepted result
drArrExcepted = dtChild.Select("ParentId=" + drParent["ParentId"], "", DataViewRowState.CurrentRows);
//Get Result DataRowVersion.Current
drArrResult = drParent.GetChildRows(dRel, DataRowVersion.Proposed);
Assert.Equal(drArrExcepted, drArrResult);
}