#endif
Assert.AreSame (conn, cmd.Connection, "#A2");
AssertInsertParameters (cmd, false, "#A3:");
+ Assert.AreSame (cmd, cb.GetInsertCommand (), "#A4");
- cb = new SqlCommandBuilder (da);
+ cb.RefreshSchema ();
cb.QuotePrefix = "\"";
cmd = cb.GetInsertCommand ();
-
#if NET_2_0
Assert.AreEqual ("INSERT INTO \"employee] (\"id], " +
"\"fname], \"lname]) VALUES (@p1, @p2, @p3)",
#endif
Assert.AreSame (conn, cmd.Connection, "#B2");
AssertInsertParameters (cmd, false, "#B3:");
+ Assert.AreSame (cmd, cb.GetInsertCommand (), "#B4");
- cb = new SqlCommandBuilder (da);
+ cb.RefreshSchema ();
#if NET_2_0
cb.QuoteSuffix = "\"";
#else
#endif
cmd = cb.GetInsertCommand ();
#if NET_2_0
- Assert.AreEqual ("INSERT INTO [employee\" ([id\", "
- + "[fname\", [lname\") VALUES (@p1, @p2, @p3)",
+ Assert.AreEqual ("INSERT INTO \"employee\" (\"id\", "
+ + "\"fname\", \"lname\") VALUES (@p1, @p2, @p3)",
cmd.CommandText, "#C1");
#else
- Assert.AreEqual ("INSERT INTO employee´( id´ , " +
- "fname´ , lname´ ) VALUES ( @p1 , @p2 , @p3 )",
+ Assert.AreEqual ("INSERT INTO \"employee´( \"id´ , " +
+ "\"fname´ , \"lname´ ) VALUES ( @p1 , @p2 , @p3 )",
cmd.CommandText, "#C1");
#endif
Assert.AreSame (conn, cmd.Connection, "#C2");
AssertInsertParameters (cmd, false, "#C3");
-
- cb = new SqlCommandBuilder (da);
- cb.QuotePrefix = "\"";
-#if NET_2_0
- cb.QuoteSuffix = "\"";
-#else
- cb.QuoteSuffix = "´";
-#endif
- cmd = cb.GetInsertCommand ();
-#if NET_2_0
- Assert.AreEqual ("INSERT INTO \"employee\" (\"id\", " +
- "\"fname\", \"lname\") VALUES (@p1, @p2, @p3)",
- cmd.CommandText, "#D1");
-#else
- Assert.AreEqual ("INSERT INTO \"employee´( \"id´ , " +
- "\"fname´ , \"lname´ ) VALUES ( @p1 , @p2 , @p3 )",
- cmd.CommandText, "#D1");
-#endif
- Assert.AreSame (conn, cmd.Connection, "#D2");
- AssertInsertParameters (cmd, false, "#D3:");
+ Assert.AreSame (cmd, cb.GetInsertCommand (), "#C4");
} finally {
if (cmd != null)
cmd.Dispose ();
"[fname] = @p2, [lname] = @p3 WHERE (([id] = @p4) " +
"AND ([fname] = @p5) AND ((@p6 = 1 " +
"AND [lname] IS NULL) OR ([lname] = @p7)))",
- cmd.CommandText, "#1");
+ cmd.CommandText, "#A1");
#else
Assert.AreEqual ("UPDATE employee SET id = @p1 , " +
"fname = @p2 , lname = @p3 WHERE ( (id = @p4) " +
"AND ((@p5 = 1 AND fname IS NULL) OR " +
"(fname = @p6)) AND ((@p7 = 1 AND " +
"lname IS NULL) OR (lname = @p8)) )",
- cmd.CommandText, "#1");
+ cmd.CommandText, "#A1");
#endif
- Assert.AreSame (conn, cmd.Connection, "#2");
- AssertUpdateParameters (cmd, false, "#3:");
+ Assert.AreSame (conn, cmd.Connection, "#A2");
+ AssertUpdateParameters (cmd, false, "#A3:");
+ Assert.AreSame (cmd, cb.GetUpdateCommand (), "#A4");
+
+ cb.RefreshSchema ();
+ cb.QuotePrefix = "\"";
+ cmd = cb.GetUpdateCommand ();
+#if NET_2_0
+ Assert.AreEqual ("UPDATE \"employee] SET \"id] = @p1, " +
+ "\"fname] = @p2, \"lname] = @p3 WHERE ((\"id] = @p4) " +
+ "AND (\"fname] = @p5) AND ((@p6 = 1 " +
+ "AND \"lname] IS NULL) OR (\"lname] = @p7)))",
+ cmd.CommandText, "#B1");
+#else
+ Assert.AreEqual ("UPDATE \"employee SET \"id = @p1 , " +
+ "\"fname = @p2 , \"lname = @p3 WHERE ( (\"id = @p4) " +
+ "AND ((@p5 = 1 AND \"fname IS NULL) OR " +
+ "(\"fname = @p6)) AND ((@p7 = 1 AND " +
+ "\"lname IS NULL) OR (\"lname = @p8)) )",
+ cmd.CommandText, "#B1");
+#endif
+ Assert.AreSame (conn, cmd.Connection, "#B2");
+ AssertUpdateParameters (cmd, false, "#B3:");
+ Assert.AreSame (cmd, cb.GetUpdateCommand (), "#B4");
+
+ cb.RefreshSchema ();
+#if NET_2_0
+ cb.QuoteSuffix = "\"";
+#else
+ cb.QuoteSuffix = "´";
+#endif
+ cmd = cb.GetUpdateCommand ();
+#if NET_2_0
+ Assert.AreEqual ("UPDATE \"employee\" SET \"id\" = @p1, " +
+ "\"fname\" = @p2, \"lname\" = @p3 WHERE ((\"id\" = @p4) " +
+ "AND (\"fname\" = @p5) AND ((@p6 = 1 " +
+ "AND \"lname\" IS NULL) OR (\"lname\" = @p7)))",
+ cmd.CommandText, "#C1");
+#else
+ Assert.AreEqual ("UPDATE \"employee´ SET \"id´ = @p1 , " +
+ "\"fname´ = @p2 , \"lname´ = @p3 WHERE ( (\"id´ = @p4) " +
+ "AND ((@p5 = 1 AND \"fname´ IS NULL) OR " +
+ "(\"fname´ = @p6)) AND ((@p7 = 1 AND " +
+ "\"lname´ IS NULL) OR (\"lname´ = @p8)) )",
+ cmd.CommandText, "#C1");
+#endif
+ Assert.AreSame (conn, cmd.Connection, "#C2");
+ AssertUpdateParameters (cmd, false, "#C3:");
+ Assert.AreSame (cmd, cb.GetUpdateCommand (), "#C4");
} finally {
if (cmd != null)
cmd.Dispose ();
Assert.AreEqual ("DELETE FROM [employee] WHERE " +
"(([id] = @p1) AND ([fname] = @p2) AND " +
"((@p3 = 1 AND [lname] IS NULL) OR " +
- "([lname] = @p4)))", cmd.CommandText, "#1");
+ "([lname] = @p4)))", cmd.CommandText, "#A1");
#else
Assert.AreEqual ("DELETE FROM employee WHERE ( " +
"(id = @p1) AND ((@p2 = 1 AND fname IS NULL) " +
"OR (fname = @p3)) AND ((@p4 = 1 AND " +
"lname IS NULL) OR (lname = @p5)) )",
- cmd.CommandText, "#1");
+ cmd.CommandText, "#A1");
#endif
- Assert.AreSame (conn, cmd.Connection, "#2");
- AssertDeleteParameters (cmd, false, "#3:");
+ Assert.AreSame (conn, cmd.Connection, "#A2");
+ AssertDeleteParameters (cmd, false, "#A3:");
+ Assert.AreSame (cmd, cb.GetDeleteCommand (), "#A4");
+
+ cb.RefreshSchema ();
+ cb.QuotePrefix = "\"";
+ cmd = cb.GetDeleteCommand ();
+
+#if NET_2_0
+ Assert.AreEqual ("DELETE FROM \"employee] WHERE " +
+ "((\"id] = @p1) AND (\"fname] = @p2) AND " +
+ "((@p3 = 1 AND \"lname] IS NULL) OR " +
+ "(\"lname] = @p4)))", cmd.CommandText, "#B1");
+#else
+ Assert.AreEqual ("DELETE FROM \"employee WHERE ( " +
+ "(\"id = @p1) AND ((@p2 = 1 AND \"fname IS NULL) " +
+ "OR (\"fname = @p3)) AND ((@p4 = 1 AND " +
+ "\"lname IS NULL) OR (\"lname = @p5)) )",
+ cmd.CommandText, "#B1");
+#endif
+ Assert.AreSame (conn, cmd.Connection, "#B2");
+ AssertDeleteParameters (cmd, false, "#B3:");
+ Assert.AreSame (cmd, cb.GetDeleteCommand (), "#B4");
+
+ cb.RefreshSchema ();
+#if NET_2_0
+ cb.QuoteSuffix = "\"";
+#else
+ cb.QuoteSuffix = "´";
+#endif
+ cmd = cb.GetDeleteCommand ();
+
+#if NET_2_0
+ Assert.AreEqual ("DELETE FROM \"employee\" WHERE " +
+ "((\"id\" = @p1) AND (\"fname\" = @p2) AND " +
+ "((@p3 = 1 AND \"lname\" IS NULL) OR " +
+ "(\"lname\" = @p4)))", cmd.CommandText, "#C1");
+#else
+ Assert.AreEqual ("DELETE FROM \"employee´ WHERE ( " +
+ "(\"id´ = @p1) AND ((@p2 = 1 AND \"fname´ IS NULL) " +
+ "OR (\"fname´ = @p3)) AND ((@p4 = 1 AND " +
+ "\"lname´ IS NULL) OR (\"lname´ = @p5)) )",
+ cmd.CommandText, "#C1");
+#endif
+ Assert.AreSame (conn, cmd.Connection, "#C2");
+ AssertDeleteParameters (cmd, false, "#C3:");
+ Assert.AreSame (cmd, cb.GetDeleteCommand (), "#C4");
} finally {
if (cmd != null)
cmd.Dispose ();
"@Original_lname)))", cmd.CommandText, "#A1");
Assert.AreSame (conn, cmd.Connection, "#A2");
AssertDeleteParameters (cmd, true, "#A3:");
+ Assert.AreSame (cmd, cb.GetDeleteCommand (true), "#A4");
cmd = cb.GetDeleteCommand (false);
Assert.AreEqual ("DELETE FROM [employee] WHERE " +
"@Original_lname)))", cmd.CommandText, "#B1");
Assert.AreSame (conn, cmd.Connection, "#B2");
AssertDeleteParameters (cmd, true, "#B3:");
+ Assert.AreSame (cmd, cb.GetDeleteCommand (false), "#B4");
cb = new SqlCommandBuilder (da);
cmd = cb.GetDeleteCommand (false);
"([lname] = @p4)))", cmd.CommandText, "#C1");
Assert.AreSame (conn, cmd.Connection, "#C2");
AssertDeleteParameters (cmd, false, "#C3:");
+ Assert.AreSame (cmd, cb.GetDeleteCommand (false), "#C4");
cmd = cb.GetDeleteCommand (true);
Assert.AreEqual ("DELETE FROM [employee] WHERE " +
"@Original_lname)))", cmd.CommandText, "#D1");
Assert.AreSame (conn, cmd.Connection, "#D2");
AssertDeleteParameters (cmd, true, "#D3:");
-
+ Assert.AreSame (cmd, cb.GetDeleteCommand (false), "#D4");
} finally {
if (cmd != null)
cmd.Dispose ();
}
#else
try {
- reader.GetBytes (0,0,null,0,0);
+ reader.GetBytes (0, 0, null, 0, 0);
Assert.Fail ("#1");
- }catch (InvalidCastException) {
+ }catch (InvalidCastException ex) {
+ Assert.AreEqual (typeof (InvalidCastException), ex.GetType (), "#2");
+ Assert.IsNull (ex.InnerException, "#3");
+ Assert.AreEqual ((new InvalidCastException ()).Message, ex.Message, "#4");
} finally {
reader.Close ();
}
int offset = 0;
long ret = 0;
long count = 0;
+
do {
ret = reader.GetBytes (0, offset, val, offset, 50);
offset += (int) ret;
}
[Test]
- public void GetBytes_Binary ()
+ public void GetBytes_Type_Binary ()
{
- cmd.CommandText = "Select type_binary,type_varbinary,type_blob ";
- cmd.CommandText += "from binary_family where id=1";
+ cmd.CommandText = "Select type_binary, type_varbinary, " +
+ "type_blob from binary_family where id = 1";
reader = cmd.ExecuteReader ();
reader.Read ();
byte[] binary = (byte[])reader.GetValue (0);
reader.Close ();
}
+ [Test]
+ public void GetBytes_Type_DateTime ()
+ {
+ cmd.CommandText = "SELECT type_datetime FROM datetime_family where id = 1";
+
+ using (IDataReader reader = cmd.ExecuteReader (CommandBehavior.SequentialAccess)) {
+ Assert.IsTrue (reader.Read ());
+
+ try {
+ reader.GetBytes (0, 0, null, 0, 0);
+ Assert.Fail ("#A1");
+ } catch (InvalidCastException ex) {
+ // Invalid attempt to GetBytes on column
+ // 'type_datetime'.
+ // The GetBytes function can only be used
+ // on columns of type Text, NText, or Image
+ Assert.AreEqual (typeof (InvalidCastException), ex.GetType (), "#A2");
+ Assert.IsNull (ex.InnerException, "#A3");
+ Assert.IsNotNull (ex.Message, "#A4");
+ Assert.IsTrue (ex.Message.IndexOf ("'type_datetime'") != -1, "#A5:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("GetBytes") != -1, "#A6:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("Text") != -1, "#A7:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("NText") != -1, "#A8:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("Image") != -1, "#A9:" + ex.Message);
+ }
+ }
+
+ using (IDataReader reader = cmd.ExecuteReader ()) {
+ Assert.IsTrue (reader.Read ());
+
+ try {
+ reader.GetBytes (0, 0, null, 0, 0);
+ Assert.Fail ("#B1");
+ } catch (InvalidCastException ex) {
+ // Invalid attempt to GetBytes on column
+ // 'type_datetime'.
+ // The GetBytes function can only be used
+ // on columns of type Text, NText, or Image
+ Assert.AreEqual (typeof (InvalidCastException), ex.GetType (), "#B2");
+ Assert.IsNull (ex.InnerException, "#B3");
+ Assert.IsNotNull (ex.Message, "#B4");
+ Assert.IsTrue (ex.Message.IndexOf ("'type_datetime'") != -1, "#B5:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("GetBytes") != -1, "#B6:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("Text") != -1, "#B7:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("NText") != -1, "#B8:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("Image") != -1, "#B9:" + ex.Message);
+ }
+ }
+
+ cmd.CommandText = "SELECT type_datetime FROM datetime_family where id = 4";
+
+ using (IDataReader reader = cmd.ExecuteReader (CommandBehavior.SequentialAccess)) {
+ Assert.IsTrue (reader.Read ());
+
+ try {
+ reader.GetBytes (0, 0, null, 0, 0);
+ Assert.Fail ("#C1");
+ } catch (InvalidCastException ex) {
+ // Invalid attempt to GetBytes on column
+ // 'type_datetime'.
+ // The GetBytes function can only be used
+ // on columns of type Text, NText, or Image
+ Assert.AreEqual (typeof (InvalidCastException), ex.GetType (), "#C2");
+ Assert.IsNull (ex.InnerException, "#C3");
+ Assert.IsNotNull (ex.Message, "#C4");
+ Assert.IsTrue (ex.Message.IndexOf ("'type_datetime'") != -1, "#C5:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("GetBytes") != -1, "#C6:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("Text") != -1, "#C7:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("NText") != -1, "#C8:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("Image") != -1, "#C9:" + ex.Message);
+ }
+ }
+
+ using (IDataReader reader = cmd.ExecuteReader ()) {
+ Assert.IsTrue (reader.Read ());
+
+ try {
+ reader.GetBytes (0, 0, null, 0, 0);
+ Assert.Fail ("#D1");
+ } catch (InvalidCastException ex) {
+ // Invalid attempt to GetBytes on column
+ // 'type_datetime'.
+ // The GetBytes function can only be used
+ // on columns of type Text, NText, or Image
+ Assert.AreEqual (typeof (InvalidCastException), ex.GetType (), "#D2");
+ Assert.IsNull (ex.InnerException, "#D3");
+ Assert.IsNotNull (ex.Message, "#D4");
+ Assert.IsTrue (ex.Message.IndexOf ("'type_datetime'") != -1, "#D5:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("GetBytes") != -1, "#D6:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("Text") != -1, "#D7:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("NText") != -1, "#D8:" + ex.Message);
+ Assert.IsTrue (ex.Message.IndexOf ("Image") != -1, "#D9:" + ex.Message);
+ }
+ }
+ }
+
+ [Test]
+ public void GetBytes_Type_Text ()
+ {
+ long len;
+ byte [] buffer;
+ byte [] expected;
+
+ cmd.CommandText = "SELECT type_text FROM string_family order by id asc";
+
+ using (IDataReader reader = cmd.ExecuteReader (CommandBehavior.SequentialAccess)) {
+ expected = new byte [] { 0x74, 0x65, 0x78,
+ 0x74 };
+
+ Assert.IsTrue (reader.Read (), "#A1");
+ len = reader.GetBytes (0, 0, null, 0, 0);
+ Assert.AreEqual (4, len, "#A2");
+ buffer = new byte [len];
+ len = reader.GetBytes (0, 0, buffer, 0, (int) len);
+ Assert.AreEqual (4, len, "#A3");
+ Assert.AreEqual (expected, buffer, "#A4");
+
+ expected = new byte [] { 0x00, 0x00, 0x6f, 0x6e,
+ 0x67, 0x00 };
+
+ Assert.IsTrue (reader.Read (), "#B1");
+ len = reader.GetBytes (0, 0, null, 0, 0);
+ Assert.AreEqual (270, len, "#B2");
+ buffer = new byte [6];
+ len = reader.GetBytes (0, 1, buffer, 2, 3);
+ Assert.AreEqual (3, len, "#B3");
+ Assert.AreEqual (expected, buffer, "#B4");
+
+ expected = new byte [0];
+
+ Assert.IsTrue (reader.Read (), "#C1");
+ len = reader.GetBytes (0, 0, null, 0, 0);
+ Assert.AreEqual (0, len, "#C2");
+ buffer = new byte [len];
+ len = reader.GetBytes (0, 0, buffer, 0, 0);
+ Assert.AreEqual (0, len, "#C3");
+ Assert.AreEqual (expected, buffer, "#C4");
+
+ Assert.IsTrue (reader.Read (), "#D1");
+#if NET_2_0
+ try {
+ reader.GetBytes (0, 0, null, 0, 0);
+ Assert.Fail ("#D2");
+ } catch (SqlNullValueException) {
+ }
+#else
+ len = reader.GetBytes (0, 0, null, 0, 0);
+ Assert.AreEqual (0, len, "#D2");
+#endif
+ }
+
+ using (IDataReader reader = cmd.ExecuteReader ()) {
+ expected = new byte [] { 0x74, 0x65, 0x78,
+ 0x74 };
+
+ Assert.IsTrue (reader.Read (), "#E1");
+#if NET_2_0
+ len = reader.GetBytes (0, 0, null, 0, 0);
+ Assert.AreEqual (4, len, "#E2");
+ buffer = new byte [len];
+ len = reader.GetBytes (0, 0, buffer, 0, (int) len);
+ Assert.AreEqual (4, len, "#E3");
+ Assert.AreEqual (expected, buffer, "#E4");
+#else
+ try {
+ reader.GetBytes (0, 0, null, 0, 0);
+ Assert.Fail ("#E2");
+ } catch (InvalidCastException ex) {
+ Assert.AreEqual (typeof (InvalidCastException), ex.GetType (), "#E3");
+ Assert.IsNull (ex.InnerException, "#E4");
+ Assert.AreEqual ((new InvalidCastException ()).Message, ex.Message, "#E5");
+ }
+#endif
+
+ expected = new byte [] { 0x00, 0x00, 0x6f, 0x6e,
+ 0x67, 0x00 };
+
+ Assert.IsTrue (reader.Read (), "#F1");
+#if NET_2_0
+ len = reader.GetBytes (0, 0, null, 0, 0);
+ Assert.AreEqual (270, len, "#F2");
+ buffer = new byte [6];
+ len = reader.GetBytes (0, 1, buffer, 2, 3);
+ Assert.AreEqual (3, len, "#F3");
+ Assert.AreEqual (expected, buffer, "#F4");
+#else
+ try {
+ reader.GetBytes (0, 0, null, 0, 0);
+ Assert.Fail ("#F2");
+ } catch (InvalidCastException ex) {
+ Assert.AreEqual (typeof (InvalidCastException), ex.GetType (), "#F3");
+ Assert.IsNull (ex.InnerException, "#F4");
+ Assert.AreEqual ((new InvalidCastException ()).Message, ex.Message, "#F5");
+ }
+#endif
+
+ expected = new byte [0];
+
+ Assert.IsTrue (reader.Read (), "#G1");
+#if NET_2_0
+ len = reader.GetBytes (0, 0, null, 0, 0);
+ Assert.AreEqual (0, len, "#G2");
+ buffer = new byte [len];
+ len = reader.GetBytes (0, 0, buffer, 0, 0);
+ Assert.AreEqual (0, len, "#G3");
+ Assert.AreEqual (expected, buffer, "#G4");
+#else
+ try {
+ reader.GetBytes (0, 0, null, 0, 0);
+ Assert.Fail ("#G2");
+ } catch (InvalidCastException ex) {
+ Assert.AreEqual (typeof (InvalidCastException), ex.GetType (), "#G3");
+ Assert.IsNull (ex.InnerException, "#G4");
+ Assert.AreEqual ((new InvalidCastException ()).Message, ex.Message, "#G5");
+ }
+#endif
+
+ Assert.IsTrue (reader.Read (), "#H1");
+#if NET_2_0
+ try {
+ reader.GetBytes (0, 0, new byte [0], 0, 0);
+ Assert.Fail ("#H2");
+ } catch (NullReferenceException) {
+ }
+ try {
+ reader.GetBytes (0, 0, null, 0, 0);
+ Assert.Fail ("#H3");
+ } catch (NullReferenceException) {
+ }
+#else
+ try {
+ reader.GetBytes (0, 0, null, 0, 3);
+ Assert.Fail ("#H2");
+ } catch (InvalidCastException ex) {
+ Assert.AreEqual (typeof (InvalidCastException), ex.GetType (), "#H3");
+ Assert.IsNull (ex.InnerException, "#H4");
+ Assert.AreEqual ((new InvalidCastException ()).Message, ex.Message, "#H5");
+ }
+#endif
+ }
+ }
+
+ [Test]
+ public void GetChar ()
+ {
+ cmd.CommandText = "SELECT type_char FROM string_family where id = 1";
+
+ using (IDataReader reader = cmd.ExecuteReader (CommandBehavior.SequentialAccess)) {
+ Assert.IsTrue (reader.Read ());
+
+ try {
+ reader.GetChar (0);
+ Assert.Fail ("#A1");
+ } catch (NotSupportedException ex) {
+ Assert.AreEqual (typeof (NotSupportedException), ex.GetType (), "#A2");
+ Assert.IsNull (ex.InnerException, "#A3");
+ Assert.IsNotNull (ex.Message, "#A4");
+ Assert.AreEqual ((new NotSupportedException ()).Message, ex.Message, "#A5");
+ }
+ }
+
+ using (IDataReader reader = cmd.ExecuteReader ()) {
+ Assert.IsTrue (reader.Read ());
+
+ try {
+ reader.GetChar (0);
+ Assert.Fail ("#B1");
+ } catch (NotSupportedException ex) {
+ Assert.AreEqual (typeof (NotSupportedException), ex.GetType (), "#B2");
+ Assert.IsNull (ex.InnerException, "#B3");
+ Assert.IsNotNull (ex.Message, "#B4");
+ Assert.AreEqual ((new NotSupportedException ()).Message, ex.Message, "#B5");
+ }
+ }
+ }
+
[Test]
public void GetChars ()
{