public void Indexer4_Column_NotInTable()
{
DataTable dtA = new DataTable("TableA");
DataColumn dcA1 = new DataColumn("Col0", typeof(Address));
dtA.Columns.Add(dcA1);
DataColumn dcA2 = new DataColumn("Col1", typeof(Person));
dtA.Columns.Add(dcA2);
DataTable dtB = new DataTable("TableB");
DataColumn dcB1 = new DataColumn("Col0", typeof(Address));
dtB.Columns.Add(dcB1);
DataColumn dcB2 = new DataColumn("Col1", typeof(Person));
dtB.Columns.Add(dcB2);
Person personA = new Person("Miguel");
Address addressA = new Address("X", 5);
dtA.Rows.Add(new object[] { addressA, personA });
DataRow dr = dtA.Rows[0];
try
{
object value = dr[dcB1, DataRowVersion.Default];
Assert.False(true);
}
catch (ArgumentException ex)
{
// Column 'Col0' does not belong to table TableA
Assert.Equal(typeof(ArgumentException), ex.GetType());
Assert.Null(ex.InnerException);
Assert.NotNull(ex.Message);
Assert.True(ex.Message.IndexOf("'Col0'") != -1);
Assert.True(ex.Message.IndexOf("TableA") != -1);
}
try
{
object value = dr[new DataColumn("ZZZ"), DataRowVersion.Default];
Assert.False(true);
}
catch (ArgumentException ex)
{
// Column 'Col0' does not belong to table TableA
Assert.Equal(typeof(ArgumentException), ex.GetType());
Assert.Null(ex.InnerException);
Assert.NotNull(ex.Message);
Assert.True(ex.Message.IndexOf("'ZZZ'") != -1);
Assert.True(ex.Message.IndexOf("TableA") != -1);
}
dtA.Columns.Remove(dcA2);
try
{
object value = dr[dcA2, DataRowVersion.Default];
Assert.False(true);
}
catch (ArgumentException ex)
{
// Column 'Col0' does not belong to table TableA
Assert.Equal(typeof(ArgumentException), ex.GetType());
Assert.Null(ex.InnerException);
Assert.NotNull(ex.Message);
Assert.True(ex.Message.IndexOf("'Col1'") != -1);
Assert.True(ex.Message.IndexOf("TableA") != -1);
}
}