public void Contains()
{
DataColumn C = new DataColumn("key");
C.Unique = true;
C.DataType = typeof(int);
C.AutoIncrement = true;
C.AutoIncrementSeed = 0;
C.AutoIncrementStep = 1;
_tbl.Columns.Add(C);
_tbl.Columns.Add("first", typeof(string));
_tbl.Columns.Add("second", typeof(decimal));
DataRowCollection Rows = _tbl.Rows;
DataRow Row = _tbl.NewRow();
_tbl.Rows.Add(Row);
Row = _tbl.NewRow();
_tbl.Rows.Add(Row);
Row = _tbl.NewRow();
_tbl.Rows.Add(Row);
Row = _tbl.NewRow();
_tbl.Rows.Add(Row);
Rows[0][1] = "test0";
Rows[0][2] = 0;
Rows[1][1] = "test1";
Rows[1][2] = 1;
Rows[2][1] = "test2";
Rows[2][2] = 2;
Rows[3][1] = "test3";
Rows[3][2] = 3;
Assert.Equal(3, _tbl.Columns.Count);
Assert.Equal(4, _tbl.Rows.Count);
Assert.Equal(0, _tbl.Rows[0][0]);
Assert.Equal(1, _tbl.Rows[1][0]);
Assert.Equal(2, _tbl.Rows[2][0]);
Assert.Equal(3, _tbl.Rows[3][0]);
try
{
Rows.Contains(1);
Assert.False(true);
}
catch (Exception e)
{
Assert.Equal(typeof(MissingPrimaryKeyException), e.GetType());
// Never premise English.
//Assert.Equal ("Table doesn't have a primary key.", e.Message);
}
_tbl.PrimaryKey = new DataColumn[] { _tbl.Columns[0] };
Assert.True(Rows.Contains(1));
Assert.True(Rows.Contains(2));
Assert.False(Rows.Contains(4));
try
{
Rows.Contains(new object[] { 64, "test0" });
Assert.False(true);
}
catch (Exception e)
{
Assert.Equal(typeof(ArgumentException), e.GetType());
// Never premise English.
//Assert.Equal ("Expecting 1 value(s) for the key being indexed, but received 2 value(s).", e.Message);
}
_tbl.PrimaryKey = new DataColumn[] { _tbl.Columns[0], _tbl.Columns[1] };
Assert.False(Rows.Contains(new object[] { 64, "test0" }));
Assert.False(Rows.Contains(new object[] { 0, "test1" }));
Assert.True(Rows.Contains(new object[] { 1, "test1" }));
Assert.True(Rows.Contains(new object[] { 2, "test2" }));
try
{
Rows.Contains(new object[] { 2 });
Assert.False(true);
}
catch (Exception e)
{
Assert.Equal(typeof(ArgumentException), e.GetType());
// Never premise English.
//Assert.Equal ("Expecting 2 value(s) for the key being indexed, but received 1 value(s).", e.Message);
}
}