public void GetCharsTest()
{
_dt.Columns.Add("col2", typeof(char[]));
_dt.Rows.Clear();
_dt.Rows.Add(new object[] { 1, "string", "string".ToCharArray() });
_dt.Rows.Add(new object[] { 2, "string1", null });
DataTableReader rdr = _dt.CreateDataReader();
rdr.Read();
try
{
rdr.GetChars(1, 0, null, 0, 10);
Assert.False(true);
}
catch (InvalidCastException e)
{
// Never premise English.
//Assert.Equal ("Unable to cast object of type 'System.String'" +
// " to type 'System.Char[]'.", e.Message, "#1");
}
char[] char_arr = null;
long len = 0;
len = rdr.GetChars(2, 0, null, 0, 0);
Assert.Equal(6, len);
char_arr = new char[len];
len = rdr.GetChars(2, 0, char_arr, 0, 0);
Assert.Equal(0, len);
len = rdr.GetChars(2, 0, null, 0, 0);
char_arr = new char[len + 2];
len = rdr.GetChars(2, 0, char_arr, 2, 100);
Assert.Equal(6, len);
char[] val = (char[])rdr.GetValue(2);
for (int i = 0; i < len; ++i)
Assert.Equal(val[i], char_arr[i + 2]);
}