public void ParentRowTest()
{
//Clear all existing values from table
for (int i = 0; i < _table.Rows.Count; i++)
{
_table.Rows[i].Delete();
}
_table.AcceptChanges();
_row = _table.NewRow();
_row["FName"] = "My FName";
_row["Id"] = 0;
_table.Rows.Add(_row);
DataTable tableC = new DataTable("Child");
DataColumn colC;
DataRow rowC;
colC = new DataColumn();
colC.DataType = Type.GetType("System.Int32");
colC.ColumnName = "Id";
colC.AutoIncrement = true;
tableC.Columns.Add(colC);
colC = new DataColumn();
colC.DataType = Type.GetType("System.String");
colC.ColumnName = "Name";
tableC.Columns.Add(colC);
rowC = tableC.NewRow();
rowC["Name"] = "My FName";
tableC.Rows.Add(rowC);
var ds = new DataSet();
ds.Tables.Add(_table);
ds.Tables.Add(tableC);
DataRelation dr = new DataRelation("PO", _table.Columns["Id"], tableC.Columns["Id"]);
ds.Relations.Add(dr);
rowC.SetParentRow(_table.Rows[0], dr);
Assert.Equal(_table.Rows[0], (tableC.Rows[0]).GetParentRow(dr));
Assert.Equal(tableC.Rows[0], (_table.Rows[0]).GetChildRows(dr)[0]);
ds.Relations.Clear();
dr = new DataRelation("PO", _table.Columns["Id"], tableC.Columns["Id"], false);
ds.Relations.Add(dr);
rowC.SetParentRow(_table.Rows[0], dr);
Assert.Equal(_table.Rows[0], (tableC.Rows[0]).GetParentRow(dr));
Assert.Equal(tableC.Rows[0], (_table.Rows[0]).GetChildRows(dr)[0]);
ds.Relations.Clear();
dr = new DataRelation("PO", _table.Columns["Id"], tableC.Columns["Id"], false);
tableC.ParentRelations.Add(dr);
rowC.SetParentRow(_table.Rows[0]);
Assert.Equal(_table.Rows[0], (tableC.Rows[0]).GetParentRow(dr));
Assert.Equal(tableC.Rows[0], (_table.Rows[0]).GetChildRows(dr)[0]);
}