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 [Category ("NotWorking")]
\r
111 public void Constructor2_ConnectionString_Invalid ()
\r
114 new SqlConnection ("InvalidConnectionString");
\r
115 Assert.Fail ("#A1");
\r
116 } catch (ArgumentException ex) {
\r
117 // Format of the initialization string does
\r
118 // not conform to specification starting at
\r
120 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
\r
121 Assert.IsNull (ex.InnerException, "#A3");
\r
122 Assert.IsNotNull (ex.Message, "#A4");
\r
123 Assert.IsNull (ex.ParamName, "#A5");
\r
128 new SqlConnection ("invalidKeyword=10");
\r
129 Assert.Fail ("#B1");
\r
130 } catch (ArgumentException ex) {
\r
131 // Keyword not supported: 'invalidkeyword'
\r
132 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
\r
133 Assert.IsNull (ex.InnerException, "#B3");
\r
134 Assert.IsNotNull (ex.Message, "#B4");
\r
135 Assert.IsTrue (ex.Message.IndexOf ("'invalidkeyword'") != -1, "#B5");
\r
136 Assert.IsNull (ex.ParamName, "#B6");
\r
139 // invalid packet size (< minimum)
\r
141 new SqlConnection ("Packet Size=511");
\r
142 Assert.Fail ("#C1");
\r
143 } catch (ArgumentException ex) {
\r
144 // Invalid 'Packet Size'. The value must be an
\r
145 // integer >= 512 and <= 32768
\r
146 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
\r
147 Assert.IsNull (ex.InnerException, "#C3");
\r
148 Assert.IsNotNull (ex.Message, "#C4");
\r
149 Assert.IsNull (ex.ParamName, "#C5");
\r
152 // invalid packet size (> maximum)
\r
154 new SqlConnection ("Packet Size=32769");
\r
155 Assert.Fail ("#D1");
\r
156 } catch (ArgumentException ex) {
\r
157 // Invalid 'Packet Size'. The value must be an
\r
158 // integer >= 512 and <= 32768
\r
159 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#D2");
\r
160 Assert.IsNull (ex.InnerException, "#D3");
\r
161 Assert.IsNotNull (ex.Message, "#D4");
\r
162 Assert.IsNull (ex.ParamName, "#D5");
\r
165 // negative connect timeout
\r
167 new SqlConnection ("Connect Timeout=-1");
\r
168 Assert.Fail ("#E1");
\r
169 } catch (ArgumentException ex) {
\r
170 // Invalid value for key 'connect timeout'
\r
171 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#E2");
\r
172 Assert.IsNull (ex.InnerException, "#E3");
\r
173 Assert.IsNotNull (ex.Message, "#E4");
\r
174 Assert.IsNull (ex.ParamName, "#E5");
\r
177 // negative max pool size
\r
179 new SqlConnection ("Max Pool Size=-1");
\r
180 Assert.Fail ("#F1");
\r
181 } catch (ArgumentException ex) {
\r
182 // Invalid value for key 'max pool size'
\r
183 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#F2");
\r
184 Assert.IsNull (ex.InnerException, "#F3");
\r
185 Assert.IsNotNull (ex.Message, "#F4");
\r
186 Assert.IsNull (ex.ParamName, "#F5");
\r
189 // negative min pool size
\r
191 new SqlConnection ("Min Pool Size=-1");
\r
192 Assert.Fail ("#G1");
\r
193 } catch (ArgumentException ex) {
\r
194 // Invalid value for key 'min pool size'
\r
195 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#G2");
\r
196 Assert.IsNull (ex.InnerException, "#G3");
\r
197 Assert.IsNotNull (ex.Message, "#G4");
\r
198 Assert.IsNull (ex.ParamName, "#G5");
\r
203 public void BeginTransaction_Connection_Closed ()
\r
205 SqlConnection cn = new SqlConnection ();
\r
208 cn.BeginTransaction ();
\r
209 Assert.Fail ("#A1");
\r
210 } catch (InvalidOperationException ex) {
\r
211 // Invalid operation. The connection is closed
\r
212 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
\r
213 Assert.IsNull (ex.InnerException, "#A3");
\r
214 Assert.IsNotNull (ex.Message, "#A4");
\r
218 cn.BeginTransaction ((IsolationLevel) 666);
\r
219 Assert.Fail ("#B1");
\r
220 } catch (InvalidOperationException ex) {
\r
221 // Invalid operation. The connection is closed
\r
222 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
\r
223 Assert.IsNull (ex.InnerException, "#B3");
\r
224 Assert.IsNotNull (ex.Message, "#B4");
\r
228 cn.BeginTransaction (IsolationLevel.Serializable);
\r
229 Assert.Fail ("#C1");
\r
230 } catch (InvalidOperationException ex) {
\r
231 // Invalid operation. The connection is closed
\r
232 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
\r
233 Assert.IsNull (ex.InnerException, "#C3");
\r
234 Assert.IsNotNull (ex.Message, "#C4");
\r
238 cn.BeginTransaction ("trans");
\r
239 Assert.Fail ("#D1");
\r
240 } catch (InvalidOperationException ex) {
\r
241 // Invalid operation. The connection is closed
\r
242 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#D2");
\r
243 Assert.IsNull (ex.InnerException, "#D3");
\r
244 Assert.IsNotNull (ex.Message, "#D4");
\r
248 cn.BeginTransaction ((IsolationLevel) 666, "trans");
\r
249 Assert.Fail ("#E1");
\r
250 } catch (InvalidOperationException ex) {
\r
251 // Invalid operation. The connection is closed
\r
252 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
\r
253 Assert.IsNull (ex.InnerException, "#E3");
\r
254 Assert.IsNotNull (ex.Message, "#E4");
\r
258 cn.BeginTransaction (IsolationLevel.Serializable, "trans");
\r
259 Assert.Fail ("#F1");
\r
260 } catch (InvalidOperationException ex) {
\r
261 // Invalid operation. The connection is closed
\r
262 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#F2");
\r
263 Assert.IsNull (ex.InnerException, "#F3");
\r
264 Assert.IsNotNull (ex.Message, "#F4");
\r
269 public void ChangeDatabase_Connection_Closed ()
\r
271 SqlConnection cn = new SqlConnection ();
\r
272 cn.ConnectionString = "server=SQLSRV";
\r
275 cn.ChangeDatabase ("database");
\r
276 Assert.Fail ("#1");
\r
277 } catch (InvalidOperationException ex) {
\r
278 // Invalid operation. The connection is closed
\r
279 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
\r
280 Assert.IsNull (ex.InnerException, "#3");
\r
281 Assert.IsNotNull (ex.Message, "#4");
\r
287 public void ChangePassword_ConnectionString_Empty ()
\r
290 SqlConnection.ChangePassword (string.Empty, "mono");
\r
291 Assert.Fail ("#1");
\r
292 } catch (ArgumentNullException ex) {
\r
293 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
\r
294 Assert.IsNull (ex.InnerException, "#3");
\r
295 Assert.IsNotNull (ex.Message, "#4");
\r
296 Assert.IsNotNull (ex.ParamName, "#5");
\r
297 Assert.IsTrue (ex.ParamName.IndexOf ("'connectionString'") != -1, "#6");
\r
302 public void ChangePassword_ConnectionString_Null ()
\r
305 SqlConnection.ChangePassword ((string) null, "mono");
\r
306 Assert.Fail ("#1");
\r
307 } catch (ArgumentNullException ex) {
\r
308 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
\r
309 Assert.IsNull (ex.InnerException, "#3");
\r
310 Assert.IsNotNull (ex.Message, "#4");
\r
311 Assert.IsNotNull (ex.ParamName, "#5");
\r
312 Assert.IsTrue (ex.ParamName.IndexOf ("'connectionString'") != -1, "#6");
\r
317 public void ChangePassword_NewPassword_Empty ()
\r
320 SqlConnection.ChangePassword ("server=SQLSRV", string.Empty);
\r
321 Assert.Fail ("#1");
\r
322 } catch (ArgumentNullException ex) {
\r
323 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
\r
324 Assert.IsNull (ex.InnerException, "#3");
\r
325 Assert.IsNotNull (ex.Message, "#4");
\r
326 Assert.IsNotNull (ex.ParamName, "#5");
\r
327 Assert.IsTrue (ex.ParamName.IndexOf ("'newPassword'") != -1, "#6");
\r
332 public void ChangePassword_NewPassword_ExceedMaxLength ()
\r
335 SqlConnection.ChangePassword ("server=SQLSRV",
\r
336 new string ('d', 129));
\r
337 Assert.Fail ("#1");
\r
338 } catch (ArgumentException ex) {
\r
339 // The length of argument 'newPassword' exceeds
\r
340 // it's limit of '128'
\r
341 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
\r
342 Assert.IsNull (ex.InnerException, "#3");
\r
343 Assert.IsNotNull (ex.Message, "#4");
\r
344 Assert.IsTrue (ex.Message.IndexOf ("'newPassword'") != -1, "#5");
\r
345 Assert.IsTrue (ex.Message.IndexOf ("128") != -1, "#6");
\r
346 Assert.IsNull (ex.ParamName, "#7");
\r
351 public void ChangePassword_NewPassword_Null ()
\r
354 SqlConnection.ChangePassword ("server=SQLSRV", (string) null);
\r
355 Assert.Fail ("#1");
\r
356 } catch (ArgumentNullException ex) {
\r
357 Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
\r
358 Assert.IsNull (ex.InnerException, "#3");
\r
359 Assert.IsNotNull (ex.Message, "#4");
\r
360 Assert.IsNotNull (ex.ParamName, "#5");
\r
361 Assert.IsTrue (ex.ParamName.IndexOf ("'newPassword'") != -1, "#6");
\r
367 public void ConnectionString ()
\r
369 SqlConnection cn = new SqlConnection ();
\r
370 cn.ConnectionString = "server=SQLSRV";
\r
371 Assert.AreEqual ("server=SQLSRV", cn.ConnectionString, "#1");
\r
372 cn.ConnectionString = null;
\r
373 Assert.AreEqual (string.Empty, cn.ConnectionString, "#2");
\r
374 cn.ConnectionString = "server=SQLSRV";
\r
375 Assert.AreEqual ("server=SQLSRV", cn.ConnectionString, "#3");
\r
376 cn.ConnectionString = string.Empty;
\r
377 Assert.AreEqual (string.Empty, cn.ConnectionString, "#4");
\r
381 [Category ("NotWorking")]
\r
382 public void ConnectionString_Value_Invalid ()
\r
384 SqlConnection cn = new SqlConnection ();
\r
387 cn.ConnectionString = "InvalidConnectionString";
\r
388 Assert.Fail ("#A1");
\r
389 } catch (ArgumentException ex) {
\r
390 // Format of the initialization string does
\r
391 // not conform to specification starting at
\r
393 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
\r
394 Assert.IsNull (ex.InnerException, "#A3");
\r
395 Assert.IsNotNull (ex.Message, "#A4");
\r
396 Assert.IsNull (ex.ParamName, "#A5");
\r
401 cn.ConnectionString = "invalidKeyword=10";
\r
402 Assert.Fail ("#B1");
\r
403 } catch (ArgumentException ex) {
\r
404 // Keyword not supported: 'invalidkeyword'
\r
405 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
\r
406 Assert.IsNull (ex.InnerException, "#B3");
\r
407 Assert.IsNotNull (ex.Message, "#B4");
\r
408 Assert.IsTrue (ex.Message.IndexOf ("'invalidkeyword'") != -1, "#B5");
\r
409 Assert.IsNull (ex.ParamName, "#B6");
\r
412 // invalid packet size (< minimum)
\r
414 cn.ConnectionString = "Packet Size=511";
\r
415 Assert.Fail ("#C1");
\r
416 } catch (ArgumentException ex) {
\r
417 // Invalid 'Packet Size'. The value must be an
\r
418 // integer >= 512 and <= 32768
\r
419 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
\r
420 Assert.IsNull (ex.InnerException, "#C3");
\r
421 Assert.IsNotNull (ex.Message, "#C4");
\r
422 Assert.IsNull (ex.ParamName, "#C5");
\r
425 // invalid packet size (> maximum)
\r
427 cn.ConnectionString = "Packet Size=32769";
\r
428 Assert.Fail ("#D1");
\r
429 } catch (ArgumentException ex) {
\r
430 // Invalid 'Packet Size'. The value must be an
\r
431 // integer >= 512 and <= 32768
\r
432 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#D2");
\r
433 Assert.IsNull (ex.InnerException, "#D3");
\r
434 Assert.IsNotNull (ex.Message, "#D4");
\r
435 Assert.IsNull (ex.ParamName, "#D5");
\r
438 // negative connect timeout
\r
440 cn.ConnectionString = "Connect Timeout=-1";
\r
441 Assert.Fail ("#E1");
\r
442 } catch (ArgumentException ex) {
\r
443 // Invalid value for key 'connect timeout'
\r
444 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#E2");
\r
445 Assert.IsNull (ex.InnerException, "#E3");
\r
446 Assert.IsNotNull (ex.Message, "#E4");
\r
447 Assert.IsNull (ex.ParamName, "#E5");
\r
450 // negative max pool size
\r
452 cn.ConnectionString = "Max Pool Size=-1";
\r
453 Assert.Fail ("#F1");
\r
454 } catch (ArgumentException ex) {
\r
455 // Invalid value for key 'max pool size'
\r
456 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#F2");
\r
457 Assert.IsNull (ex.InnerException, "#F3");
\r
458 Assert.IsNotNull (ex.Message, "#F4");
\r
459 Assert.IsNull (ex.ParamName, "#F5");
\r
462 // negative min pool size
\r
464 cn.ConnectionString = "Min Pool Size=-1";
\r
465 Assert.Fail ("#G1");
\r
466 } catch (ArgumentException ex) {
\r
467 // Invalid value for key 'min pool size'
\r
468 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#G2");
\r
469 Assert.IsNull (ex.InnerException, "#G3");
\r
470 Assert.IsNotNull (ex.Message, "#G4");
\r
471 Assert.IsNull (ex.ParamName, "#G5");
\r
476 public void ConnectionTimeoutSynonyms()
\r
478 SqlConnection cn = null;
\r
480 cn = new SqlConnection ();
\r
481 cn.ConnectionString = "Connection Timeout=25";
\r
482 Assert.AreEqual (25, cn.ConnectionTimeout);
\r
484 cn = new SqlConnection ();
\r
485 cn.ConnectionString = "Connect Timeout=25";
\r
486 Assert.AreEqual (25, cn.ConnectionTimeout);
\r
488 cn = new SqlConnection ();
\r
489 cn.ConnectionString = "Timeout=25";
\r
490 Assert.AreEqual (25, cn.ConnectionTimeout);
\r
494 public void CreateCommand ()
\r
496 SqlConnection cn = new SqlConnection ();
\r
497 SqlCommand cmd = cn.CreateCommand ();
\r
498 Assert.IsNotNull (cmd, "#1");
\r
499 Assert.AreEqual (string.Empty, cmd.CommandText, "#2");
\r
500 Assert.AreEqual (30, cmd.CommandTimeout, "#3");
\r
501 Assert.AreEqual (CommandType.Text, cmd.CommandType, "#4");
\r
502 Assert.AreSame (cn, cmd.Connection, "#5");
\r
503 Assert.IsNull (cmd.Container, "#6");
\r
504 Assert.IsTrue (cmd.DesignTimeVisible, "#7");
\r
506 Assert.IsNull (cmd.Notification, "#8");
\r
507 Assert.IsTrue (cmd.NotificationAutoEnlist, "#9");
\r
509 Assert.IsNotNull (cmd.Parameters, "#10");
\r
510 Assert.AreEqual (0, cmd.Parameters.Count, "#11");
\r
511 Assert.IsNull (cmd.Site, "#12");
\r
512 Assert.IsNull (cmd.Transaction, "#13");
\r
513 Assert.AreEqual (UpdateRowSource.Both, cmd.UpdatedRowSource, "#14");
\r
517 public void Dispose ()
\r
519 SqlConnection cn = new SqlConnection ("Server=SQLSRV;Database=master;Timeout=25;Packet Size=512;Workstation ID=DUMMY");
\r
522 Assert.AreEqual (string.Empty, cn.ConnectionString, "#1");
\r
523 Assert.AreEqual (15, cn.ConnectionTimeout, "#2");
\r
524 Assert.AreEqual (string.Empty, cn.Database, "#3");
\r
525 Assert.AreEqual (string.Empty, cn.DataSource, "#4");
\r
527 Assert.AreEqual (8000, cn.PacketSize, "#5");
\r
529 Assert.AreEqual (8192, cn.PacketSize, "#5");
\r
531 Assert.IsTrue (string.Compare (Environment.MachineName, cn.WorkstationId, true) == 0, "#6");
\r
532 Assert.AreEqual (ConnectionState.Closed, cn.State, "#7");
\r
535 cn = new SqlConnection ();
\r
541 public void GetSchema_Connection_Closed ()
\r
543 SqlConnection cn = new SqlConnection ();
\r
547 Assert.Fail ("#A1");
\r
548 } catch (InvalidOperationException ex) {
\r
549 // Invalid operation. The connection is closed
\r
550 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
\r
551 Assert.IsNull (ex.InnerException, "#B3");
\r
552 Assert.IsNotNull (ex.Message, "#B4");
\r
556 cn.GetSchema ("Tables");
\r
557 Assert.Fail ("#B1");
\r
558 } catch (InvalidOperationException ex) {
\r
559 // Invalid operation. The connection is closed
\r
560 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
\r
561 Assert.IsNull (ex.InnerException, "#B3");
\r
562 Assert.IsNotNull (ex.Message, "#B4");
\r
566 cn.GetSchema ((string) null);
\r
567 Assert.Fail ("#C1");
\r
568 } catch (InvalidOperationException ex) {
\r
569 // Invalid operation. The connection is closed
\r
570 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
\r
571 Assert.IsNull (ex.InnerException, "#C3");
\r
572 Assert.IsNotNull (ex.Message, "#C4");
\r
576 cn.GetSchema ("Tables", new string [] { "master" });
\r
577 Assert.Fail ("#D1");
\r
578 } catch (InvalidOperationException ex) {
\r
579 // Invalid operation. The connection is closed
\r
580 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#D2");
\r
581 Assert.IsNull (ex.InnerException, "#D3");
\r
582 Assert.IsNotNull (ex.Message, "#D4");
\r
586 cn.GetSchema ((string) null, new string [] { "master" });
\r
587 Assert.Fail ("#E1");
\r
588 } catch (InvalidOperationException ex) {
\r
589 // Invalid operation. The connection is closed
\r
590 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
\r
591 Assert.IsNull (ex.InnerException, "#E3");
\r
592 Assert.IsNotNull (ex.Message, "#E4");
\r
596 cn.GetSchema ("Tables", (string []) null);
\r
597 Assert.Fail ("#F1");
\r
598 } catch (InvalidOperationException ex) {
\r
599 // Invalid operation. The connection is closed
\r
600 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#F2");
\r
601 Assert.IsNull (ex.InnerException, "#F3");
\r
602 Assert.IsNotNull (ex.Message, "#F4");
\r
606 cn.GetSchema ((string) null, (string []) null);
\r
607 Assert.Fail ("#G1");
\r
608 } catch (InvalidOperationException ex) {
\r
609 // Invalid operation. The connection is closed
\r
610 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#G2");
\r
611 Assert.IsNull (ex.InnerException, "#G3");
\r
612 Assert.IsNotNull (ex.Message, "#G4");
\r
618 public void ConnectionString_Database_Synonyms ()
\r
620 SqlConnection cn = null;
\r
622 cn = new SqlConnection ();
\r
623 cn.ConnectionString = "Initial Catalog=db";
\r
624 Assert.AreEqual ("db", cn.Database);
\r
626 cn = new SqlConnection ();
\r
627 cn.ConnectionString = "Database=db";
\r
628 Assert.AreEqual ("db", cn.Database);
\r
632 public void ConnectionString_DataSource_Synonyms ()
\r
634 SqlConnection cn = null;
\r
636 cn = new SqlConnection ();
\r
637 cn.ConnectionString = "Data Source=server";
\r
638 Assert.AreEqual ("server", cn.DataSource);
\r
640 cn = new SqlConnection ();
\r
641 cn.ConnectionString = "addr=server";
\r
642 Assert.AreEqual ("server", cn.DataSource);
\r
644 cn = new SqlConnection ();
\r
645 cn.ConnectionString = "address=server";
\r
646 Assert.AreEqual ("server", cn.DataSource);
\r
648 cn = new SqlConnection ();
\r
649 cn.ConnectionString = "network address=server";
\r
650 Assert.AreEqual ("server", cn.DataSource);
\r
652 cn = new SqlConnection ();
\r
653 cn.ConnectionString = "server=server";
\r
654 Assert.AreEqual ("server", cn.DataSource);
\r
658 public void ConnectionString_NetworkLibrary_Synonyms ()
\r
660 SqlConnection cn = new SqlConnection ();
\r
661 cn.ConnectionString = "Net=DBMSSOCN";
\r
662 cn.ConnectionString = "Network=DBMSSOCN";
\r
663 cn.ConnectionString = "Network library=DBMSSOCN";
\r
667 public void ConnectionString_OtherKeywords ()
\r
669 SqlConnection cn = new SqlConnection ();
\r
670 cn.ConnectionString = "Application Name=test";
\r
671 cn.ConnectionString = "App=test";
\r
672 cn.ConnectionString = "Connection LifeTime=1000";
\r
673 cn.ConnectionString = "Connection Reset=true";
\r
674 cn.ConnectionString = "Current Language=test";
\r
675 cn.ConnectionString = "Language=test";
\r
676 cn.ConnectionString = "Encrypt=false";
\r
677 cn.ConnectionString = "Enlist=true";
\r
678 cn.ConnectionString = "Integrated Security=true";
\r
679 cn.ConnectionString = "Trusted_connection=true";
\r
680 cn.ConnectionString = "Max Pool Size=10";
\r
681 cn.ConnectionString = "Min Pool Size=10";
\r
682 cn.ConnectionString = "Password=scrambled";
\r
683 cn.ConnectionString = "Pwd=scrambled";
\r
684 cn.ConnectionString = "Pooling=true";
\r
685 cn.ConnectionString = "User Id=test";
\r
686 cn.ConnectionString = "User=test";
\r
687 cn.ConnectionString = "Uid=test";
\r
689 * NOT IMPLEMENTED YET
\r
692 cn.ConnectionString = "Persist Security Info=true";
\r
693 cn.ConnectionString = "PersistSecurityInfo=true";
\r
694 cn.ConnectionString = "Encrypt=true";
\r
695 cn.ConnectionString = "Enlist=false";
\r
696 cn.ConnectionString = "attachdbfilename=dunno";
\r
697 cn.ConnectionString = "extended properties=dunno";
\r
698 cn.ConnectionString = "initial file name=dunno";
\r
703 public void Open_ConnectionString_Empty ()
\r
705 SqlConnection cn = new SqlConnection ();
\r
706 cn.ConnectionString = string.Empty;
\r
710 Assert.Fail ("#1");
\r
711 } catch (InvalidOperationException ex) {
\r
712 // The ConnectionString property has not been
\r
714 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
\r
715 Assert.IsNull (ex.InnerException, "#3");
\r
716 Assert.IsNotNull (ex.Message, "#4");
\r
721 public void Open_ConnectionString_Null ()
\r
723 SqlConnection cn = new SqlConnection ();
\r
724 cn.ConnectionString = null;
\r
728 Assert.Fail ("#1");
\r
729 } catch (InvalidOperationException ex) {
\r
730 // The ConnectionString property has not been
\r
732 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
\r
733 Assert.IsNull (ex.InnerException, "#3");
\r
734 Assert.IsNotNull (ex.Message, "#4");
\r
739 public void Open_ConnectionString_Whitespace ()
\r
741 SqlConnection cn = new SqlConnection ();
\r
742 cn.ConnectionString = " ";
\r
746 Assert.Fail ("#1");
\r
747 } catch (InvalidOperationException ex) {
\r
748 // The ConnectionString property has not been
\r
750 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
\r
751 Assert.IsNull (ex.InnerException, "#3");
\r
752 Assert.IsNotNull (ex.Message, "#4");
\r
757 public void ServerVersion_Connection_Closed ()
\r
759 SqlConnection cn = new SqlConnection ();
\r
761 Assert.Fail ("#A1:" + cn.ServerVersion);
\r
762 } catch (InvalidOperationException ex) {
\r
763 // Invalid operation. The connection is closed
\r
764 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
\r
765 Assert.IsNull (ex.InnerException, "#A3");
\r
766 Assert.IsNotNull (ex.Message, "#A4");
\r
769 cn = new SqlConnection ("server=SQLSRV; database=Mono;");
\r
771 Assert.Fail ("#B1:" + cn.ServerVersion);
\r
772 } catch (InvalidOperationException ex) {
\r
773 // Invalid operation. The connection is closed
\r
774 Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
\r
775 Assert.IsNull (ex.InnerException, "#B3");
\r
776 Assert.IsNotNull (ex.Message, "#B4");
\r