2 // SqlConnectionTest.cs - NUnit Test Cases for testing the
\r
3 // SqlConnection class
\r
5 // Gert Driesen (drieseng@users.sourceforge.net)
\r
7 // Copyright (c) 2004 Novell Inc., and the individuals listed
\r
8 // on the ChangeLog entries.
\r
10 // Permission is hereby granted, free of charge, to any person obtaining
\r
11 // a copy of this software and associated documentation files (the
\r
12 // "Software"), to deal in the Software without restriction, including
\r
13 // without limitation the rights to use, copy, modify, merge, publish,
\r
14 // distribute, sublicense, and/or sell copies of the Software, and to
\r
15 // permit persons to whom the Software is furnished to do so, subject to
\r
16 // the following conditions:
\r
18 // The above copyright notice and this permission notice shall be
\r
19 // included in all copies or substantial portions of the Software.
\r
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
\r
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
\r
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
\r
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
\r
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
\r
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
\r
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\r
32 using System.Data.SqlClient;
\r
34 using NUnit.Framework;
\r
36 namespace MonoTests.System.Data.SqlClient
\r
39 public class SqlConnectionTest
\r
41 [Test] // SqlConnection ()
\r
42 public void Constructor1 ()
\r
44 SqlConnection cn = new SqlConnection ();
\r
46 Assert.AreEqual (string.Empty, cn.ConnectionString, "#1");
\r
47 Assert.AreEqual (15, cn.ConnectionTimeout, "#2");
\r
48 Assert.IsNull (cn.Container, "#3");
\r
49 Assert.AreEqual (string.Empty, cn.Database, "#4");
\r
50 Assert.AreEqual (string.Empty, cn.DataSource, "#5");
\r
52 Assert.IsFalse (cn.FireInfoMessageEventOnUserErrors, "#6");
\r
53 Assert.AreEqual (8000, cn.PacketSize, "#7");
\r
55 Assert.AreEqual (8192, cn.PacketSize, "#7");
\r
57 Assert.IsNull (cn.Site, "#8");
\r
58 Assert.AreEqual (ConnectionState.Closed, cn.State, "#9");
\r
60 Assert.IsFalse (cn.StatisticsEnabled, "#10");
\r
62 Assert.IsTrue (string.Compare (Environment.MachineName, cn.WorkstationId, true) == 0, "#11");
\r
65 [Test] // SqlConnection (string)
\r
66 public void Constructor2 ()
\r
68 string connectionString = "server=SQLSRV; database=Mono;";
\r
70 SqlConnection cn = new SqlConnection (connectionString);
\r
71 Assert.AreEqual (connectionString, cn.ConnectionString, "#A1");
\r
72 Assert.AreEqual (15, cn.ConnectionTimeout, "#A2");
\r
73 Assert.IsNull (cn.Container, "#A3");
\r
74 Assert.AreEqual ("Mono", cn.Database, "#A4");
\r
75 Assert.AreEqual ("SQLSRV", cn.DataSource, "#A5");
\r
77 Assert.IsFalse (cn.FireInfoMessageEventOnUserErrors, "#A6");
\r
78 Assert.AreEqual (8000, cn.PacketSize, "#A7");
\r
80 Assert.AreEqual (8192, cn.PacketSize, "#A7");
\r
82 Assert.IsNull (cn.Site, "#A8");
\r
83 Assert.AreEqual (ConnectionState.Closed, cn.State, "#A9");
\r
85 Assert.IsFalse (cn.StatisticsEnabled, "#A10");
\r
87 Assert.IsTrue (string.Compare (Environment.MachineName, cn.WorkstationId, true) == 0, "#A11");
\r
89 cn = new SqlConnection ((string) null);
\r
90 Assert.AreEqual (string.Empty, cn.ConnectionString, "#B1");
\r
91 Assert.AreEqual (15, cn.ConnectionTimeout, "#B2");
\r
92 Assert.IsNull (cn.Container, "#B3");
\r
93 Assert.AreEqual (string.Empty, cn.Database, "#B4");
\r
94 Assert.AreEqual (string.Empty, cn.DataSource, "#B5");
\r
96 Assert.IsFalse (cn.FireInfoMessageEventOnUserErrors, "#B6");
\r
97 Assert.AreEqual (8000, cn.PacketSize, "#B7");
\r
99 Assert.AreEqual (8192, cn.PacketSize, "#B7");
\r
101 Assert.IsNull (cn.Site, "#B8");
\r
102 Assert.AreEqual (ConnectionState.Closed, cn.State, "#B9");
\r
104 Assert.IsFalse (cn.StatisticsEnabled, "#B10");
\r
106 Assert.IsTrue (string.Compare (Environment.MachineName, cn.WorkstationId, true) == 0, "#B11");
\r
110 public void Constructor2_ConnectionString_Invalid ()
\r
113 new SqlConnection ("InvalidConnectionString");
\r
114 Assert.Fail ("#A1");
\r
115 } catch (ArgumentException ex) {
\r
116 // Format of the initialization string does
\r
117 // not conform to specification starting at
\r
119 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
\r
120 Assert.IsNull (ex.InnerException, "#A3");
\r
121 Assert.IsNotNull (ex.Message, "#A4");
\r
122 Assert.IsNull (ex.ParamName, "#A5");
\r
127 new SqlConnection ("invalidKeyword=10");
\r
128 Assert.Fail ("#B1");
\r
129 } catch (ArgumentException ex) {
\r
130 // Keyword not supported: 'invalidkeyword'
\r
131 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
\r
132 Assert.IsNull (ex.InnerException, "#B3");
\r
133 Assert.IsNotNull (ex.Message, "#B4");
\r
134 Assert.IsTrue (ex.Message.IndexOf ("'invalidkeyword'") != -1, "#B5");
\r
135 Assert.IsNull (ex.ParamName, "#B6");
\r
138 // invalid packet size (< minimum)
\r
140 new SqlConnection ("Packet Size=511");
\r
141 Assert.Fail ("#C1");
\r
142 } catch (ArgumentException ex) {
\r
143 // Invalid 'Packet Size'. The value must be an
\r
144 // integer >= 512 and <= 32768
\r
145 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
\r
146 Assert.IsNull (ex.InnerException, "#C3");
\r
147 Assert.IsNotNull (ex.Message, "#C4");
\r
148 Assert.IsNull (ex.ParamName, "#C5");
\r
151 // invalid packet size (> maximum)
\r
153 new SqlConnection ("Packet Size=32769");
\r
154 Assert.Fail ("#D1");
\r
155 } catch (ArgumentException ex) {
\r
156 // Invalid 'Packet Size'. The value must be an
\r
157 // integer >= 512 and <= 32768
\r
158 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#D2");
\r
159 Assert.IsNull (ex.InnerException, "#D3");
\r
160 Assert.IsNotNull (ex.Message, "#D4");
\r
161 Assert.IsNull (ex.ParamName, "#D5");
\r
164 // negative connect timeout
\r
166 new SqlConnection ("Connect Timeout=-1");
\r
167 Assert.Fail ("#E1");
\r
168 } catch (ArgumentException ex) {
\r
169 // Invalid value for key 'connect timeout'
\r
170 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#E2");
\r
171 Assert.IsNull (ex.InnerException, "#E3");
\r
172 Assert.IsNotNull (ex.Message, "#E4");
\r
173 Assert.IsNull (ex.ParamName, "#E5");
\r
176 // negative max pool size
\r
178 new SqlConnection ("Max Pool Size=-1");
\r
179 Assert.Fail ("#F1");
\r
180 } catch (ArgumentException ex) {
\r
181 // Invalid value for key 'max pool size'
\r
182 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#F2");
\r
183 Assert.IsNull (ex.InnerException, "#F3");
\r
184 Assert.IsNotNull (ex.Message, "#F4");
\r
185 Assert.IsNull (ex.ParamName, "#F5");
\r
188 // negative min pool size
\r
190 new SqlConnection ("Min Pool Size=-1");
\r
191 Assert.Fail ("#G1");
\r
192 } catch (ArgumentException ex) {
\r
193 // Invalid value for key 'min pool size'
\r
194 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#G2");
\r
195 Assert.IsNull (ex.InnerException, "#G3");
\r
196 Assert.IsNotNull (ex.Message, "#G4");
\r
197 Assert.IsNull (ex.ParamName, "#G5");
\r
202 public void BeginTransaction_Connection_Closed ()
\r
204 SqlConnection cn = new SqlConnection ();
\r
207 cn.BeginTransaction ();
\r
208 Assert.Fail ("#A1");
\r
209 } catch (InvalidOperationException ex) {
\r
210 // Invalid operation. The connection is closed
\r
211 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
\r
212 Assert.IsNull (ex.InnerException, "#A3");
\r
213 Assert.IsNotNull (ex.Message, "#A4");
\r
217 cn.BeginTransaction ((IsolationLevel) 666);
\r
218 Assert.Fail ("#B1");
\r
219 } catch (InvalidOperationException ex) {
\r
220 // Invalid operation. The connection is closed
\r
221 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
\r
222 Assert.IsNull (ex.InnerException, "#B3");
\r
223 Assert.IsNotNull (ex.Message, "#B4");
\r
227 cn.BeginTransaction (IsolationLevel.Serializable);
\r
228 Assert.Fail ("#C1");
\r
229 } catch (InvalidOperationException ex) {
\r
230 // Invalid operation. The connection is closed
\r
231 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
\r
232 Assert.IsNull (ex.InnerException, "#C3");
\r
233 Assert.IsNotNull (ex.Message, "#C4");
\r
237 cn.BeginTransaction ("trans");
\r
238 Assert.Fail ("#D1");
\r
239 } catch (InvalidOperationException ex) {
\r
240 // Invalid operation. The connection is closed
\r
241 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#D2");
\r
242 Assert.IsNull (ex.InnerException, "#D3");
\r
243 Assert.IsNotNull (ex.Message, "#D4");
\r
247 cn.BeginTransaction ((IsolationLevel) 666, "trans");
\r
248 Assert.Fail ("#E1");
\r
249 } catch (InvalidOperationException ex) {
\r
250 // Invalid operation. The connection is closed
\r
251 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
\r
252 Assert.IsNull (ex.InnerException, "#E3");
\r
253 Assert.IsNotNull (ex.Message, "#E4");
\r
257 cn.BeginTransaction (IsolationLevel.Serializable, "trans");
\r
258 Assert.Fail ("#F1");
\r
259 } catch (InvalidOperationException ex) {
\r
260 // Invalid operation. The connection is closed
\r
261 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#F2");
\r
262 Assert.IsNull (ex.InnerException, "#F3");
\r
263 Assert.IsNotNull (ex.Message, "#F4");
\r
268 public void ChangeDatabase_Connection_Closed ()
\r
270 SqlConnection cn = new SqlConnection ();
\r
271 cn.ConnectionString = "server=SQLSRV";
\r
274 cn.ChangeDatabase ("database");
\r
275 Assert.Fail ("#1");
\r
276 } catch (InvalidOperationException ex) {
\r
277 // Invalid operation. The connection is closed
\r
278 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
\r
279 Assert.IsNull (ex.InnerException, "#3");
\r
280 Assert.IsNotNull (ex.Message, "#4");
\r
286 public void ChangePassword_ConnectionString_Empty ()
\r
289 SqlConnection.ChangePassword (string.Empty, "mono");
\r
290 Assert.Fail ("#1");
\r
291 } catch (ArgumentNullException ex) {
\r
292 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
\r
293 Assert.IsNull (ex.InnerException, "#3");
\r
294 Assert.IsNotNull (ex.Message, "#4");
\r
295 Assert.IsNotNull (ex.ParamName, "#5");
\r
296 Assert.IsTrue (ex.ParamName.IndexOf ("'connectionString'") != -1, "#6");
\r
301 public void ChangePassword_ConnectionString_Null ()
\r
304 SqlConnection.ChangePassword ((string) null, "mono");
\r
305 Assert.Fail ("#1");
\r
306 } catch (ArgumentNullException ex) {
\r
307 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
\r
308 Assert.IsNull (ex.InnerException, "#3");
\r
309 Assert.IsNotNull (ex.Message, "#4");
\r
310 Assert.IsNotNull (ex.ParamName, "#5");
\r
311 Assert.IsTrue (ex.ParamName.IndexOf ("'connectionString'") != -1, "#6");
\r
316 public void ChangePassword_NewPassword_Empty ()
\r
319 SqlConnection.ChangePassword ("server=SQLSRV", string.Empty);
\r
320 Assert.Fail ("#1");
\r
321 } catch (ArgumentNullException ex) {
\r
322 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
\r
323 Assert.IsNull (ex.InnerException, "#3");
\r
324 Assert.IsNotNull (ex.Message, "#4");
\r
325 Assert.IsNotNull (ex.ParamName, "#5");
\r
326 Assert.IsTrue (ex.ParamName.IndexOf ("'newPassword'") != -1, "#6");
\r
331 public void ChangePassword_NewPassword_ExceedMaxLength ()
\r
334 SqlConnection.ChangePassword ("server=SQLSRV",
\r
335 new string ('d', 129));
\r
336 Assert.Fail ("#1");
\r
337 } catch (ArgumentException ex) {
\r
338 // The length of argument 'newPassword' exceeds
\r
339 // it's limit of '128'
\r
340 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
\r
341 Assert.IsNull (ex.InnerException, "#3");
\r
342 Assert.IsNotNull (ex.Message, "#4");
\r
343 Assert.IsTrue (ex.Message.IndexOf ("'newPassword'") != -1, "#5");
\r
344 Assert.IsTrue (ex.Message.IndexOf ("128") != -1, "#6");
\r
345 Assert.IsNull (ex.ParamName, "#7");
\r
350 public void ChangePassword_NewPassword_Null ()
\r
353 SqlConnection.ChangePassword ("server=SQLSRV", (string) null);
\r
354 Assert.Fail ("#1");
\r
355 } catch (ArgumentNullException ex) {
\r
356 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
\r
357 Assert.IsNull (ex.InnerException, "#3");
\r
358 Assert.IsNotNull (ex.Message, "#4");
\r
359 Assert.IsNotNull (ex.ParamName, "#5");
\r
360 Assert.IsTrue (ex.ParamName.IndexOf ("'newPassword'") != -1, "#6");
\r
365 public void ClearPool_Connection_Null ()
\r
368 SqlConnection.ClearPool ((SqlConnection) null);
\r
369 Assert.Fail ("#1");
\r
370 } catch (ArgumentNullException ex) {
\r
371 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
\r
372 Assert.IsNull (ex.InnerException, "#3");
\r
373 Assert.IsNotNull (ex.Message, "#4");
\r
374 Assert.AreEqual ("connection", ex.ParamName, "#5");
\r
380 public void ConnectionString ()
\r
382 SqlConnection cn = new SqlConnection ();
\r
383 cn.ConnectionString = "server=SQLSRV";
\r
384 Assert.AreEqual ("server=SQLSRV", cn.ConnectionString, "#1");
\r
385 cn.ConnectionString = null;
\r
386 Assert.AreEqual (string.Empty, cn.ConnectionString, "#2");
\r
387 cn.ConnectionString = "server=SQLSRV";
\r
388 Assert.AreEqual ("server=SQLSRV", cn.ConnectionString, "#3");
\r
389 cn.ConnectionString = string.Empty;
\r
390 Assert.AreEqual (string.Empty, cn.ConnectionString, "#4");
\r
394 public void ConnectionString_Value_Invalid ()
\r
396 SqlConnection cn = new SqlConnection ();
\r
399 cn.ConnectionString = "InvalidConnectionString";
\r
400 Assert.Fail ("#A1");
\r
401 } catch (ArgumentException ex) {
\r
402 // Format of the initialization string does
\r
403 // not conform to specification starting at
\r
405 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
\r
406 Assert.IsNull (ex.InnerException, "#A3");
\r
407 Assert.IsNotNull (ex.Message, "#A4");
\r
408 Assert.IsNull (ex.ParamName, "#A5");
\r
413 cn.ConnectionString = "invalidKeyword=10";
\r
414 Assert.Fail ("#B1");
\r
415 } catch (ArgumentException ex) {
\r
416 // Keyword not supported: 'invalidkeyword'
\r
417 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
\r
418 Assert.IsNull (ex.InnerException, "#B3");
\r
419 Assert.IsNotNull (ex.Message, "#B4");
\r
420 Assert.IsTrue (ex.Message.IndexOf ("'invalidkeyword'") != -1, "#B5");
\r
421 Assert.IsNull (ex.ParamName, "#B6");
\r
426 public void CreateCommand ()
\r
428 SqlConnection cn = new SqlConnection ();
\r
429 SqlCommand cmd = cn.CreateCommand ();
\r
430 Assert.IsNotNull (cmd, "#1");
\r
431 Assert.AreEqual (string.Empty, cmd.CommandText, "#2");
\r
432 Assert.AreEqual (30, cmd.CommandTimeout, "#3");
\r
433 Assert.AreEqual (CommandType.Text, cmd.CommandType, "#4");
\r
434 Assert.AreSame (cn, cmd.Connection, "#5");
\r
435 Assert.IsNull (cmd.Container, "#6");
\r
436 Assert.IsTrue (cmd.DesignTimeVisible, "#7");
\r
438 Assert.IsNull (cmd.Notification, "#8");
\r
439 Assert.IsTrue (cmd.NotificationAutoEnlist, "#9");
\r
441 Assert.IsNotNull (cmd.Parameters, "#10");
\r
442 Assert.AreEqual (0, cmd.Parameters.Count, "#11");
\r
443 Assert.IsNull (cmd.Site, "#12");
\r
444 Assert.IsNull (cmd.Transaction, "#13");
\r
445 Assert.AreEqual (UpdateRowSource.Both, cmd.UpdatedRowSource, "#14");
\r
449 public void Dispose ()
\r
451 SqlConnection cn = new SqlConnection ("Server=SQLSRV;Database=master;Timeout=25;Packet Size=512;Workstation ID=DUMMY");
\r
454 Assert.AreEqual (string.Empty, cn.ConnectionString, "#1");
\r
455 Assert.AreEqual (15, cn.ConnectionTimeout, "#2");
\r
456 Assert.AreEqual (string.Empty, cn.Database, "#3");
\r
457 Assert.AreEqual (string.Empty, cn.DataSource, "#4");
\r
459 Assert.AreEqual (8000, cn.PacketSize, "#5");
\r
461 Assert.AreEqual (8192, cn.PacketSize, "#5");
\r
463 Assert.IsTrue (string.Compare (Environment.MachineName, cn.WorkstationId, true) == 0, "#6");
\r
464 Assert.AreEqual (ConnectionState.Closed, cn.State, "#7");
\r
467 cn = new SqlConnection ();
\r
473 public void GetSchema_Connection_Closed ()
\r
475 SqlConnection cn = new SqlConnection ();
\r
479 Assert.Fail ("#A1");
\r
480 } catch (InvalidOperationException ex) {
\r
481 // Invalid operation. The connection is closed
\r
482 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
\r
483 Assert.IsNull (ex.InnerException, "#B3");
\r
484 Assert.IsNotNull (ex.Message, "#B4");
\r
488 cn.GetSchema ("Tables");
\r
489 Assert.Fail ("#B1");
\r
490 } catch (InvalidOperationException ex) {
\r
491 // Invalid operation. The connection is closed
\r
492 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
\r
493 Assert.IsNull (ex.InnerException, "#B3");
\r
494 Assert.IsNotNull (ex.Message, "#B4");
\r
498 cn.GetSchema ((string) null);
\r
499 Assert.Fail ("#C1");
\r
500 } catch (InvalidOperationException ex) {
\r
501 // Invalid operation. The connection is closed
\r
502 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
\r
503 Assert.IsNull (ex.InnerException, "#C3");
\r
504 Assert.IsNotNull (ex.Message, "#C4");
\r
508 cn.GetSchema ("Tables", new string [] { "master" });
\r
509 Assert.Fail ("#D1");
\r
510 } catch (InvalidOperationException ex) {
\r
511 // Invalid operation. The connection is closed
\r
512 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#D2");
\r
513 Assert.IsNull (ex.InnerException, "#D3");
\r
514 Assert.IsNotNull (ex.Message, "#D4");
\r
518 cn.GetSchema ((string) null, new string [] { "master" });
\r
519 Assert.Fail ("#E1");
\r
520 } catch (InvalidOperationException ex) {
\r
521 // Invalid operation. The connection is closed
\r
522 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
\r
523 Assert.IsNull (ex.InnerException, "#E3");
\r
524 Assert.IsNotNull (ex.Message, "#E4");
\r
528 cn.GetSchema ("Tables", (string []) null);
\r
529 Assert.Fail ("#F1");
\r
530 } catch (InvalidOperationException ex) {
\r
531 // Invalid operation. The connection is closed
\r
532 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#F2");
\r
533 Assert.IsNull (ex.InnerException, "#F3");
\r
534 Assert.IsNotNull (ex.Message, "#F4");
\r
538 cn.GetSchema ((string) null, (string []) null);
\r
539 Assert.Fail ("#G1");
\r
540 } catch (InvalidOperationException ex) {
\r
541 // Invalid operation. The connection is closed
\r
542 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#G2");
\r
543 Assert.IsNull (ex.InnerException, "#G3");
\r
544 Assert.IsNotNull (ex.Message, "#G4");
\r
550 public void ConnectionString_AsynchronousProcessing ()
\r
552 SqlConnection cn = new SqlConnection ();
\r
554 cn.ConnectionString = "Asynchronous Processing=False";
\r
555 cn.ConnectionString = "Async=True";
\r
558 cn.ConnectionString = "Asynchronous Processing=False";
\r
559 Assert.Fail ("#A1");
\r
560 } catch (ArgumentException ex) {
\r
561 // Keyword not supported: 'asynchronous processing'
\r
562 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
\r
563 Assert.IsNull (ex.InnerException, "#A3");
\r
564 Assert.IsNotNull (ex.Message, "#A4");
\r
565 Assert.IsTrue (ex.Message.IndexOf ("'asynchronous processing'") != -1, "#A5:" + ex.Message);
\r
566 Assert.IsNull (ex.ParamName, "#A6");
\r
570 cn.ConnectionString = "Async=True";
\r
571 Assert.Fail ("#B1");
\r
572 } catch (ArgumentException ex) {
\r
573 // Keyword not supported: 'asynchronous processing'
\r
574 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
\r
575 Assert.IsNull (ex.InnerException, "#B3");
\r
576 Assert.IsNotNull (ex.Message, "#B4");
\r
577 Assert.IsTrue (ex.Message.IndexOf ("'async'") != -1, "#B5:" + ex.Message);
\r
578 Assert.IsNull (ex.ParamName, "#B6");
\r
584 public void ConnectionString_ConnectTimeout ()
\r
586 SqlConnection cn = new SqlConnection ();
\r
587 cn.ConnectionString = "Connection Timeout=45";
\r
588 Assert.AreEqual (45, cn.ConnectionTimeout, "#1");
\r
589 cn.ConnectionString = "Connect Timeout=40";
\r
590 Assert.AreEqual (40, cn.ConnectionTimeout, "#2");
\r
591 cn.ConnectionString = "Timeout=";
\r
592 Assert.AreEqual (15, cn.ConnectionTimeout, "#3");
\r
593 cn.ConnectionString = "Timeout=2147483647";
\r
594 Assert.AreEqual (int.MaxValue, cn.ConnectionTimeout, "#4");
\r
595 cn.ConnectionString = "Timeout=0";
\r
596 Assert.AreEqual (0, cn.ConnectionTimeout, "#5");
\r
600 public void ConnectionString_ConnectTimeout_Invalid ()
\r
602 SqlConnection cn = new SqlConnection ();
\r
606 cn.ConnectionString = "Connection timeout=-1";
\r
607 Assert.Fail ("#A1");
\r
608 } catch (ArgumentException ex) {
\r
609 // Invalid value for key 'connect timeout'
\r
610 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
\r
611 Assert.IsNull (ex.InnerException, "#A3");
\r
612 Assert.IsNotNull (ex.Message, "#A4");
\r
614 Assert.IsTrue (ex.Message.IndexOf ("'connect timeout'") != -1, "#A5:" + ex.Message);
\r
616 Assert.IsNull (ex.ParamName, "#A6");
\r
621 cn.ConnectionString = "connect Timeout=BB";
\r
622 Assert.Fail ("#B1");
\r
623 } catch (ArgumentException ex) {
\r
624 // Invalid value for key 'connect timeout'
\r
625 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
\r
626 Assert.IsNotNull (ex.InnerException, "#B3");
\r
627 Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#B4");
\r
628 Assert.IsNotNull (ex.Message, "#B5");
\r
629 Assert.IsTrue (ex.Message.IndexOf ("'connect timeout'") != -1, "#B6:" + ex.Message);
\r
630 Assert.IsNull (ex.ParamName, "#B7");
\r
632 // Input string was not in a correct format
\r
633 FormatException fe = (FormatException) ex.InnerException;
\r
634 Assert.IsNull (fe.InnerException, "#B8");
\r
635 Assert.IsNotNull (fe.Message, "#B9");
\r
640 cn.ConnectionString = "timeout=2147483648";
\r
641 Assert.Fail ("#C1");
\r
642 } catch (ArgumentException ex) {
\r
643 // Invalid value for key 'connect timeout'
\r
644 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
\r
645 Assert.IsNotNull (ex.InnerException, "#C3");
\r
646 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#C4");
\r
647 Assert.IsNotNull (ex.Message, "#C5");
\r
648 Assert.IsTrue (ex.Message.IndexOf ("'connect timeout'") != -1, "#C6:" + ex.Message);
\r
649 Assert.IsNull (ex.ParamName, "#C7");
\r
651 // Value was either too large or too small for an Int32
\r
652 OverflowException oe = (OverflowException) ex.InnerException;
\r
653 Assert.IsNull (oe.InnerException, "#C8");
\r
654 Assert.IsNotNull (oe.Message, "#C9");
\r
659 public void ConnectionString_Database_Synonyms ()
\r
661 SqlConnection cn = null;
\r
663 cn = new SqlConnection ();
\r
664 cn.ConnectionString = "Initial Catalog=db";
\r
665 Assert.AreEqual ("db", cn.Database);
\r
667 cn = new SqlConnection ();
\r
668 cn.ConnectionString = "Database=db";
\r
669 Assert.AreEqual ("db", cn.Database);
\r
673 public void ConnectionString_DataSource_Synonyms ()
\r
675 SqlConnection cn = null;
\r
677 cn = new SqlConnection ();
\r
678 cn.ConnectionString = "Data Source=server";
\r
679 Assert.AreEqual ("server", cn.DataSource);
\r
681 cn = new SqlConnection ();
\r
682 cn.ConnectionString = "addr=server";
\r
683 Assert.AreEqual ("server", cn.DataSource);
\r
685 cn = new SqlConnection ();
\r
686 cn.ConnectionString = "address=server";
\r
687 Assert.AreEqual ("server", cn.DataSource);
\r
689 cn = new SqlConnection ();
\r
690 cn.ConnectionString = "network address=server";
\r
691 Assert.AreEqual ("server", cn.DataSource);
\r
693 cn = new SqlConnection ();
\r
694 cn.ConnectionString = "server=server";
\r
695 Assert.AreEqual ("server", cn.DataSource);
\r
699 public void ConnectionString_MaxPoolSize ()
\r
701 SqlConnection cn = new SqlConnection ();
\r
702 cn.ConnectionString = "Max Pool Size=2147483647";
\r
703 cn.ConnectionString = "Max Pool Size=1";
\r
704 cn.ConnectionString = "Max Pool Size=500";
\r
708 public void ConnectionString_MaxPoolSize_Invalid ()
\r
710 SqlConnection cn = new SqlConnection ();
\r
714 cn.ConnectionString = "Max Pool Size=-1";
\r
715 Assert.Fail ("#A1");
\r
716 } catch (ArgumentException ex) {
\r
717 // Invalid value for key 'max pool size'
\r
718 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
\r
719 Assert.IsNull (ex.InnerException, "#A3");
\r
720 Assert.IsNotNull (ex.Message, "#A4");
\r
722 Assert.IsTrue (ex.Message.IndexOf ("'max pool size'") != -1, "#A5:" + ex.Message);
\r
724 Assert.IsNull (ex.ParamName, "#A6");
\r
729 cn.ConnectionString = "max Pool size=BB";
\r
730 Assert.Fail ("#B1");
\r
731 } catch (ArgumentException ex) {
\r
732 // Invalid value for key 'max pool size'
\r
733 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
\r
734 Assert.IsNotNull (ex.InnerException, "#B3");
\r
735 Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#B4");
\r
736 Assert.IsNotNull (ex.Message, "#B5");
\r
737 Assert.IsTrue (ex.Message.IndexOf ("'max pool size'") != -1, "#B6:" + ex.Message);
\r
738 Assert.IsNull (ex.ParamName, "#B7");
\r
740 // Input string was not in a correct format
\r
741 FormatException fe = (FormatException) ex.InnerException;
\r
742 Assert.IsNull (fe.InnerException, "#B8");
\r
743 Assert.IsNotNull (fe.Message, "#B9");
\r
748 cn.ConnectionString = "max pool size=2147483648";
\r
749 Assert.Fail ("#C1");
\r
750 } catch (ArgumentException ex) {
\r
751 // Invalid value for key 'max pool size'
\r
752 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
\r
753 Assert.IsNotNull (ex.InnerException, "#C3");
\r
754 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#C4");
\r
755 Assert.IsNotNull (ex.Message, "#C5");
\r
756 Assert.IsTrue (ex.Message.IndexOf ("'max pool size'") != -1, "#C6:" + ex.Message);
\r
757 Assert.IsNull (ex.ParamName, "#C7");
\r
759 // Value was either too large or too small for an Int32
\r
760 OverflowException oe = (OverflowException) ex.InnerException;
\r
761 Assert.IsNull (oe.InnerException, "#C8");
\r
762 Assert.IsNotNull (oe.Message, "#C9");
\r
765 // less than minimum (1)
\r
767 cn.ConnectionString = "Min Pool Size=0;Max Pool Size=0";
\r
768 Assert.Fail ("#D1");
\r
769 } catch (ArgumentException ex) {
\r
770 // Invalid value for key 'max pool size'
\r
771 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#D2");
\r
772 Assert.IsNull (ex.InnerException, "#D3");
\r
773 Assert.IsNotNull (ex.Message, "#D4");
\r
775 Assert.IsTrue (ex.Message.IndexOf ("'max pool size'") != -1, "#D5:" + ex.Message);
\r
777 Assert.IsNull (ex.ParamName, "#D6");
\r
780 // less than min pool size
\r
782 cn.ConnectionString = "Min Pool Size=5;Max Pool Size=4";
\r
783 Assert.Fail ("#E1");
\r
784 } catch (ArgumentException ex) {
\r
785 // Invalid min or max pool size values, min
\r
786 // pool size cannot be greater than the max
\r
788 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#E2");
\r
789 Assert.IsNull (ex.InnerException, "#E3");
\r
790 Assert.IsNotNull (ex.Message, "#E4");
\r
791 Assert.IsNull (ex.ParamName, "#E5");
\r
796 public void ConnectionString_MinPoolSize ()
\r
798 SqlConnection cn = new SqlConnection ();
\r
799 cn.ConnectionString = "min Pool size=0";
\r
800 cn.ConnectionString = "Min Pool size=100";
\r
801 cn.ConnectionString = "Min Pool Size=2147483647;Max Pool Size=2147483647";
\r
805 public void ConnectionString_MinPoolSize_Invalid ()
\r
807 SqlConnection cn = new SqlConnection ();
\r
811 cn.ConnectionString = "Min Pool Size=-1";
\r
812 Assert.Fail ("#A1");
\r
813 } catch (ArgumentException ex) {
\r
814 // Invalid value for key 'min pool size'
\r
815 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
\r
816 Assert.IsNull (ex.InnerException, "#A3");
\r
817 Assert.IsNotNull (ex.Message, "#A4");
\r
819 Assert.IsTrue (ex.Message.IndexOf ("'min pool size'") != -1, "#A5:" + ex.Message);
\r
821 Assert.IsNull (ex.ParamName, "#A6");
\r
826 cn.ConnectionString = "min Pool size=BB";
\r
827 Assert.Fail ("#B1");
\r
828 } catch (ArgumentException ex) {
\r
829 // Invalid value for key 'min pool size'
\r
830 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
\r
831 Assert.IsNotNull (ex.InnerException, "#B3");
\r
832 Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#B4");
\r
833 Assert.IsNotNull (ex.Message, "#B5");
\r
834 Assert.IsTrue (ex.Message.IndexOf ("'min pool size'") != -1, "#B6:" + ex.Message);
\r
835 Assert.IsNull (ex.ParamName, "#B7");
\r
837 // Input string was not in a correct format
\r
838 FormatException fe = (FormatException) ex.InnerException;
\r
839 Assert.IsNull (fe.InnerException, "#B8");
\r
840 Assert.IsNotNull (fe.Message, "#B9");
\r
845 cn.ConnectionString = "min pool size=2147483648";
\r
846 Assert.Fail ("#C1");
\r
847 } catch (ArgumentException ex) {
\r
848 // Invalid value for key 'min pool size'
\r
849 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
\r
850 Assert.IsNotNull (ex.InnerException, "#C3");
\r
851 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#C4");
\r
852 Assert.IsNotNull (ex.Message, "#C5");
\r
853 Assert.IsTrue (ex.Message.IndexOf ("'min pool size'") != -1, "#C6:" + ex.Message);
\r
854 Assert.IsNull (ex.ParamName, "#C7");
\r
856 // Value was either too large or too small for an Int32
\r
857 OverflowException oe = (OverflowException) ex.InnerException;
\r
858 Assert.IsNull (oe.InnerException, "#C8");
\r
859 Assert.IsNotNull (oe.Message, "#C9");
\r
864 public void ConnectionString_MultipleActiveResultSets ()
\r
866 SqlConnection cn = new SqlConnection ();
\r
868 cn.ConnectionString = "MultipleActiveResultSets=true";
\r
871 cn.ConnectionString = "MultipleActiveResultSets=true";
\r
872 Assert.Fail ("#1");
\r
873 } catch (ArgumentException ex) {
\r
874 // Keyword not supported: 'multipleactiveresultsets'
\r
875 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
\r
876 Assert.IsNull (ex.InnerException, "#3");
\r
877 Assert.IsNotNull (ex.Message, "#4");
\r
878 Assert.IsTrue (ex.Message.IndexOf ("'multipleactiveresultsets'") != -1, "#5:" + ex.Message);
\r
879 Assert.IsNull (ex.ParamName, "#6");
\r
885 public void ConnectionString_MultipleActiveResultSets_Invalid ()
\r
887 SqlConnection cn = new SqlConnection ();
\r
889 cn.ConnectionString = "MultipleActiveResultSets=1";
\r
890 Assert.Fail ("#1");
\r
892 } catch (ArgumentException ex) {
\r
893 // Invalid value for key 'multipleactiveresultsets'
\r
894 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
\r
895 Assert.IsNull (ex.InnerException, "#3");
\r
896 Assert.IsNotNull (ex.Message, "#4");
\r
897 Assert.IsTrue (ex.Message.IndexOf ("'multipleactiveresultsets'") != -1, "#5:" + ex.Message);
\r
898 Assert.IsNull (ex.ParamName, "#6");
\r
901 } catch (ArgumentException ex) {
\r
902 // Keyword not supported: 'multipleactiveresultsets'
\r
903 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
\r
904 Assert.IsNull (ex.InnerException, "#3");
\r
905 Assert.IsNotNull (ex.Message, "#4");
\r
906 Assert.IsTrue (ex.Message.IndexOf ("'multipleactiveresultsets'") != -1, "#5:" + ex.Message);
\r
907 Assert.IsNull (ex.ParamName, "#6");
\r
913 public void ConnectionString_NetworkLibrary_Synonyms ()
\r
915 SqlConnection cn = new SqlConnection ();
\r
916 cn.ConnectionString = "Net=DBMSSOCN";
\r
917 cn.ConnectionString = "Network=DBMSSOCN";
\r
918 cn.ConnectionString = "Network library=DBMSSOCN";
\r
922 public void ConnectionString_PacketSize ()
\r
924 SqlConnection cn = new SqlConnection ();
\r
925 cn.ConnectionString = "Packet Size=1024";
\r
926 Assert.AreEqual (1024, cn.PacketSize, "#1");
\r
927 cn.ConnectionString = "packet SizE=533";
\r
928 Assert.AreEqual (533, cn.PacketSize, "#2");
\r
929 cn.ConnectionString = "packet SizE=512";
\r
930 Assert.AreEqual (512, cn.PacketSize, "#3");
\r
932 cn.ConnectionString = "packet SizE=32768";
\r
933 Assert.AreEqual (32768, cn.PacketSize, "#4");
\r
935 cn.ConnectionString = "packet SizE=32767";
\r
936 Assert.AreEqual (32767, cn.PacketSize, "#4");
\r
938 cn.ConnectionString = "packet Size=";
\r
940 Assert.AreEqual (8000, cn.PacketSize, "#5");
\r
942 Assert.AreEqual (8192, cn.PacketSize, "#5");
\r
947 public void ConnectionString_PacketSize_Invalid ()
\r
949 SqlConnection cn = new SqlConnection ();
\r
951 // invalid packet size (< minimum)
\r
953 cn.ConnectionString = "Packet Size=511";
\r
954 Assert.Fail ("#A1");
\r
955 } catch (ArgumentException ex) {
\r
956 // Invalid 'Packet Size'. The value must be an
\r
957 // integer >= 512 and <= 32768
\r
958 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
\r
959 Assert.IsNull (ex.InnerException, "#A3");
\r
960 Assert.IsNotNull (ex.Message, "#A4");
\r
961 Assert.IsTrue (ex.Message.IndexOf ("'Packet Size'") != -1, "#A5:" + ex.Message);
\r
962 Assert.IsNull (ex.ParamName, "#A6");
\r
965 // invalid packet size (> maximum)
\r
968 cn.ConnectionString = "packet SIze=32769";
\r
970 cn.ConnectionString = "packet SIze=32768";
\r
972 Assert.Fail ("#B1");
\r
973 } catch (ArgumentException ex) {
\r
974 // Invalid 'Packet Size'. The value must be an
\r
975 // integer >= 512 and <= 32768
\r
976 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
\r
977 Assert.IsNull (ex.InnerException, "#B3");
\r
978 Assert.IsNotNull (ex.Message, "#B4");
\r
979 Assert.IsTrue (ex.Message.IndexOf ("'Packet Size'") != -1, "#B5:" + ex.Message);
\r
980 Assert.IsNull (ex.ParamName, "#B6");
\r
985 cn.ConnectionString = "packet SIze=2147483648";
\r
986 Assert.Fail ("#C1");
\r
987 } catch (ArgumentException ex) {
\r
988 // Invalid value for key 'packet size'
\r
989 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
\r
990 Assert.IsNotNull (ex.InnerException, "#C3");
\r
991 Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#C4");
\r
992 Assert.IsNotNull (ex.Message, "#C5");
\r
993 Assert.IsTrue (ex.Message.IndexOf ("'packet size'") != -1, "#C6:" + ex.Message);
\r
994 Assert.IsNull (ex.ParamName, "#C7");
\r
996 // Value was either too large or too small for an Int32
\r
997 OverflowException oe = (OverflowException) ex.InnerException;
\r
998 Assert.IsNull (oe.InnerException, "#C8");
\r
999 Assert.IsNotNull (oe.Message, "#C9");
\r
1004 public void ConnectionString_Password_Synonyms ()
\r
1006 SqlConnection cn = new SqlConnection ();
\r
1007 cn.ConnectionString = "Password=scrambled";
\r
1008 cn.ConnectionString = "Pwd=scrambled";
\r
1012 public void ConnectionString_PersistSecurityInfo_Synonyms ()
\r
1014 SqlConnection cn = new SqlConnection ();
\r
1015 cn.ConnectionString = "Persist Security Info=true";
\r
1016 cn.ConnectionString = "PersistSecurityInfo=true";
\r
1020 public void ConnectionString_UserID_Synonyms ()
\r
1022 SqlConnection cn = new SqlConnection ();
\r
1023 cn.ConnectionString = "User Id=test";
\r
1024 cn.ConnectionString = "User=test";
\r
1025 cn.ConnectionString = "Uid=test";
\r
1029 public void ConnectionString_UserInstance ()
\r
1031 SqlConnection cn = new SqlConnection ();
\r
1033 cn.ConnectionString = "User Instance=true";
\r
1036 cn.ConnectionString = "User Instance=true";
\r
1037 Assert.Fail ("#1");
\r
1038 } catch (ArgumentException ex) {
\r
1039 // Keyword not supported: 'user instance'
\r
1040 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
\r
1041 Assert.IsNull (ex.InnerException, "#3");
\r
1042 Assert.IsNotNull (ex.Message, "#4");
\r
1043 Assert.IsTrue (ex.Message.IndexOf ("'user instance'") != -1, "#5:" + ex.Message);
\r
1044 Assert.IsNull (ex.ParamName, "#6");
\r
1050 public void ConnectionString_UserInstance_Invalid ()
\r
1052 SqlConnection cn = new SqlConnection ();
\r
1054 cn.ConnectionString = "User Instance=1";
\r
1055 Assert.Fail ("#1");
\r
1057 } catch (ArgumentException ex) {
\r
1058 // Invalid value for key 'user instance'
\r
1059 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
\r
1060 Assert.IsNull (ex.InnerException, "#3");
\r
1061 Assert.IsNotNull (ex.Message, "#4");
\r
1062 Assert.IsTrue (ex.Message.IndexOf ("'user instance'") != -1, "#5:" + ex.Message);
\r
1063 Assert.IsNull (ex.ParamName, "#6");
\r
1066 } catch (ArgumentException ex) {
\r
1067 // Keyword not supported: 'user instance'
\r
1068 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
\r
1069 Assert.IsNull (ex.InnerException, "#3");
\r
1070 Assert.IsNotNull (ex.Message, "#4");
\r
1071 Assert.IsTrue (ex.Message.IndexOf ("'user instance'") != -1, "#5:" + ex.Message);
\r
1072 Assert.IsNull (ex.ParamName, "#6");
\r
1078 public void ConnectionString_OtherKeywords ()
\r
1080 SqlConnection cn = new SqlConnection ();
\r
1081 cn.ConnectionString = "Application Name=test";
\r
1082 cn.ConnectionString = "App=test";
\r
1083 cn.ConnectionString = "Connection Reset=true";
\r
1084 cn.ConnectionString = "Current Language=test";
\r
1085 cn.ConnectionString = "Language=test";
\r
1086 cn.ConnectionString = "Encrypt=false";
\r
1087 //cn.ConnectionString = "Encrypt=true";
\r
1088 //cn.ConnectionString = "Enlist=false";
\r
1089 cn.ConnectionString = "Enlist=true";
\r
1090 cn.ConnectionString = "Integrated Security=true";
\r
1091 cn.ConnectionString = "Trusted_connection=true";
\r
1092 cn.ConnectionString = "Max Pool Size=10";
\r
1093 cn.ConnectionString = "Min Pool Size=10";
\r
1094 cn.ConnectionString = "Pooling=true";
\r
1095 cn.ConnectionString = "attachdbfilename=dunno";
\r
1096 cn.ConnectionString = "extended properties=dunno";
\r
1097 cn.ConnectionString = "initial file name=dunno";
\r
1101 public void Open_ConnectionString_Empty ()
\r
1103 SqlConnection cn = new SqlConnection ();
\r
1104 cn.ConnectionString = string.Empty;
\r
1108 Assert.Fail ("#1");
\r
1109 } catch (InvalidOperationException ex) {
\r
1110 // The ConnectionString property has not been
\r
1112 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
\r
1113 Assert.IsNull (ex.InnerException, "#3");
\r
1114 Assert.IsNotNull (ex.Message, "#4");
\r
1119 public void Open_ConnectionString_Null ()
\r
1121 SqlConnection cn = new SqlConnection ();
\r
1122 cn.ConnectionString = null;
\r
1126 Assert.Fail ("#1");
\r
1127 } catch (InvalidOperationException ex) {
\r
1128 // The ConnectionString property has not been
\r
1130 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
\r
1131 Assert.IsNull (ex.InnerException, "#3");
\r
1132 Assert.IsNotNull (ex.Message, "#4");
\r
1137 public void Open_ConnectionString_Whitespace ()
\r
1139 SqlConnection cn = new SqlConnection ();
\r
1140 cn.ConnectionString = " ";
\r
1144 Assert.Fail ("#1");
\r
1145 } catch (InvalidOperationException ex) {
\r
1146 // The ConnectionString property has not been
\r
1148 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
\r
1149 Assert.IsNull (ex.InnerException, "#3");
\r
1150 Assert.IsNotNull (ex.Message, "#4");
\r
1155 public void ServerVersion_Connection_Closed ()
\r
1157 SqlConnection cn = new SqlConnection ();
\r
1159 Assert.Fail ("#A1:" + cn.ServerVersion);
\r
1160 } catch (InvalidOperationException ex) {
\r
1161 // Invalid operation. The connection is closed
\r
1162 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
\r
1163 Assert.IsNull (ex.InnerException, "#A3");
\r
1164 Assert.IsNotNull (ex.Message, "#A4");
\r
1167 cn = new SqlConnection ("server=SQLSRV; database=Mono;");
\r
1169 Assert.Fail ("#B1:" + cn.ServerVersion);
\r
1170 } catch (InvalidOperationException ex) {
\r
1171 // Invalid operation. The connection is closed
\r
1172 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
\r
1173 Assert.IsNull (ex.InnerException, "#B3");
\r
1174 Assert.IsNotNull (ex.Message, "#B4");
\r