2 // SqlParameterTest.cs - NUnit Test Cases for testing the
5 // Senganal T (tsenganal@novell.com)
6 // Amit Biswas (amit@amitbiswas.com)
7 // Gert Driesen (drieseng@users.sourceforge.net)
9 // Copyright (c) 2004 Novell Inc., and the individuals listed
10 // on the ChangeLog entries.
12 // Permission is hereby granted, free of charge, to any person obtaining
13 // a copy of this software and associated documentation files (the
14 // "Software"), to deal in the Software without restriction, including
15 // without limitation the rights to use, copy, modify, merge, publish,
16 // distribute, sublicense, and/or sell copies of the Software, and to
17 // permit persons to whom the Software is furnished to do so, subject to
18 // the following conditions:
20 // The above copyright notice and this permission notice shall be
21 // included in all copies or substantial portions of the Software.
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34 using System.Data.Common;
35 using System.Data.SqlClient;
36 using System.Data.SqlTypes;
40 using NUnit.Framework;
42 namespace MonoTests.System.Data.SqlClient
45 public class SqlParameterTest
48 #if FEATURE_NO_BSD_SOCKETS
49 [ExpectedException (typeof (PlatformNotSupportedException))]
51 public void Constructor1 ()
53 SqlParameter p = new SqlParameter ();
54 Assert.AreEqual (DbType.String, p.DbType, "DbType");
55 Assert.AreEqual (ParameterDirection.Input, p.Direction, "Direction");
56 Assert.IsFalse (p.IsNullable, "IsNullable");
57 Assert.AreEqual (0, p.LocaleId, "LocaleId");
58 Assert.AreEqual (string.Empty, p.ParameterName, "ParameterName");
59 Assert.AreEqual (0, p.Precision, "Precision");
60 Assert.AreEqual (0, p.Scale, "Scale");
61 Assert.AreEqual (0, p.Size, "Size");
62 Assert.AreEqual (string.Empty, p.SourceColumn, "SourceColumn");
63 Assert.IsFalse (p.SourceColumnNullMapping, "SourceColumnNullMapping");
64 Assert.AreEqual (DataRowVersion.Current, p.SourceVersion, "SourceVersion");
65 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "SqlDbType");
66 Assert.IsNull (p.SqlValue, "SqlValue");
67 Assert.IsNull (p.Value, "Value");
68 Assert.AreEqual (string.Empty, p.XmlSchemaCollectionDatabase, "XmlSchemaCollectionDatabase");
69 Assert.AreEqual (string.Empty, p.XmlSchemaCollectionName, "XmlSchemaCollectionName");
70 Assert.AreEqual (string.Empty, p.XmlSchemaCollectionOwningSchema, "XmlSchemaCollectionOwningSchema");
74 #if FEATURE_NO_BSD_SOCKETS
75 [ExpectedException (typeof (PlatformNotSupportedException))]
77 public void Constructor2_Value_DateTime ()
79 DateTime value = new DateTime (2004, 8, 24);
81 SqlParameter p = new SqlParameter ("address", value);
82 Assert.AreEqual (DbType.DateTime, p.DbType, "B:DbType");
83 Assert.AreEqual (ParameterDirection.Input, p.Direction, "B:Direction");
84 Assert.IsFalse (p.IsNullable, "B:IsNullable");
85 Assert.AreEqual (0, p.LocaleId, "B:LocaleId");
86 Assert.AreEqual ("address", p.ParameterName, "B:ParameterName");
87 Assert.AreEqual (0, p.Precision, "B:Precision");
88 Assert.AreEqual (0, p.Scale, "B:Scale");
89 //Assert.AreEqual (0, p.Size, "B:Size");
90 Assert.AreEqual (string.Empty, p.SourceColumn, "B:SourceColumn");
91 Assert.IsFalse (p.SourceColumnNullMapping, "B:SourceColumnNullMapping");
92 Assert.AreEqual (DataRowVersion.Current, p.SourceVersion, "B:SourceVersion");
93 Assert.AreEqual (SqlDbType.DateTime, p.SqlDbType, "B:SqlDbType");
95 //Assert.AreEqual (new SqlDateTime (value), p.SqlValue, "B:SqlValue");
96 Assert.AreEqual (value, p.Value, "B:Value");
97 Assert.AreEqual (string.Empty, p.XmlSchemaCollectionDatabase, "B:XmlSchemaCollectionDatabase");
98 Assert.AreEqual (string.Empty, p.XmlSchemaCollectionName, "B:XmlSchemaCollectionName");
99 Assert.AreEqual (string.Empty, p.XmlSchemaCollectionOwningSchema, "B:XmlSchemaCollectionOwningSchema");
103 #if FEATURE_NO_BSD_SOCKETS
104 [ExpectedException (typeof (PlatformNotSupportedException))]
106 public void Constructor2_Value_DBNull ()
108 SqlParameter p = new SqlParameter ("address", DBNull.Value);
109 Assert.AreEqual (DbType.String, p.DbType, "B:DbType");
110 Assert.AreEqual (ParameterDirection.Input, p.Direction, "B:Direction");
111 Assert.IsFalse (p.IsNullable, "B:IsNullable");
112 Assert.AreEqual (0, p.LocaleId, "B:LocaleId");
113 Assert.AreEqual ("address", p.ParameterName, "B:ParameterName");
114 Assert.AreEqual (0, p.Precision, "B:Precision");
115 Assert.AreEqual (0, p.Scale, "B:Scale");
116 Assert.AreEqual (0, p.Size, "B:Size");
117 Assert.AreEqual (string.Empty, p.SourceColumn, "B:SourceColumn");
118 Assert.IsFalse (p.SourceColumnNullMapping, "B:SourceColumnNullMapping");
119 Assert.AreEqual (DataRowVersion.Current, p.SourceVersion, "B:SourceVersion");
120 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "B:SqlDbType");
122 //Assert.AreEqual (SqlString.Null, p.SqlValue, "B:SqlValue");
123 Assert.AreEqual (DBNull.Value, p.Value, "B:Value");
124 Assert.AreEqual (string.Empty, p.XmlSchemaCollectionDatabase, "B:XmlSchemaCollectionDatabase");
125 Assert.AreEqual (string.Empty, p.XmlSchemaCollectionName, "B:XmlSchemaCollectionName");
126 Assert.AreEqual (string.Empty, p.XmlSchemaCollectionOwningSchema, "B:XmlSchemaCollectionOwningSchema");
130 #if FEATURE_NO_BSD_SOCKETS
131 [ExpectedException (typeof (PlatformNotSupportedException))]
133 public void Constructor2_Value_Null ()
135 SqlParameter p = new SqlParameter ("address", (Object) null);
136 Assert.AreEqual (DbType.String, p.DbType, "A:DbType");
137 Assert.AreEqual (ParameterDirection.Input, p.Direction, "A:Direction");
138 Assert.IsFalse (p.IsNullable, "A:IsNullable");
139 Assert.AreEqual (0, p.LocaleId, "A:LocaleId");
140 Assert.AreEqual ("address", p.ParameterName, "A:ParameterName");
141 Assert.AreEqual (0, p.Precision, "A:Precision");
142 Assert.AreEqual (0, p.Scale, "A:Scale");
143 Assert.AreEqual (0, p.Size, "A:Size");
144 Assert.AreEqual (string.Empty, p.SourceColumn, "A:SourceColumn");
145 Assert.IsFalse (p.SourceColumnNullMapping, "A:SourceColumnNullMapping");
146 Assert.AreEqual (DataRowVersion.Current, p.SourceVersion, "A:SourceVersion");
147 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "A:SqlDbType");
148 Assert.IsNull (p.SqlValue, "A:SqlValue");
149 Assert.IsNull (p.Value, "A:Value");
150 Assert.AreEqual (string.Empty, p.XmlSchemaCollectionDatabase, "A:XmlSchemaCollectionDatabase");
151 Assert.AreEqual (string.Empty, p.XmlSchemaCollectionName, "A:XmlSchemaCollectionName");
152 Assert.AreEqual (string.Empty, p.XmlSchemaCollectionOwningSchema, "A:XmlSchemaCollectionOwningSchema");
155 [Test] // .ctor (String, SqlDbType, Int32, ParameterDirection, Byte, Byte, String, DataRowVersion, Boolean, Object, String, String, String)
156 #if FEATURE_NO_BSD_SOCKETS
157 [ExpectedException (typeof (PlatformNotSupportedException))]
159 public void Constructor7 ()
161 SqlParameter p1 = new SqlParameter ("p1Name", SqlDbType.VarChar, 20,
162 ParameterDirection.InputOutput, 0, 0,
163 "srcCol", DataRowVersion.Original, false,
164 "foo", "database", "schema", "name");
165 Assert.AreEqual (DbType.AnsiString, p1.DbType, "DbType");
166 Assert.AreEqual (ParameterDirection.InputOutput, p1.Direction, "Direction");
167 Assert.AreEqual (false, p1.IsNullable, "IsNullable");
168 //Assert.AreEqual (999, p1.LocaleId, "#");
169 Assert.AreEqual ("p1Name", p1.ParameterName, "ParameterName");
170 Assert.AreEqual (0, p1.Precision, "Precision");
171 Assert.AreEqual (0, p1.Scale, "Scale");
172 Assert.AreEqual (20, p1.Size, "Size");
173 Assert.AreEqual ("srcCol", p1.SourceColumn, "SourceColumn");
174 Assert.AreEqual (false, p1.SourceColumnNullMapping, "SourceColumnNullMapping");
175 Assert.AreEqual (DataRowVersion.Original, p1.SourceVersion, "SourceVersion");
176 Assert.AreEqual (SqlDbType.VarChar, p1.SqlDbType, "SqlDbType");
177 //Assert.AreEqual (3210, p1.SqlValue, "#");
178 Assert.AreEqual ("foo", p1.Value, "Value");
179 Assert.AreEqual ("database", p1.XmlSchemaCollectionDatabase, "XmlSchemaCollectionDatabase");
180 Assert.AreEqual ("name", p1.XmlSchemaCollectionName, "XmlSchemaCollectionName");
181 Assert.AreEqual ("schema", p1.XmlSchemaCollectionOwningSchema, "XmlSchemaCollectionOwningSchema");
185 #if FEATURE_NO_BSD_SOCKETS
186 [ExpectedException (typeof (PlatformNotSupportedException))]
188 public void CompareInfo ()
190 SqlParameter parameter = new SqlParameter ();
191 Assert.AreEqual (SqlCompareOptions.None, parameter.CompareInfo, "#1");
192 parameter.CompareInfo = SqlCompareOptions.IgnoreNonSpace;
193 Assert.AreEqual (SqlCompareOptions.IgnoreNonSpace, parameter.CompareInfo, "#2");
197 #if FEATURE_NO_BSD_SOCKETS
198 [ExpectedException (typeof (PlatformNotSupportedException))]
200 public void InferType_Byte ()
204 SqlParameter param = new SqlParameter ();
206 Assert.AreEqual (SqlDbType.TinyInt, param.SqlDbType, "#1");
207 Assert.AreEqual (DbType.Byte, param.DbType, "#2");
211 #if FEATURE_NO_BSD_SOCKETS
212 [ExpectedException (typeof (PlatformNotSupportedException))]
214 public void InferType_ByteArray ()
216 Byte [] value = new Byte [] { 0x0a, 0x0d };
218 SqlParameter param = new SqlParameter ();
220 Assert.AreEqual (SqlDbType.VarBinary, param.SqlDbType, "#1");
221 Assert.AreEqual (DbType.Binary, param.DbType, "#2");
225 [Category ("NotWorking")]
226 public void InferType_Char ()
230 String string_value = "X";
232 SqlParameter p = new SqlParameter ();
234 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#A:SqlDbType");
235 Assert.AreEqual (DbType.String, p.DbType, "#A:DbType");
236 Assert.AreEqual (string_value, p.Value, "#A:Value");
238 p = new SqlParameter ();
240 Assert.AreEqual (value, p.Value, "#B:Value1");
241 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#B:SqlDbType");
242 Assert.AreEqual (string_value, p.Value, "#B:Value2");
244 p = new SqlParameter ();
246 Assert.AreEqual (value, p.Value, "#C:Value1");
247 Assert.AreEqual (DbType.String, p.DbType, "#C:DbType");
248 Assert.AreEqual (string_value, p.Value, "#C:Value2");
250 p = new SqlParameter ("name", value);
251 Assert.AreEqual (value, p.Value, "#D:Value1");
252 Assert.AreEqual (DbType.String, p.DbType, "#D:DbType");
253 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#D:SqlDbType");
254 Assert.AreEqual (string_value, p.Value, "#D:Value2");
256 p = new SqlParameter ("name", 5);
258 Assert.AreEqual (value, p.Value, "#E:Value1");
259 Assert.AreEqual (DbType.String, p.DbType, "#E:DbType");
260 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#E:SqlDbType");
261 Assert.AreEqual (string_value, p.Value, "#E:Value2");
263 p = new SqlParameter ("name", SqlDbType.NVarChar);
265 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#F:SqlDbType");
266 Assert.AreEqual (value, p.Value, "#F:Value");
270 [Category ("NotWorking")]
271 public void InferType_CharArray ()
273 Char [] value = new Char [] { 'A', 'X' };
275 String string_value = "AX";
277 SqlParameter p = new SqlParameter ();
279 Assert.AreEqual (value, p.Value, "#A:Value1");
280 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#A:SqlDbType");
281 Assert.AreEqual (DbType.String, p.DbType, "#A:DbType");
282 Assert.AreEqual (string_value, p.Value, "#A:Value2");
284 p = new SqlParameter ();
286 Assert.AreEqual (value, p.Value, "#B:Value1");
287 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#B:SqlDbType");
288 Assert.AreEqual (string_value, p.Value, "#B:Value2");
290 p = new SqlParameter ();
292 Assert.AreEqual (value, p.Value, "#C:Value1");
293 Assert.AreEqual (DbType.String, p.DbType, "#C:DbType");
294 Assert.AreEqual (string_value, p.Value, "#C:Value2");
296 p = new SqlParameter ("name", value);
297 Assert.AreEqual (value, p.Value, "#D:Value1");
298 Assert.AreEqual (DbType.String, p.DbType, "#D:DbType");
299 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#D:SqlDbType");
300 Assert.AreEqual (string_value, p.Value, "#D:Value2");
302 p = new SqlParameter ("name", 5);
304 Assert.AreEqual (value, p.Value, "#E:Value1");
305 Assert.AreEqual (DbType.String, p.DbType, "#E:DbType");
306 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#E:SqlDbType");
307 Assert.AreEqual (string_value, p.Value, "#E:Value2");
309 p = new SqlParameter ("name", SqlDbType.NVarChar);
311 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#F:SqlDbType");
312 Assert.AreEqual (value, p.Value, "#F:Value");
316 #if FEATURE_NO_BSD_SOCKETS
317 [ExpectedException (typeof (PlatformNotSupportedException))]
319 public void InferType_DateTime ()
324 value = DateTime.Now;
325 param = new SqlParameter ();
327 Assert.AreEqual (SqlDbType.DateTime, param.SqlDbType, "#A1");
328 Assert.AreEqual (DbType.DateTime, param.DbType, "#A2");
330 value = DateTime.Now;
331 param = new SqlParameter ();
333 Assert.AreEqual (SqlDbType.DateTime, param.SqlDbType, "#B1");
334 Assert.AreEqual (DbType.DateTime, param.DbType, "#B2");
336 value = new DateTime (1973, 8, 13);
337 param = new SqlParameter ();
339 Assert.AreEqual (SqlDbType.DateTime, param.SqlDbType, "#C1");
340 Assert.AreEqual (DbType.DateTime, param.DbType, "#C2");
344 #if FEATURE_NO_BSD_SOCKETS
345 [ExpectedException (typeof (PlatformNotSupportedException))]
347 public void InferType_Decimal ()
352 value = Decimal.MaxValue;
353 param = new SqlParameter ();
355 Assert.AreEqual (SqlDbType.Decimal, param.SqlDbType, "#A1");
356 Assert.AreEqual (DbType.Decimal, param.DbType, "#A2");
358 value = Decimal.MinValue;
359 param = new SqlParameter ();
361 Assert.AreEqual (SqlDbType.Decimal, param.SqlDbType, "#B1");
362 Assert.AreEqual (DbType.Decimal, param.DbType, "#B2");
365 param = new SqlParameter ();
367 Assert.AreEqual (SqlDbType.Decimal, param.SqlDbType, "#C1");
368 Assert.AreEqual (DbType.Decimal, param.DbType, "#C2");
372 #if FEATURE_NO_BSD_SOCKETS
373 [ExpectedException (typeof (PlatformNotSupportedException))]
375 public void InferType_Double ()
380 value = Double.MaxValue;
381 param = new SqlParameter ();
383 Assert.AreEqual (SqlDbType.Float, param.SqlDbType, "#A1");
384 Assert.AreEqual (DbType.Double, param.DbType, "#A2");
386 value = Double.MinValue;
387 param = new SqlParameter ();
389 Assert.AreEqual (SqlDbType.Float, param.SqlDbType, "#B1");
390 Assert.AreEqual (DbType.Double, param.DbType, "#B2");
393 param = new SqlParameter ();
395 Assert.AreEqual (SqlDbType.Float, param.SqlDbType, "#C1");
396 Assert.AreEqual (DbType.Double, param.DbType, "#C2");
400 #if FEATURE_NO_BSD_SOCKETS
401 [ExpectedException (typeof (PlatformNotSupportedException))]
403 public void InferType_Enum ()
407 param = new SqlParameter ();
408 param.Value = ByteEnum.A;
409 Assert.AreEqual (SqlDbType.TinyInt, param.SqlDbType, "#A1");
410 Assert.AreEqual (DbType.Byte, param.DbType, "#A2");
412 param = new SqlParameter ();
413 param.Value = Int64Enum.A;
414 Assert.AreEqual (SqlDbType.BigInt, param.SqlDbType, "#B1");
415 Assert.AreEqual (DbType.Int64, param.DbType, "#B2");
419 #if FEATURE_NO_BSD_SOCKETS
420 [ExpectedException (typeof (PlatformNotSupportedException))]
422 public void InferType_Guid ()
424 Guid value = Guid.NewGuid ();
426 SqlParameter param = new SqlParameter ();
428 Assert.AreEqual (SqlDbType.UniqueIdentifier, param.SqlDbType, "#1");
429 Assert.AreEqual (DbType.Guid, param.DbType, "#2");
433 #if FEATURE_NO_BSD_SOCKETS
434 [ExpectedException (typeof (PlatformNotSupportedException))]
436 public void InferType_Int16 ()
441 value = Int16.MaxValue;
442 param = new SqlParameter ();
444 Assert.AreEqual (SqlDbType.SmallInt, param.SqlDbType, "#A1");
445 Assert.AreEqual (DbType.Int16, param.DbType, "#A2");
447 value = Int16.MinValue;
448 param = new SqlParameter ();
450 Assert.AreEqual (SqlDbType.SmallInt, param.SqlDbType, "#B1");
451 Assert.AreEqual (DbType.Int16, param.DbType, "#B2");
454 param = new SqlParameter ();
456 Assert.AreEqual (SqlDbType.SmallInt, param.SqlDbType, "#C1");
457 Assert.AreEqual (DbType.Int16, param.DbType, "#C2");
461 #if FEATURE_NO_BSD_SOCKETS
462 [ExpectedException (typeof (PlatformNotSupportedException))]
464 public void InferType_Int32 ()
469 value = Int32.MaxValue;
470 param = new SqlParameter ();
472 Assert.AreEqual (SqlDbType.Int, param.SqlDbType, "#A1");
473 Assert.AreEqual (DbType.Int32, param.DbType, "#A2");
475 value = Int32.MinValue;
476 param = new SqlParameter ();
478 Assert.AreEqual (SqlDbType.Int, param.SqlDbType, "#B1");
479 Assert.AreEqual (DbType.Int32, param.DbType, "#B2");
482 param = new SqlParameter ();
484 Assert.AreEqual (SqlDbType.Int, param.SqlDbType, "#C1");
485 Assert.AreEqual (DbType.Int32, param.DbType, "#C2");
489 #if FEATURE_NO_BSD_SOCKETS
490 [ExpectedException (typeof (PlatformNotSupportedException))]
492 public void InferType_Int64 ()
497 value = Int64.MaxValue;
498 param = new SqlParameter ();
500 Assert.AreEqual (SqlDbType.BigInt, param.SqlDbType, "#A1");
501 Assert.AreEqual (DbType.Int64, param.DbType, "#A2");
503 value = Int64.MinValue;
504 param = new SqlParameter ();
506 Assert.AreEqual (SqlDbType.BigInt, param.SqlDbType, "#B1");
507 Assert.AreEqual (DbType.Int64, param.DbType, "#B2");
510 param = new SqlParameter ();
512 Assert.AreEqual (SqlDbType.BigInt, param.SqlDbType, "#C1");
513 Assert.AreEqual (DbType.Int64, param.DbType, "#C2");
517 [Category ("NotWorking")]
518 public void InferType_Invalid ()
520 object [] notsupported = new object [] {
528 SqlParameter param = new SqlParameter ();
530 for (int i = 0; i < notsupported.Length; i++) {
531 param.Value = notsupported [i];
533 SqlDbType type = param.SqlDbType;
534 Assert.Fail ("#A1:" + i + " (" + type + ")");
535 } catch (ArgumentException ex) {
536 // The parameter data type of ... is invalid
537 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
538 Assert.IsNull (ex.InnerException, "#A3");
539 Assert.IsNotNull (ex.Message, "#A4");
540 Assert.IsNull (ex.ParamName, "#A5");
544 DbType type = param.DbType;
545 Assert.Fail ("#B1:" + i + " (" + type + ")");
546 } catch (ArgumentException ex) {
547 // The parameter data type of ... is invalid
548 Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
549 Assert.IsNull (ex.InnerException, "#B3");
550 Assert.IsNotNull (ex.Message, "#B4");
551 Assert.IsNull (ex.ParamName, "#B5");
557 #if FEATURE_NO_BSD_SOCKETS
558 [ExpectedException (typeof (PlatformNotSupportedException))]
560 public void InferType_Object ()
562 Object value = new Object ();
564 SqlParameter param = new SqlParameter ();
566 Assert.AreEqual (SqlDbType.Variant, param.SqlDbType, "#1");
567 Assert.AreEqual (DbType.Object, param.DbType, "#2");
571 #if FEATURE_NO_BSD_SOCKETS
572 [ExpectedException (typeof (PlatformNotSupportedException))]
574 public void InferType_Single ()
576 Single value = Single.MaxValue;
578 SqlParameter param = new SqlParameter ();
580 Assert.AreEqual (SqlDbType.Real, param.SqlDbType, "#1");
581 Assert.AreEqual (DbType.Single, param.DbType, "#2");
585 #if FEATURE_NO_BSD_SOCKETS
586 [ExpectedException (typeof (PlatformNotSupportedException))]
588 public void InferType_String ()
590 String value = "some text";
592 SqlParameter param = new SqlParameter ();
594 Assert.AreEqual (SqlDbType.NVarChar, param.SqlDbType, "#1");
595 Assert.AreEqual (DbType.String, param.DbType, "#2");
599 [Category ("NotWorking")]
600 public void InferType_TimeSpan ()
602 TimeSpan value = new TimeSpan (4, 6, 23);
604 SqlParameter param = new SqlParameter ();
606 Assert.AreEqual (SqlDbType.Time, param.SqlDbType, "#1");
607 Assert.AreEqual (DbType.Time, param.DbType, "#2");
611 #if FEATURE_NO_BSD_SOCKETS
612 [ExpectedException (typeof (PlatformNotSupportedException))]
614 public void LocaleId ()
616 SqlParameter parameter = new SqlParameter ();
617 Assert.AreEqual (0, parameter.LocaleId, "#1");
618 parameter.LocaleId = 15;
619 Assert.AreEqual(15, parameter.LocaleId, "#2");
622 [Test] // bug #320196
623 #if FEATURE_NO_BSD_SOCKETS
624 [ExpectedException (typeof (PlatformNotSupportedException))]
626 public void ParameterNullTest ()
628 SqlParameter param = new SqlParameter ("param", SqlDbType.Decimal);
629 Assert.AreEqual (0, param.Scale, "#A1");
630 param.Value = DBNull.Value;
631 Assert.AreEqual (0, param.Scale, "#A2");
633 param = new SqlParameter ("param", SqlDbType.Int);
634 Assert.AreEqual (0, param.Scale, "#B1");
635 param.Value = DBNull.Value;
636 Assert.AreEqual (0, param.Scale, "#B2");
640 #if FEATURE_NO_BSD_SOCKETS
641 [ExpectedException (typeof (PlatformNotSupportedException))]
643 public void ParameterType ()
647 // If Type is not set, then type is inferred from the value
648 // assigned. The Type should be inferred everytime Value is assigned
649 // If value is null or DBNull, then the current Type should be reset to NVarChar.
650 p = new SqlParameter ();
651 Assert.AreEqual (DbType.String, p.DbType, "#A1");
652 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#A2");
653 p.Value = DBNull.Value;
654 Assert.AreEqual (DbType.String, p.DbType, "#B1");
655 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#B2");
657 Assert.AreEqual (DbType.Int32, p.DbType, "#C1");
658 Assert.AreEqual (SqlDbType.Int, p.SqlDbType, "#C2");
659 p.Value = DBNull.Value;
660 Assert.AreEqual (DbType.String, p.DbType, "#D1");
661 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#D2");
662 p.Value = new byte [] { 0x0a };
663 Assert.AreEqual (DbType.Binary, p.DbType, "#E1");
664 Assert.AreEqual (SqlDbType.VarBinary, p.SqlDbType, "#E2");
666 Assert.AreEqual (DbType.String, p.DbType, "#F1");
667 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#F2");
668 p.Value = DateTime.Now;
669 Assert.AreEqual (DbType.DateTime, p.DbType, "#G1");
670 Assert.AreEqual (SqlDbType.DateTime, p.SqlDbType, "#G2");
672 Assert.AreEqual (DbType.String, p.DbType, "#H1");
673 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#H2");
675 // If DbType is set, then the SqlDbType should not be
676 // inferred from the value assigned.
677 p = new SqlParameter ();
678 p.DbType = DbType.DateTime;
679 Assert.AreEqual (SqlDbType.DateTime, p.SqlDbType, "#I1");
681 Assert.AreEqual (SqlDbType.DateTime, p.SqlDbType, "#I2");
683 Assert.AreEqual (SqlDbType.DateTime, p.SqlDbType, "#I3");
684 p.Value = DBNull.Value;
685 Assert.AreEqual (SqlDbType.DateTime, p.SqlDbType, "#I4");
687 // If SqlDbType is set, then the DbType should not be
688 // inferred from the value assigned.
689 p = new SqlParameter ();
690 p.SqlDbType = SqlDbType.VarBinary;
691 Assert.AreEqual (SqlDbType.VarBinary, p.SqlDbType, "#J1");
693 Assert.AreEqual (SqlDbType.VarBinary, p.SqlDbType, "#J2");
695 Assert.AreEqual (SqlDbType.VarBinary, p.SqlDbType, "#J3");
696 p.Value = DBNull.Value;
697 Assert.AreEqual (SqlDbType.VarBinary, p.SqlDbType, "#J4");
701 #if FEATURE_NO_BSD_SOCKETS
702 [ExpectedException (typeof (PlatformNotSupportedException))]
704 public void InferType_Boolean ()
710 param = new SqlParameter ();
712 Assert.AreEqual (SqlDbType.Bit, param.SqlDbType, "#A1");
713 Assert.AreEqual (DbType.Boolean, param.DbType, "#A2");
716 param = new SqlParameter ();
718 Assert.AreEqual (SqlDbType.Bit, param.SqlDbType, "#B1");
719 Assert.AreEqual (DbType.Boolean, param.DbType, "#B2");
723 #if FEATURE_NO_BSD_SOCKETS
724 [ExpectedException (typeof (PlatformNotSupportedException))]
726 public void ParameterName ()
728 SqlParameter p = new SqlParameter ();
729 p.ParameterName = "name";
730 Assert.AreEqual ("name", p.ParameterName, "#A:ParameterName");
731 Assert.AreEqual (string.Empty, p.SourceColumn, "#A:SourceColumn");
733 p.ParameterName = null;
734 Assert.AreEqual (string.Empty, p.ParameterName, "#B:ParameterName");
735 Assert.AreEqual (string.Empty, p.SourceColumn, "#B:SourceColumn");
737 p.ParameterName = " ";
738 Assert.AreEqual (" ", p.ParameterName, "#C:ParameterName");
739 Assert.AreEqual (string.Empty, p.SourceColumn, "#C:SourceColumn");
741 p.ParameterName = " name ";
742 Assert.AreEqual (" name ", p.ParameterName, "#D:ParameterName");
743 Assert.AreEqual (string.Empty, p.SourceColumn, "#D:SourceColumn");
745 p.ParameterName = string.Empty;
746 Assert.AreEqual (string.Empty, p.ParameterName, "#E:ParameterName");
747 Assert.AreEqual (string.Empty, p.SourceColumn, "#E:SourceColumn");
751 #if FEATURE_NO_BSD_SOCKETS
752 [ExpectedException (typeof (PlatformNotSupportedException))]
754 public void ResetDbType ()
758 //Parameter with an assigned value but no DbType specified
759 p = new SqlParameter ("foo", 42);
761 Assert.AreEqual (DbType.Int32, p.DbType, "#A:DbType");
762 Assert.AreEqual (SqlDbType.Int, p.SqlDbType, "#A:SqlDbType");
763 Assert.AreEqual (42, p.Value, "#A:Value");
765 p.DbType = DbType.DateTime; //assigning a DbType
766 Assert.AreEqual (DbType.DateTime, p.DbType, "#B:DbType1");
767 Assert.AreEqual (SqlDbType.DateTime, p.SqlDbType, "#B:SqlDbType1");
769 Assert.AreEqual (DbType.Int32, p.DbType, "#B:DbType2");
770 Assert.AreEqual (SqlDbType.Int, p.SqlDbType, "#B:SqlDbtype2");
772 //Parameter with an assigned SqlDbType but no specified value
773 p = new SqlParameter ("foo", SqlDbType.Int);
775 Assert.AreEqual (DbType.String, p.DbType, "#C:DbType");
776 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#C:SqlDbType");
778 p.DbType = DbType.DateTime; //assigning a SqlDbType
779 Assert.AreEqual (DbType.DateTime, p.DbType, "#D:DbType1");
780 Assert.AreEqual (SqlDbType.DateTime, p.SqlDbType, "#D:SqlDbType1");
782 Assert.AreEqual (DbType.String, p.DbType, "#D:DbType2");
783 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#D:SqlDbType2");
785 p = new SqlParameter ();
786 p.Value = DateTime.MaxValue;
787 Assert.AreEqual (DbType.DateTime, p.DbType, "#E:DbType1");
788 Assert.AreEqual (SqlDbType.DateTime, p.SqlDbType, "#E:SqlDbType1");
791 Assert.AreEqual (DbType.String, p.DbType, "#E:DbType2");
792 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#E:SqlDbType2");
794 p = new SqlParameter ("foo", SqlDbType.VarChar);
795 p.Value = DateTime.MaxValue;
797 Assert.AreEqual (DbType.DateTime, p.DbType, "#F:DbType");
798 Assert.AreEqual (SqlDbType.DateTime, p.SqlDbType, "#F:SqlDbType");
799 Assert.AreEqual (DateTime.MaxValue, p.Value, "#F:Value");
801 p = new SqlParameter ("foo", SqlDbType.VarChar);
802 p.Value = DBNull.Value;
804 Assert.AreEqual (DbType.String, p.DbType, "#G:DbType");
805 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#G:SqlDbType");
806 Assert.AreEqual (DBNull.Value, p.Value, "#G:Value");
808 p = new SqlParameter ("foo", SqlDbType.VarChar);
811 Assert.AreEqual (DbType.String, p.DbType, "#G:DbType");
812 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#G:SqlDbType");
813 Assert.IsNull (p.Value, "#G:Value");
817 #if FEATURE_NO_BSD_SOCKETS
818 [ExpectedException (typeof (PlatformNotSupportedException))]
820 public void ResetSqlDbType ()
822 //Parameter with an assigned value but no SqlDbType specified
823 SqlParameter p1 = new SqlParameter ("foo", 42);
824 Assert.AreEqual (42, p1.Value, "#1");
825 Assert.AreEqual (DbType.Int32, p1.DbType, "#2");
826 Assert.AreEqual (SqlDbType.Int, p1.SqlDbType, "#3");
828 p1.ResetSqlDbType ();
829 Assert.AreEqual (DbType.Int32, p1.DbType, "#4 The parameter with value 42 must have DbType as Int32");
830 Assert.AreEqual (SqlDbType.Int, p1.SqlDbType, "#5 The parameter with value 42 must have SqlDbType as Int");
832 p1.SqlDbType = SqlDbType.DateTime; //assigning a SqlDbType
833 Assert.AreEqual (DbType.DateTime, p1.DbType, "#6");
834 Assert.AreEqual (SqlDbType.DateTime, p1.SqlDbType, "#7");
835 p1.ResetSqlDbType (); //Resetting SqlDbType
836 Assert.AreEqual (DbType.Int32, p1.DbType, "#8 Resetting SqlDbType must infer the type from the value");
837 Assert.AreEqual (SqlDbType.Int, p1.SqlDbType, "#9 Resetting SqlDbType must infer the type from the value");
839 //Parameter with an assigned SqlDbType but no specified value
840 SqlParameter p2 = new SqlParameter ("foo", SqlDbType.Int);
841 Assert.AreEqual (null, p2.Value, "#10");
842 Assert.AreEqual (DbType.Int32, p2.DbType, "#11");
843 Assert.AreEqual (SqlDbType.Int, p2.SqlDbType, "#12");
845 //Although a SqlDbType is specified, calling ResetSqlDbType resets
846 //the SqlDbType and DbType properties to default values
847 p2.ResetSqlDbType ();
848 Assert.AreEqual (DbType.String, p2.DbType, "#13 Resetting SqlDbType must infer the type from the value");
849 Assert.AreEqual (SqlDbType.NVarChar, p2.SqlDbType, "#14 Resetting SqlDbType must infer the type from the value");
851 p2.SqlDbType = SqlDbType.DateTime; //assigning a SqlDbType
852 Assert.AreEqual (DbType.DateTime, p2.DbType, "#15");
853 Assert.AreEqual (SqlDbType.DateTime, p2.SqlDbType, "#16");
854 p2.ResetSqlDbType (); //Resetting SqlDbType
855 Assert.AreEqual (DbType.String, p2.DbType, "#17 Resetting SqlDbType must infer the type from the value");
856 Assert.AreEqual (SqlDbType.NVarChar, p2.SqlDbType, "#18 Resetting SqlDbType must infer the type from the value");
860 #if FEATURE_NO_BSD_SOCKETS
861 [ExpectedException (typeof (PlatformNotSupportedException))]
863 public void SourceColumn ()
865 SqlParameter p = new SqlParameter ();
866 p.SourceColumn = "name";
867 Assert.AreEqual (string.Empty, p.ParameterName, "#A:ParameterName");
868 Assert.AreEqual ("name", p.SourceColumn, "#A:SourceColumn");
870 p.SourceColumn = null;
871 Assert.AreEqual (string.Empty, p.ParameterName, "#B:ParameterName");
872 Assert.AreEqual (string.Empty, p.SourceColumn, "#B:SourceColumn");
874 p.SourceColumn = " ";
875 Assert.AreEqual (string.Empty, p.ParameterName, "#C:ParameterName");
876 Assert.AreEqual (" ", p.SourceColumn, "#C:SourceColumn");
878 p.SourceColumn = " name ";
879 Assert.AreEqual (string.Empty, p.ParameterName, "#D:ParameterName");
880 Assert.AreEqual (" name ", p.SourceColumn, "#D:SourceColumn");
882 p.SourceColumn = string.Empty;
883 Assert.AreEqual (string.Empty, p.ParameterName, "#E:ParameterName");
884 Assert.AreEqual (string.Empty, p.SourceColumn, "#E:SourceColumn");
888 #if FEATURE_NO_BSD_SOCKETS
889 [ExpectedException (typeof (PlatformNotSupportedException))]
891 public void SourceColumnNullMapping ()
893 SqlParameter p = new SqlParameter ();
894 Assert.IsFalse (p.SourceColumnNullMapping, "#1");
895 p.SourceColumnNullMapping = true;
896 Assert.IsTrue (p.SourceColumnNullMapping, "#2");
897 p.SourceColumnNullMapping = false;
898 Assert.IsFalse (p.SourceColumnNullMapping, "#3");
902 #if FEATURE_NO_BSD_SOCKETS
903 [ExpectedException (typeof (PlatformNotSupportedException))]
905 public void SqlDbTypeTest ()
907 SqlParameter p = new SqlParameter ("zipcode", 3510);
908 p.SqlDbType = SqlDbType.DateTime;
909 Assert.AreEqual (DbType.DateTime, p.DbType, "#A:DbType");
910 Assert.AreEqual (SqlDbType.DateTime, p.SqlDbType, "#A:SqlDbType");
911 Assert.AreEqual (3510, p.Value, "#A:Value");
912 p.SqlDbType = SqlDbType.VarChar;
913 Assert.AreEqual (DbType.AnsiString, p.DbType, "#B:DbType");
914 Assert.AreEqual (SqlDbType.VarChar, p.SqlDbType, "#B:SqlDbType");
915 Assert.AreEqual (3510, p.Value, "#B:Value");
919 #if FEATURE_NO_BSD_SOCKETS
920 [ExpectedException (typeof (PlatformNotSupportedException))]
922 public void SqlDbTypeTest_Value_Invalid ()
924 SqlParameter p = new SqlParameter ("zipcode", 3510);
926 p.SqlDbType = (SqlDbType) 666;
928 } catch (ArgumentOutOfRangeException ex) {
929 // The SqlDbType enumeration value, 666, is
931 Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#2");
932 Assert.IsNull (ex.InnerException, "#3");
933 Assert.IsNotNull (ex.Message, "#4");
934 Assert.IsTrue (ex.Message.IndexOf ("666") != -1, "#5:" + ex.Message);
935 Assert.AreEqual ("SqlDbType", ex.ParamName, "#6");
940 #if FEATURE_NO_BSD_SOCKETS
941 [ExpectedException (typeof (PlatformNotSupportedException))]
943 public void SqlValue ()
945 SqlParameter parameter = new SqlParameter ();
946 Assert.IsNull (parameter.SqlValue, "#A1");
951 parameter.SqlValue = value;
952 Assert.AreEqual (SqlDbType.NVarChar, parameter.SqlDbType, "String:SqlDbType");
953 Assert.IsNotNull (parameter.SqlValue, "String:SqlValue1");
954 Assert.AreEqual (typeof (SqlString), parameter.SqlValue.GetType (), "String:SqlValue2");
955 Assert.AreEqual (value, ((SqlString) parameter.SqlValue).Value, "String:SqlValue3");
956 Assert.AreEqual (value, parameter.Value, "String:Value");
959 parameter.SqlValue = value;
960 Assert.AreEqual (SqlDbType.Bit, parameter.SqlDbType, "Boolean:SqlDbType");
961 Assert.IsNotNull (parameter.SqlValue, "Boolean:SqlValue1");
962 Assert.AreEqual (typeof (SqlBoolean), parameter.SqlValue.GetType (), "Boolean:SqlValue2");
963 Assert.AreEqual (value, ((SqlBoolean) parameter.SqlValue).Value, "Boolean:SqlValue3");
964 Assert.AreEqual (value, parameter.Value, "Boolean:Value");
967 parameter.SqlValue = value;
968 Assert.AreEqual (SqlDbType.TinyInt, parameter.SqlDbType, "Boolean:SqlDbType");
969 Assert.IsNotNull (parameter.SqlValue, "Boolean:SqlValue1");
970 Assert.AreEqual (typeof (SqlByte), parameter.SqlValue.GetType (), "Boolean:SqlValue2");
971 Assert.AreEqual (value, ((SqlByte) parameter.SqlValue).Value, "Boolean:SqlValue3");
972 Assert.AreEqual (value, parameter.Value, "Boolean:Value");
974 value = new DateTime (2008, 6, 4);
975 parameter.SqlValue = value;
976 Assert.AreEqual (SqlDbType.DateTime, parameter.SqlDbType, "DateTime:SqlDbType");
977 Assert.IsNotNull (parameter.SqlValue, "DateTime:SqlValue1");
978 Assert.AreEqual (typeof (SqlDateTime), parameter.SqlValue.GetType (), "DateTime:SqlValue2");
979 Assert.AreEqual (value, ((SqlDateTime) parameter.SqlValue).Value, "DateTime:SqlValue3");
980 Assert.AreEqual (value, parameter.Value, "DateTime:Value");
982 value = Guid.NewGuid ();
983 parameter.SqlValue = value;
984 Assert.AreEqual (SqlDbType.UniqueIdentifier, parameter.SqlDbType, "Guid:SqlDbType");
985 Assert.IsNotNull (parameter.SqlValue, "Guid:SqlValue1");
986 Assert.AreEqual (typeof (SqlGuid), parameter.SqlValue.GetType (), "Guid:SqlValue2");
987 Assert.AreEqual (value, ((SqlGuid) parameter.SqlValue).Value, "Guid:SqlValue3");
988 Assert.AreEqual (value, parameter.Value, "Guid:Value");
991 parameter.SqlValue = value;
992 Assert.AreEqual (SqlDbType.SmallInt, parameter.SqlDbType, "Int16:SqlDbType");
993 Assert.IsNotNull (parameter.SqlValue, "Int16:SqlValue1");
994 Assert.AreEqual (typeof (SqlInt16), parameter.SqlValue.GetType (), "Int16:SqlValue2");
995 Assert.AreEqual (value, ((SqlInt16) parameter.SqlValue).Value, "Int16:SqlValue3");
996 Assert.AreEqual (value, parameter.Value, "Int16:Value");
999 parameter.SqlValue = value;
1000 Assert.AreEqual (SqlDbType.Int, parameter.SqlDbType, "Int32:SqlDbType");
1001 Assert.IsNotNull (parameter.SqlValue, "Int32:SqlValue1");
1002 Assert.AreEqual (typeof (SqlInt32), parameter.SqlValue.GetType (), "Int32:SqlValue2");
1003 Assert.AreEqual (value, ((SqlInt32) parameter.SqlValue).Value, "Int32:SqlValue3");
1004 Assert.AreEqual (value, parameter.Value, "Int32:Value");
1007 parameter.SqlValue = value;
1008 Assert.AreEqual (SqlDbType.BigInt, parameter.SqlDbType, "Int64:SqlDbType");
1009 Assert.IsNotNull (parameter.SqlValue, "Int64:SqlValue1");
1010 Assert.AreEqual (typeof (SqlInt64), parameter.SqlValue.GetType (), "Int64:SqlValue2");
1011 Assert.AreEqual (value, ((SqlInt64) parameter.SqlValue).Value, "Int64:SqlValue3");
1012 Assert.AreEqual (value, parameter.Value, "Int64:Value");
1014 parameter.SqlValue = 45.5D;
1015 Assert.AreEqual (SqlDbType.Float, parameter.SqlDbType, "Double:SqlDbType");
1016 Assert.IsNotNull (parameter.SqlValue, "Double:SqlValue1");
1017 Assert.AreEqual (typeof (SqlDouble), parameter.SqlValue.GetType (), "Double:SqlValue2");
1018 Assert.AreEqual (45.5D, ((SqlDouble) parameter.SqlValue).Value, "Double:SqlValue3");
1019 Assert.AreEqual (45.5D, parameter.Value, "Double:Value");
1022 parameter.SqlValue = value;
1023 Assert.AreEqual (SqlDbType.Decimal, parameter.SqlDbType, "Decimal:SqlDbType");
1024 Assert.IsNotNull (parameter.SqlValue, "Decimal:SqlValue1");
1025 Assert.AreEqual (typeof (SqlDecimal), parameter.SqlValue.GetType (), "Decimal:SqlValue2");
1026 Assert.AreEqual (value, ((SqlDecimal) parameter.SqlValue).Value, "Decimal:SqlValue3");
1027 Assert.AreEqual (value, parameter.Value, "Decimal:Value");
1030 parameter.SqlValue = value;
1031 Assert.AreEqual (SqlDbType.Real, parameter.SqlDbType, "Decimal:SqlDbType");
1032 Assert.IsNotNull (parameter.SqlValue, "Decimal:SqlValue1");
1033 Assert.AreEqual (typeof (SqlSingle), parameter.SqlValue.GetType (), "Decimal:SqlValue2");
1034 Assert.AreEqual (value, ((SqlSingle) parameter.SqlValue).Value, "Decimal:SqlValue3");
1035 Assert.AreEqual (value, parameter.Value, "Decimal:Value");
1037 value = new byte [] { 0x0d, 0x0a };
1038 parameter.SqlValue = value;
1039 Assert.AreEqual (SqlDbType.VarBinary, parameter.SqlDbType, "Bytes:SqlDbType");
1040 Assert.IsNotNull (parameter.SqlValue, "Bytes:SqlValue1");
1041 Assert.AreEqual (typeof (SqlBinary), parameter.SqlValue.GetType (), "Bytes:SqlValue2");
1042 Assert.AreEqual (value, ((SqlBinary) parameter.SqlValue).Value, "Bytes:SqlValue3");
1043 Assert.AreEqual (value, parameter.Value, "Bytes:Value");
1045 parameter = new SqlParameter ();
1047 parameter.SqlValue = value;
1048 Assert.AreEqual (SqlDbType.NVarChar, parameter.SqlDbType, "Chars:SqlDbType");
1049 Assert.IsNotNull (parameter.SqlValue, "Chars:SqlValue1");
1050 Assert.AreEqual (typeof (SqlString), parameter.SqlValue.GetType (), "Chars:SqlValue2");
1051 Assert.AreEqual ("X", ((SqlString) parameter.SqlValue).Value, "Chars:SqlValue3");
1052 // FIXME bug #525321
1053 //Assert.AreEqual ("X", parameter.Value, "Chars:Value");
1055 value = new char [] { 'X', 'A' };
1056 parameter.SqlValue = value;
1057 Assert.AreEqual (SqlDbType.NVarChar, parameter.SqlDbType, "Chars:SqlDbType");
1058 Assert.IsNotNull (parameter.SqlValue, "Chars:SqlValue1");
1059 Assert.AreEqual (typeof (SqlString), parameter.SqlValue.GetType (), "Chars:SqlValue2");
1060 Assert.AreEqual ("XA", ((SqlString) parameter.SqlValue).Value, "Chars:SqlValue3");
1061 // FIXME bug #525321
1062 //Assert.AreEqual ("XA", parameter.Value, "Chars:Value");
1066 #if FEATURE_NO_BSD_SOCKETS
1067 [ExpectedException (typeof (PlatformNotSupportedException))]
1069 public void SqlTypes_SqlBinary ()
1071 SqlParameter parameter;
1072 SqlBinary value = new SqlBinary (new byte [] { 0x0d, 0x0a });
1074 parameter = new SqlParameter ();
1075 parameter.SqlValue = value;
1076 Assert.AreEqual (SqlDbType.VarBinary, parameter.SqlDbType, "#A:SqlDbType");
1077 Assert.AreEqual (value, parameter.SqlValue, "#A:SqlValue");
1078 Assert.AreEqual (value, parameter.Value, "#A:Value");
1080 parameter = new SqlParameter ();
1081 parameter.SqlValue = SqlBinary.Null;
1082 Assert.AreEqual (SqlDbType.VarBinary, parameter.SqlDbType, "#B:SqlDbType");
1083 Assert.AreEqual (SqlBinary.Null, parameter.SqlValue, "#B:SqlValue");
1084 Assert.AreEqual (SqlBinary.Null, parameter.Value, "#B:Value");
1086 parameter = new SqlParameter ();
1087 parameter.Value = value;
1088 Assert.AreEqual (SqlDbType.VarBinary, parameter.SqlDbType, "#C:SqlDbType");
1089 Assert.AreEqual (value, parameter.SqlValue, "#C:SqlValue");
1090 Assert.AreEqual (value, parameter.Value, "#C:Value");
1094 #if FEATURE_NO_BSD_SOCKETS
1095 [ExpectedException (typeof (PlatformNotSupportedException))]
1097 public void SqlTypes_SqlBoolean ()
1099 SqlParameter parameter;
1100 SqlBoolean value = new SqlBoolean (false);
1102 parameter = new SqlParameter ();
1103 parameter.SqlValue = value;
1104 Assert.AreEqual (SqlDbType.Bit, parameter.SqlDbType, "#A:SqlDbType");
1105 Assert.AreEqual (value, parameter.SqlValue, "#A:SqlValue");
1106 Assert.AreEqual (value, parameter.Value, "#A:Value");
1108 parameter = new SqlParameter ();
1109 parameter.SqlValue = SqlBoolean.Null;
1110 Assert.AreEqual (SqlDbType.Bit, parameter.SqlDbType, "#B:SqlDbType");
1111 Assert.AreEqual (SqlBoolean.Null, parameter.SqlValue, "#B:SqlValue");
1112 Assert.AreEqual (SqlBoolean.Null, parameter.Value, "#B:Value");
1114 parameter = new SqlParameter ();
1115 parameter.Value = value;
1116 Assert.AreEqual (SqlDbType.Bit, parameter.SqlDbType, "#C:SqlDbType");
1117 Assert.AreEqual (value, parameter.SqlValue, "#C:SqlValue");
1118 Assert.AreEqual (value, parameter.Value, "#C:Value");
1122 #if FEATURE_NO_BSD_SOCKETS
1123 [ExpectedException (typeof (PlatformNotSupportedException))]
1125 public void SqlTypes_SqlByte ()
1127 SqlParameter parameter;
1128 SqlByte value = new SqlByte (0x0d);
1130 parameter = new SqlParameter ();
1131 parameter.SqlValue = value;
1132 Assert.AreEqual (SqlDbType.TinyInt, parameter.SqlDbType, "#A:SqlDbType");
1133 Assert.AreEqual (value, parameter.SqlValue, "#A:SqlValue");
1134 Assert.AreEqual (value, parameter.Value, "#A:Value");
1136 parameter = new SqlParameter ();
1137 parameter.SqlValue = SqlByte.Null;
1138 Assert.AreEqual (SqlDbType.TinyInt, parameter.SqlDbType, "#B:SqlDbType");
1139 Assert.AreEqual (SqlByte.Null, parameter.SqlValue, "#B:SqlValue");
1140 Assert.AreEqual (SqlByte.Null, parameter.Value, "#B:Value");
1142 parameter = new SqlParameter ();
1143 parameter.Value = value;
1144 Assert.AreEqual (SqlDbType.TinyInt, parameter.SqlDbType, "#C:SqlDbType");
1145 Assert.AreEqual (value, parameter.SqlValue, "#C:SqlValue");
1146 Assert.AreEqual (value, parameter.Value, "#C:Value");
1150 [Category ("NotWorking")]
1151 // This doesn't work as SqlBytes are represented as SqlBinary
1152 public void SqlTypes_SqlBytes ()
1154 SqlParameter parameter;
1155 SqlBytes value = new SqlBytes (new byte [] { 0x0d, 0x0a });
1157 parameter = new SqlParameter ();
1158 parameter.SqlValue = value;
1159 Assert.AreEqual (SqlDbType.VarBinary, parameter.SqlDbType, "#A:SqlDbType");
1160 Assert.AreSame (value, parameter.SqlValue, "#A:SqlValue");
1161 Assert.AreSame (value, parameter.Value, "#A:Value");
1163 parameter = new SqlParameter ();
1164 parameter.SqlValue = SqlBytes.Null;
1165 Assert.AreEqual (SqlDbType.VarBinary, parameter.SqlDbType, "#B:SqlDbType");
1166 Assert.IsNotNull (parameter.SqlValue, "#B:SqlValue1");
1167 Assert.AreEqual (typeof (SqlBytes), parameter.SqlValue.GetType (), "#B:SqlValue2");
1168 Assert.IsTrue (((SqlBytes) parameter.SqlValue).IsNull, "#B:SqlValue3");
1169 Assert.IsNotNull (parameter.Value, "#B:Value1");
1170 Assert.AreEqual (typeof (SqlBytes), parameter.Value.GetType (), "#B:Value2");
1171 Assert.IsTrue (((SqlBytes) parameter.Value).IsNull, "#B:Value3");
1173 parameter = new SqlParameter ();
1174 parameter.Value = value;
1175 Assert.AreEqual (SqlDbType.VarBinary, parameter.SqlDbType, "#C:SqlDbType");
1176 Assert.AreEqual (value, parameter.SqlValue, "#C:SqlValue");
1177 Assert.AreEqual (value, parameter.Value, "#C:Value");
1181 [Category ("NotWorking")]
1182 // This doesn't work as SqlChars are represented as SqlString
1183 public void SqlTypes_SqlChars ()
1185 SqlParameter parameter;
1186 SqlChars value = new SqlChars (new char [] { 'X', 'A' });
1188 parameter = new SqlParameter ();
1189 parameter.SqlValue = value;
1190 Assert.AreEqual (SqlDbType.NVarChar, parameter.SqlDbType, "#A:SqlDbType");
1191 Assert.AreSame (value, parameter.SqlValue, "#A:SqlValue");
1192 Assert.AreSame (value, parameter.Value, "#A:Value");
1194 parameter = new SqlParameter ();
1195 parameter.SqlValue = SqlChars.Null;
1196 Assert.AreEqual (SqlDbType.NVarChar, parameter.SqlDbType, "#B:SqlDbType");
1197 Assert.IsNotNull (parameter.SqlValue, "#B:SqlValue1");
1198 Assert.AreEqual (typeof (SqlChars), parameter.SqlValue.GetType (), "#B:SqlValue2");
1199 Assert.IsTrue (((SqlChars) parameter.SqlValue).IsNull, "#B:SqlValue3");
1200 Assert.IsNotNull (parameter.Value, "#B:Value1");
1201 Assert.AreEqual (typeof (SqlChars), parameter.Value.GetType (), "#B:Value2");
1202 Assert.IsTrue (((SqlChars) parameter.Value).IsNull, "#B:Value3");
1204 parameter = new SqlParameter ();
1205 parameter.Value = value;
1206 Assert.AreEqual (SqlDbType.NVarChar, parameter.SqlDbType, "#C:SqlDbType");
1207 Assert.AreSame (value, parameter.SqlValue, "#C:SqlValue");
1208 Assert.AreSame (value, parameter.Value, "#C:Value");
1212 #if FEATURE_NO_BSD_SOCKETS
1213 [ExpectedException (typeof (PlatformNotSupportedException))]
1215 public void SqlTypes_SqlDateTime ()
1217 SqlParameter parameter;
1218 SqlDateTime value = new SqlDateTime (DateTime.Now);
1220 parameter = new SqlParameter ();
1221 parameter.SqlValue = value;
1222 Assert.AreEqual (SqlDbType.DateTime, parameter.SqlDbType, "#A:SqlDbType");
1223 Assert.AreEqual (value, parameter.SqlValue, "#A:SqlValue");
1224 Assert.AreEqual (value, parameter.Value, "#A:Value");
1226 parameter = new SqlParameter ();
1227 parameter.SqlValue = SqlDateTime.Null;
1228 Assert.AreEqual (SqlDbType.DateTime, parameter.SqlDbType, "#B:SqlDbType");
1229 Assert.AreEqual (SqlDateTime.Null, parameter.SqlValue, "#B:SqlValue");
1230 Assert.AreEqual (SqlDateTime.Null, parameter.Value, "#B:Value");
1232 parameter = new SqlParameter ();
1233 parameter.Value = value;
1234 Assert.AreEqual (SqlDbType.DateTime, parameter.SqlDbType, "#C:SqlDbType");
1235 Assert.AreEqual (value, parameter.SqlValue, "#C:SqlValue");
1236 Assert.AreEqual (value, parameter.Value, "#C:Value");
1240 #if FEATURE_NO_BSD_SOCKETS
1241 [ExpectedException (typeof (PlatformNotSupportedException))]
1243 public void SqlTypes_SqlDecimal ()
1245 SqlParameter parameter;
1246 SqlDecimal value = new SqlDecimal (45m);
1248 parameter = new SqlParameter ();
1249 parameter.SqlValue = value;
1250 Assert.AreEqual (SqlDbType.Decimal, parameter.SqlDbType, "#A:SqlDbType");
1251 Assert.AreEqual (value, parameter.SqlValue, "#A:SqlValue");
1252 Assert.AreEqual (value, parameter.Value, "#A:Value");
1254 parameter = new SqlParameter ();
1255 parameter.SqlValue = SqlDecimal.Null;
1256 Assert.AreEqual (SqlDbType.Decimal, parameter.SqlDbType, "#B:SqlDbType");
1257 Assert.AreEqual (SqlDecimal.Null, parameter.SqlValue, "#B:SqlValue");
1258 Assert.AreEqual (SqlDecimal.Null, parameter.Value, "#B:Value");
1260 parameter = new SqlParameter ();
1261 parameter.Value = value;
1262 Assert.AreEqual (SqlDbType.Decimal, parameter.SqlDbType, "#C:SqlDbType");
1263 Assert.AreEqual (value, parameter.SqlValue, "#C:SqlValue");
1264 Assert.AreEqual (value, parameter.Value, "#C:Value");
1268 #if FEATURE_NO_BSD_SOCKETS
1269 [ExpectedException (typeof (PlatformNotSupportedException))]
1271 public void SqlTypes_SqlDouble ()
1273 SqlParameter parameter;
1274 SqlDouble value = new SqlDouble (4.5D);
1276 parameter = new SqlParameter ();
1277 parameter.SqlValue = value;
1278 Assert.AreEqual (SqlDbType.Float, parameter.SqlDbType, "#A:SqlDbType");
1279 Assert.AreEqual (value, parameter.SqlValue, "#A:SqlValue");
1280 Assert.AreEqual (value, parameter.Value, "#A:Value");
1282 parameter = new SqlParameter ();
1283 parameter.SqlValue = SqlDouble.Null;
1284 Assert.AreEqual (SqlDbType.Float, parameter.SqlDbType, "#B:SqlDbType");
1285 Assert.AreEqual (SqlDouble.Null, parameter.SqlValue, "#B:SqlValue");
1286 Assert.AreEqual (SqlDouble.Null, parameter.Value, "#B:Value");
1288 parameter = new SqlParameter ();
1289 parameter.Value = value;
1290 Assert.AreEqual (SqlDbType.Float, parameter.SqlDbType, "#C:SqlDbType");
1291 Assert.AreEqual (value, parameter.SqlValue, "#C:SqlValue");
1292 Assert.AreEqual (value, parameter.Value, "#C:Value");
1296 #if FEATURE_NO_BSD_SOCKETS
1297 [ExpectedException (typeof (PlatformNotSupportedException))]
1299 public void SqlTypes_SqlGuid ()
1301 SqlParameter parameter;
1302 SqlGuid value = new SqlGuid (Guid.NewGuid ());
1304 parameter = new SqlParameter ();
1305 parameter.SqlValue = value;
1306 Assert.AreEqual (SqlDbType.UniqueIdentifier, parameter.SqlDbType, "#A:SqlDbType");
1307 Assert.AreEqual (value, parameter.SqlValue, "#A:SqlValue");
1308 Assert.AreEqual (value, parameter.Value, "#A:Value");
1310 parameter = new SqlParameter ();
1311 parameter.SqlValue = SqlGuid.Null;
1312 Assert.AreEqual (SqlDbType.UniqueIdentifier, parameter.SqlDbType, "#B:SqlDbType");
1313 Assert.AreEqual (SqlGuid.Null, parameter.SqlValue, "#B:SqlValue");
1314 Assert.AreEqual (SqlGuid.Null, parameter.Value, "#B:Value");
1316 parameter = new SqlParameter ();
1317 parameter.Value = value;
1318 Assert.AreEqual (SqlDbType.UniqueIdentifier, parameter.SqlDbType, "#C:SqlDbType");
1319 Assert.AreEqual (value, parameter.SqlValue, "#C:SqlValue");
1320 Assert.AreEqual (value, parameter.Value, "#C:Value");
1324 #if FEATURE_NO_BSD_SOCKETS
1325 [ExpectedException (typeof (PlatformNotSupportedException))]
1327 public void SqlTypes_SqlInt16 ()
1329 SqlParameter parameter;
1330 SqlInt16 value = new SqlInt16 ((short) 5);
1332 parameter = new SqlParameter ();
1333 parameter.SqlValue = value;
1334 Assert.AreEqual (SqlDbType.SmallInt, parameter.SqlDbType, "#A:SqlDbType");
1335 Assert.AreEqual (value, parameter.SqlValue, "#A:SqlValue");
1336 Assert.AreEqual (value, parameter.Value, "#A:Value");
1338 parameter = new SqlParameter ();
1339 parameter.SqlValue = SqlInt16.Null;
1340 Assert.AreEqual (SqlDbType.SmallInt, parameter.SqlDbType, "#B:SqlDbType");
1341 Assert.AreEqual (SqlInt16.Null, parameter.SqlValue, "#B:SqlValue");
1342 Assert.AreEqual (SqlInt16.Null, parameter.Value, "#B:Value");
1344 parameter = new SqlParameter ();
1345 parameter.Value = value;
1346 Assert.AreEqual (SqlDbType.SmallInt, parameter.SqlDbType, "#C:SqlDbType");
1347 Assert.AreEqual (value, parameter.SqlValue, "#C:SqlValue");
1348 Assert.AreEqual (value, parameter.Value, "#C:Value");
1352 #if FEATURE_NO_BSD_SOCKETS
1353 [ExpectedException (typeof (PlatformNotSupportedException))]
1355 public void SqlTypes_SqlInt32 ()
1357 SqlParameter parameter;
1358 SqlInt32 value = new SqlInt32 (5);
1360 parameter = new SqlParameter ();
1361 parameter.SqlValue = value;
1362 Assert.AreEqual (SqlDbType.Int, parameter.SqlDbType, "#A:SqlDbType");
1363 Assert.AreEqual (value, parameter.SqlValue, "#A:SqlValue");
1364 Assert.AreEqual (value, parameter.Value, "#A:Value");
1366 parameter = new SqlParameter ();
1367 parameter.SqlValue = SqlInt32.Null;
1368 Assert.AreEqual (SqlDbType.Int, parameter.SqlDbType, "#B:SqlDbType");
1369 Assert.AreEqual (SqlInt32.Null, parameter.SqlValue, "#B:SqlValue");
1370 Assert.AreEqual (SqlInt32.Null, parameter.Value, "#B:Value");
1372 parameter = new SqlParameter ();
1373 parameter.Value = value;
1374 Assert.AreEqual (SqlDbType.Int, parameter.SqlDbType, "#C:SqlDbType");
1375 Assert.AreEqual (value, parameter.SqlValue, "#C:SqlValue");
1376 Assert.AreEqual (value, parameter.Value, "#C:Value");
1380 #if FEATURE_NO_BSD_SOCKETS
1381 [ExpectedException (typeof (PlatformNotSupportedException))]
1383 public void SqlTypes_SqlInt64 ()
1385 SqlParameter parameter;
1386 SqlInt64 value = new SqlInt64 (5L);
1388 parameter = new SqlParameter ();
1389 parameter.SqlValue = value;
1390 Assert.AreEqual (SqlDbType.BigInt, parameter.SqlDbType, "#A:SqlDbType");
1391 Assert.AreEqual (value, parameter.SqlValue, "#A:SqlValue");
1392 Assert.AreEqual (value, parameter.Value, "#A:Value");
1394 parameter = new SqlParameter ();
1395 parameter.SqlValue = SqlInt64.Null;
1396 Assert.AreEqual (SqlDbType.BigInt, parameter.SqlDbType, "#B:SqlDbType");
1397 Assert.AreEqual (SqlInt64.Null, parameter.SqlValue, "#B:SqlValue");
1398 Assert.AreEqual (SqlInt64.Null, parameter.Value, "#B:Value");
1400 parameter = new SqlParameter ();
1401 parameter.Value = value;
1402 Assert.AreEqual (SqlDbType.BigInt, parameter.SqlDbType, "#C:SqlDbType");
1403 Assert.AreEqual (value, parameter.SqlValue, "#C:SqlValue");
1404 Assert.AreEqual (value, parameter.Value, "#C:Value");
1408 #if FEATURE_NO_BSD_SOCKETS
1409 [ExpectedException (typeof (PlatformNotSupportedException))]
1411 public void SqlTypes_SqlMoney ()
1413 SqlParameter parameter;
1414 SqlMoney value = new SqlMoney (45m);
1416 parameter = new SqlParameter ();
1417 parameter.SqlValue = value;
1418 Assert.AreEqual (SqlDbType.Money, parameter.SqlDbType, "#A:SqlDbType");
1419 Assert.AreEqual (value, parameter.SqlValue, "#A:SqlValue");
1420 Assert.AreEqual (value, parameter.Value, "#A:Value");
1422 parameter = new SqlParameter ();
1423 parameter.SqlValue = SqlMoney.Null;
1424 Assert.AreEqual (SqlDbType.Money, parameter.SqlDbType, "#B:SqlDbType");
1425 Assert.AreEqual (SqlMoney.Null, parameter.SqlValue, "#B:SqlValue");
1426 Assert.AreEqual (SqlMoney.Null, parameter.Value, "#B:Value");
1428 parameter = new SqlParameter ();
1429 parameter.Value = value;
1430 Assert.AreEqual (SqlDbType.Money, parameter.SqlDbType, "#C:SqlDbType");
1431 Assert.AreEqual (value, parameter.SqlValue, "#C:SqlValue");
1432 Assert.AreEqual (value, parameter.Value, "#C:Value");
1436 #if FEATURE_NO_BSD_SOCKETS
1437 [ExpectedException (typeof (PlatformNotSupportedException))]
1439 public void SqlTypes_SqlSingle ()
1441 SqlParameter parameter;
1442 SqlSingle value = new SqlSingle (45f);
1444 parameter = new SqlParameter ();
1445 parameter.SqlValue = value;
1446 Assert.AreEqual (SqlDbType.Real, parameter.SqlDbType, "#A:SqlDbType");
1447 Assert.AreEqual (value, parameter.SqlValue, "#A:SqlValue");
1448 Assert.AreEqual (value, parameter.Value, "#A:Value");
1450 parameter = new SqlParameter ();
1451 parameter.SqlValue = SqlSingle.Null;
1452 Assert.AreEqual (SqlDbType.Real, parameter.SqlDbType, "#B:SqlDbType");
1453 Assert.AreEqual (SqlSingle.Null, parameter.SqlValue, "#B:SqlValue");
1454 Assert.AreEqual (SqlSingle.Null, parameter.Value, "#B:Value");
1456 parameter = new SqlParameter ();
1457 parameter.Value = value;
1458 Assert.AreEqual (SqlDbType.Real, parameter.SqlDbType, "#C:SqlDbType");
1459 Assert.AreEqual (value, parameter.SqlValue, "#C:SqlValue");
1460 Assert.AreEqual (value, parameter.Value, "#C:Value");
1464 #if FEATURE_NO_BSD_SOCKETS
1465 [ExpectedException (typeof (PlatformNotSupportedException))]
1467 public void SqlTypes_SqlString ()
1469 SqlParameter parameter;
1470 SqlString value = new SqlString ("XA");
1472 parameter = new SqlParameter ();
1473 parameter.SqlValue = value;
1474 Assert.AreEqual (SqlDbType.NVarChar, parameter.SqlDbType, "#A:SqlDbType");
1475 Assert.AreEqual (value, parameter.SqlValue, "#A:SqlValue");
1476 Assert.AreEqual (value, parameter.Value, "#A:Value");
1478 parameter = new SqlParameter ();
1479 parameter.SqlValue = SqlString.Null;
1480 Assert.AreEqual (SqlDbType.NVarChar, parameter.SqlDbType, "#B:SqlDbType");
1481 Assert.AreEqual (SqlString.Null, parameter.SqlValue, "#B:SqlValue");
1482 Assert.AreEqual (SqlString.Null, parameter.Value, "#B:Value");
1484 parameter = new SqlParameter ();
1485 parameter.Value = value;
1486 Assert.AreEqual (SqlDbType.NVarChar, parameter.SqlDbType, "#C:SqlDbType");
1487 Assert.AreEqual (value, parameter.SqlValue, "#C:SqlValue");
1488 Assert.AreEqual (value, parameter.Value, "#C:Value");
1492 #if FEATURE_NO_BSD_SOCKETS
1493 [ExpectedException (typeof (PlatformNotSupportedException))]
1495 public void SqlTypes_SqlXml ()
1497 SqlParameter parameter;
1498 SqlXml value = new SqlXml (new XmlTextReader (new StringReader ("<test>Mono</test>")));
1500 parameter = new SqlParameter ();
1501 parameter.SqlValue = value;
1502 Assert.AreEqual (SqlDbType.Xml, parameter.SqlDbType, "#A:SqlDbType");
1503 Assert.AreSame (value, parameter.SqlValue, "#A:SqlValue");
1504 Assert.AreSame (value, parameter.Value, "#A:Value");
1506 parameter = new SqlParameter ();
1507 parameter.SqlValue = SqlXml.Null;
1508 Assert.AreEqual (SqlDbType.Xml, parameter.SqlDbType, "#B:SqlDbType");
1509 Assert.IsNotNull (parameter.SqlValue, "#B:SqlValue1");
1510 Assert.AreEqual (typeof (SqlXml), parameter.SqlValue.GetType (), "#B:SqlValue2");
1511 Assert.IsTrue (((SqlXml) parameter.SqlValue).IsNull, "#B:SqlValue3");
1512 Assert.IsNotNull (parameter.Value, "#B:Value1");
1513 Assert.AreEqual (typeof (SqlXml), parameter.Value.GetType (), "#B:Value2");
1514 Assert.IsTrue (((SqlXml) parameter.Value).IsNull, "#B:Value3");
1516 parameter = new SqlParameter ();
1517 parameter.Value = value;
1518 Assert.AreEqual (SqlDbType.Xml, parameter.SqlDbType, "#C:SqlDbType");
1519 Assert.AreSame (value, parameter.SqlValue, "#C:SqlValue");
1520 Assert.AreSame (value, parameter.Value, "#C:Value");
1524 #if FEATURE_NO_BSD_SOCKETS
1525 [ExpectedException (typeof (PlatformNotSupportedException))]
1527 public void Value ()
1531 p = new SqlParameter ("name", (Object) null);
1533 Assert.AreEqual (DbType.Int32, p.DbType, "#A:DbType");
1534 Assert.AreEqual (SqlDbType.Int, p.SqlDbType, "#A:SqlDbType");
1535 Assert.AreEqual (42, p.Value, "#A:Value");
1537 p.Value = DBNull.Value;
1538 Assert.AreEqual (DbType.String, p.DbType, "#B:DbType");
1539 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#B:SqlDbType");
1540 Assert.AreEqual (DBNull.Value, p.Value, "#B:Value");
1542 p.Value = DateTime.MaxValue;
1543 Assert.AreEqual (DbType.DateTime, p.DbType, "#C:DbType");
1544 Assert.AreEqual (SqlDbType.DateTime, p.SqlDbType, "#C:SqlDbType");
1545 Assert.AreEqual (DateTime.MaxValue, p.Value, "#C:Value");
1548 Assert.AreEqual (DbType.String, p.DbType, "#D:DbType");
1549 Assert.AreEqual (SqlDbType.NVarChar, p.SqlDbType, "#D:SqlDbType");
1550 Assert.IsNull (p.Value, "#D:Value");
1552 p = new SqlParameter ("zipcode", SqlDbType.Int);
1553 p.Value = DateTime.MaxValue;
1554 Assert.AreEqual (DbType.Int32, p.DbType, "#E:DbType");
1555 Assert.AreEqual (SqlDbType.Int, p.SqlDbType, "#E:SqlDbType");
1556 Assert.AreEqual (DateTime.MaxValue, p.Value, "#E:Value");
1559 Assert.AreEqual (DbType.Int32, p.DbType, "#F:DbType");
1560 Assert.AreEqual (SqlDbType.Int, p.SqlDbType, "#F:SqlDbType");
1561 Assert.IsNull (p.Value, "#F:Value");
1563 p.Value = DBNull.Value;
1564 Assert.AreEqual (DbType.Int32, p.DbType, "#G:DbType");
1565 Assert.AreEqual (SqlDbType.Int, p.SqlDbType, "#G:SqlDbType");
1566 Assert.AreEqual (DBNull.Value, p.Value, "#G:Value");
1570 #if FEATURE_NO_BSD_SOCKETS
1571 [ExpectedException (typeof (PlatformNotSupportedException))]
1573 public void XmlSchemaTest ()
1575 SqlParameter p1 = new SqlParameter ();
1577 //Testing default values
1578 Assert.AreEqual (String.Empty, p1.XmlSchemaCollectionDatabase,
1579 "#1 Default value for XmlSchemaCollectionDatabase is an empty string");
1580 Assert.AreEqual (String.Empty, p1.XmlSchemaCollectionName,
1581 "#2 Default value for XmlSchemaCollectionName is an empty string");
1582 Assert.AreEqual (String.Empty, p1.XmlSchemaCollectionOwningSchema,
1583 "#3 Default value for XmlSchemaCollectionOwningSchema is an empty string");
1585 //Changing one property should not affect the remaining two properties
1586 p1.XmlSchemaCollectionDatabase = "database";
1587 Assert.AreEqual ("database", p1.XmlSchemaCollectionDatabase,
1588 "#4 Default value for XmlSchemaCollectionDatabase is an empty string");
1589 Assert.AreEqual (String.Empty, p1.XmlSchemaCollectionName,
1590 "#5 Default value for XmlSchemaCollectionName is an empty string");
1591 Assert.AreEqual (String.Empty, p1.XmlSchemaCollectionOwningSchema,
1592 "#6 Default value for XmlSchemaCollectionOwningSchema is an empty string");
1594 p1.XmlSchemaCollectionName = "name";
1595 Assert.AreEqual ("database", p1.XmlSchemaCollectionDatabase,
1596 "#7 Default value for XmlSchemaCollectionDatabase is an empty string");
1597 Assert.AreEqual ("name", p1.XmlSchemaCollectionName,
1598 "#8 Default value for XmlSchemaCollectionName is an empty string");
1599 Assert.AreEqual (String.Empty, p1.XmlSchemaCollectionOwningSchema,
1600 "#9 Default value for XmlSchemaCollectionOwningSchema is an empty string");
1602 p1.XmlSchemaCollectionOwningSchema = "schema";
1603 Assert.AreEqual ("database", p1.XmlSchemaCollectionDatabase,
1604 "#10 Default value for XmlSchemaCollectionDatabase is an empty string");
1605 Assert.AreEqual ("name", p1.XmlSchemaCollectionName,
1606 "#11 Default value for XmlSchemaCollectionName is an empty string");
1607 Assert.AreEqual ("schema", p1.XmlSchemaCollectionOwningSchema,
1608 "#12 Default value for XmlSchemaCollectionOwningSchema is an empty string");
1610 //assigning null value stores default empty string
1611 p1.XmlSchemaCollectionDatabase = null;
1612 Assert.AreEqual (String.Empty, p1.XmlSchemaCollectionDatabase,
1613 "#13 Default value for XmlSchemaCollectionDatabase is an empty string");
1614 Assert.AreEqual ("name", p1.XmlSchemaCollectionName,
1615 "#14 Default value for XmlSchemaCollectionName is an empty string");
1616 Assert.AreEqual ("schema", p1.XmlSchemaCollectionOwningSchema,
1617 "#15 Default value for XmlSchemaCollectionOwningSchema is an empty string");
1619 p1.XmlSchemaCollectionName = "";
1620 Assert.AreEqual (String.Empty, p1.XmlSchemaCollectionDatabase,
1621 "#16 Default value for XmlSchemaCollectionDatabase is an empty string");
1622 Assert.AreEqual ("", p1.XmlSchemaCollectionName,
1623 "#17 Default value for XmlSchemaCollectionName is an empty string");
1624 Assert.AreEqual ("schema", p1.XmlSchemaCollectionOwningSchema,
1625 "#18 Default value for XmlSchemaCollectionOwningSchema is an empty string");
1627 //values are not trimmed
1628 p1.XmlSchemaCollectionOwningSchema = " a ";
1629 Assert.AreEqual (String.Empty, p1.XmlSchemaCollectionDatabase,
1630 "#19 Default value for XmlSchemaCollectionDatabase is an empty string");
1631 Assert.AreEqual ("", p1.XmlSchemaCollectionName,
1632 "#20 Default value for XmlSchemaCollectionName is an empty string");
1633 Assert.AreEqual (" a ", p1.XmlSchemaCollectionOwningSchema,
1634 "#21 Default value for XmlSchemaCollectionOwningSchema is an empty string");
1637 private enum ByteEnum : byte
1643 private enum Int64Enum : long