public void SetParentRow_DataInheritance()
{
var ds = new DataSet();
var child = ds.Tables.Add("child");
var childColumn1 = child.Columns.Add("column1");
var childColumn2 = child.Columns.Add("column2");
var parent1 = ds.Tables.Add("parent1");
var parent1Column1 = parent1.Columns.Add("column1");
var parent1Column2 = parent1.Columns.Add("column2");
var parent2 = ds.Tables.Add("parent2");
var parent2Column1 = parent2.Columns.Add("column1");
var parent2Column2 = parent2.Columns.Add("column2");
var relation1 = ds.Relations.Add("parent1-child", parent1Column1, childColumn1);
ds.Relations.Add("parent2-child", parent2Column2, childColumn2);
var childRow1 = child.NewRow();
var parent1Row = parent1.NewRow();
var parent2Row = parent2.NewRow();
parent1Row[parent1Column1] = "p1c1";
parent1Row[parent1Column2] = "p1c2";
parent2Row[parent2Column1] = "p2c1";
parent2Row[parent2Column2] = "p2c2";
child.Rows.Add(childRow1);
parent1.Rows.Add(parent1Row);
parent2.Rows.Add(parent2Row);
childRow1.SetParentRow(parent1Row);
Assert.Equal("p1c1", childRow1[childColumn1]);
Assert.Equal(DBNull.Value, childRow1[childColumn2]);
childRow1.SetParentRow(parent2Row);
Assert.Equal("p1c1", childRow1[childColumn1]);
Assert.Equal("p2c2", childRow1[childColumn2]);
childRow1.SetParentRow(null);
Assert.Equal(DBNull.Value, childRow1[childColumn1]);
Assert.Equal(DBNull.Value, childRow1[childColumn2]);
childRow1.SetParentRow(parent2Row);
Assert.Equal(DBNull.Value, childRow1[childColumn1]);
Assert.Equal("p2c2", childRow1[childColumn2]);
}