2 // SqlGuidTest.cs - NUnit Test Cases for System.Data.SqlTypes.SqlGuid
\r
5 // Ville Palo (vi64pa@koti.soon.fi)
\r
6 // Martin Willemoes Hansen (mwh@sysrq.dk)
\r
8 // (C) 2002 Ville Palo
\r
9 // (C) 2003 Martin Willemoes Hansen
\r
13 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
15 // Permission is hereby granted, free of charge, to any person obtaining
16 // a copy of this software and associated documentation files (the
17 // "Software"), to deal in the Software without restriction, including
18 // without limitation the rights to use, copy, modify, merge, publish,
19 // distribute, sublicense, and/or sell copies of the Software, and to
20 // permit persons to whom the Software is furnished to do so, subject to
21 // the following conditions:
23 // The above copyright notice and this permission notice shall be
24 // included in all copies or substantial portions of the Software.
26 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
27 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
29 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
31 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
32 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35 using NUnit.Framework;
\r
37 using System.Data.SqlTypes;
\r
39 namespace MonoTests.System.Data.SqlTypes
\r
42 public class SqlGuidTest : Assertion {
\r
44 // 00000a01-0000-0000-0000-000000000000
\r
45 private SqlGuid Test1;
\r
47 // 00000f64-0000-0000-0000-000000000000
\r
48 private SqlGuid Test2;
\r
49 private SqlGuid Test3;
\r
51 // 0000fafa-0000-0000-0000-000000000000
\r
52 private SqlGuid Test4;
\r
55 public void GetReady()
\r
57 byte [] b1 = new byte [16];
\r
58 byte [] b2 = new byte [16];
\r
59 byte [] b3 = new byte [16];
\r
60 byte [] b4 = new byte [16];
\r
71 Test1 = new SqlGuid (b1);
\r
72 Test2 = new SqlGuid (b2);
\r
73 Test3 = new SqlGuid (b3);
\r
74 Test4 = new SqlGuid (b4);
\r
79 public void Create()
\r
82 byte [] b = new byte [16];
\r
87 SqlGuid Test = new SqlGuid (b);
\r
90 Guid TestGuid = new Guid (b);
\r
91 Test = new SqlGuid (TestGuid);
\r
94 Test = new SqlGuid ("12345678-1234-1234-1234-123456789012");
\r
96 // SqlGuid (int, short, short, byte, byte, byte, byte, byte, byte, byte, byte)
\r
97 Test = new SqlGuid (10, 1, 2, 13, 14, 15, 16, 17, 19, 20 ,21);
\r
99 } catch (Exception e) {
\r
100 Fail ("#A01 " + e);
\r
104 // Test public fields
\r
106 public void PublicFields()
\r
108 Assert ("#B01", SqlGuid.Null.IsNull);
\r
113 public void Properties()
\r
115 Guid ResultGuid = new Guid ("00000f64-0000-0000-0000-000000000000");
\r
116 Assert ("#C01", !Test1.IsNull);
\r
117 Assert ("#C02", SqlGuid.Null.IsNull);
\r
118 AssertEquals ("#C03", ResultGuid, Test2.Value);
\r
123 public void CompareTo()
\r
125 String TestString = "This is a test string";
\r
126 SqlGuid test1 = new SqlGuid("1AAAAAAA-BBBB-CCCC-DDDD-3EEEEEEEEEEE");
\r
127 SqlGuid test2 = new SqlGuid("1AAAAAAA-BBBB-CCCC-DDDD-2EEEEEEEEEEE");
\r
128 SqlGuid test3 = new SqlGuid("1AAAAAAA-BBBB-CCCC-DDDD-1EEEEEEEEEEE");
\r
129 Assert ("#D01", Test1.CompareTo (Test3) < 0);
\r
130 Assert ("#D02", Test4.CompareTo (Test1) > 0);
\r
131 Assert ("#D03", Test3.CompareTo (Test2) == 0);
\r
132 Assert ("#D04", Test4.CompareTo (SqlGuid.Null) > 0);
\r
133 Assert ("#D05", test1.CompareTo (test2) > 0);
\r
134 Assert ("#D06", test3.CompareTo (test2) < 0);
\r
137 Test1.CompareTo (TestString);
\r
139 } catch(Exception e) {
\r
140 AssertEquals ("#D06", typeof (ArgumentException), e.GetType ());
\r
145 public void EqualsMethods()
\r
147 Assert ("#E01", !Test1.Equals (Test2));
\r
148 Assert ("#E02", !Test2.Equals (Test4));
\r
149 Assert ("#E03", !Test2.Equals (new SqlString ("TEST")));
\r
150 Assert ("#E04", Test2.Equals (Test3));
\r
152 // Static Equals()-method
\r
153 Assert ("#E05", SqlGuid.Equals (Test2, Test3).Value);
\r
154 Assert ("#E06", !SqlGuid.Equals (Test1, Test2).Value);
\r
158 public void GetHashCodeTest()
\r
160 AssertEquals ("#F01", Test1.GetHashCode (), Test1.GetHashCode ());
\r
161 Assert ("#F02", Test1.GetHashCode () != Test2.GetHashCode ());
\r
162 AssertEquals ("#F02", Test3.GetHashCode (), Test2.GetHashCode ());
\r
166 public void GetTypeTest()
\r
168 AssertEquals ("#G01", "System.Data.SqlTypes.SqlGuid", Test1.GetType ().ToString ());
\r
169 AssertEquals ("#G02", "System.Guid", Test3.Value.GetType ().ToString ());
\r
173 public void Greaters()
\r
176 Assert ("#H01", !SqlGuid.GreaterThan (Test1, Test2).Value);
\r
177 Assert ("#H02", SqlGuid.GreaterThan (Test2, Test1).Value);
\r
178 Assert ("#H03", !SqlGuid.GreaterThan (Test2, Test3).Value);
\r
179 // GreaterTharOrEqual ()
\r
180 Assert ("#H04", !SqlGuid.GreaterThanOrEqual (Test1, Test2).Value);
\r
181 Assert ("#H05", SqlGuid.GreaterThanOrEqual (Test2, Test1).Value);
\r
182 Assert ("#H06", SqlGuid.GreaterThanOrEqual (Test2, Test3).Value);
\r
186 public void Lessers()
\r
189 Assert ("#I01", !SqlGuid.LessThan (Test2, Test3).Value);
\r
190 Assert ("#I02", !SqlGuid.LessThan (Test2, Test1).Value);
\r
191 Assert ("#I03", SqlGuid.LessThan (Test1, Test2).Value);
\r
193 // LessThanOrEqual ()
\r
194 Assert ("#I04", SqlGuid.LessThanOrEqual (Test1, Test2).Value);
\r
195 Assert ("#I05", !SqlGuid.LessThanOrEqual (Test2, Test1).Value);
\r
196 Assert ("#I06", SqlGuid.LessThanOrEqual (Test2, Test3).Value);
\r
197 Assert ("#I07", SqlGuid.LessThanOrEqual (Test4, SqlGuid.Null).IsNull);
\r
201 public void NotEquals()
\r
203 Assert ("#J01", SqlGuid.NotEquals (Test1, Test2).Value);
\r
204 Assert ("#J02", SqlGuid.NotEquals (Test2, Test1).Value);
\r
205 Assert ("#J03", SqlGuid.NotEquals (Test3, Test1).Value);
\r
206 Assert ("#J04", !SqlGuid.NotEquals (Test3, Test2).Value);
\r
207 Assert ("#J05", SqlGuid.NotEquals (SqlGuid.Null, Test2).IsNull);
\r
211 public void Parse()
\r
214 SqlGuid.Parse (null);
\r
216 } catch (Exception e) {
\r
217 AssertEquals ("#K02", typeof (ArgumentNullException), e.GetType ());
\r
221 SqlGuid.Parse ("not-a-number");
\r
223 } catch (Exception e) {
\r
224 AssertEquals ("#K04", typeof (FormatException), e.GetType ());
\r
228 SqlGuid.Parse ("9e400");
\r
230 } catch (Exception e) {
\r
231 AssertEquals ("#K06", typeof (FormatException), e.GetType ());
\r
234 AssertEquals("#K07", new Guid("87654321-0000-0000-0000-000000000000"),
\r
235 SqlGuid.Parse ("87654321-0000-0000-0000-000000000000").Value);
\r
239 public void Conversions()
\r
242 AssertEquals ("#L01", (byte)1, Test1.ToByteArray () [0]);
\r
243 AssertEquals ("#L02", (byte)15, Test2.ToByteArray () [1]);
\r
246 byte [] b = new byte [2];
\r
250 AssertEquals ("#L03", new SqlBinary (b), Test3.ToSqlBinary ());
\r
253 AssertEquals ("#L04", "00000a01-0000-0000-0000-000000000000",
\r
254 Test1.ToSqlString ().Value);
\r
255 AssertEquals ("#L05", "0000fafa-0000-0000-0000-000000000000",
\r
256 Test4.ToSqlString ().Value);
\r
259 AssertEquals ("#L06", "00000a01-0000-0000-0000-000000000000",
\r
260 Test1.ToString ());
\r
261 AssertEquals ("#L07", "0000fafa-0000-0000-0000-000000000000",
\r
262 Test4.ToString ());
\r
268 public void ThanOrEqualOperators()
\r
271 Assert ("#M01", (Test3 == Test2).Value);
\r
272 Assert ("#M02", !(Test1 == Test2).Value);
\r
273 Assert ("#M03", (Test1 == SqlGuid.Null).IsNull);
\r
276 Assert ("#M04", !(Test2 != Test3).Value);
\r
277 Assert ("#M05", (Test1 != Test3).Value);
\r
278 Assert ("#M06", (Test1 != SqlGuid.Null).IsNull);
\r
281 Assert ("#M07", (Test2 > Test1).Value);
\r
282 Assert ("#M08", !(Test1 > Test3).Value);
\r
283 Assert ("#M09", !(Test3 > Test2).Value);
\r
284 Assert ("#M10", (Test1 > SqlGuid.Null).IsNull);
\r
287 Assert ("#M12", !(Test1 >= Test3).Value);
\r
288 Assert ("#M13", (Test3 >= Test1).Value);
\r
289 Assert ("#M14", (Test3 >= Test2).Value);
\r
290 Assert ("#M15", (Test1 >= SqlGuid.Null).IsNull);
\r
293 Assert ("#M16", !(Test2 < Test1).Value);
\r
294 Assert ("#M17", (Test1 < Test3).Value);
\r
295 Assert ("#M18", !(Test2 < Test3).Value);
\r
296 Assert ("#M19", (Test1 < SqlGuid.Null).IsNull);
\r
299 Assert ("#M20", (Test1 <= Test3).Value);
\r
300 Assert ("#M21", !(Test3 <= Test1).Value);
\r
301 Assert ("#M22", (Test2 <= Test3).Value);
\r
302 Assert ("#M23", (Test1 <= SqlGuid.Null).IsNull);
\r
306 public void SqlBinaryToSqlGuid()
\r
308 byte [] b = new byte [16];
\r
311 SqlBinary TestBinary = new SqlBinary (b);
\r
313 AssertEquals ("#N01", new Guid("0000c864-0000-0000-0000-000000000000"),
\r
314 ((SqlGuid)TestBinary).Value);
\r
318 public void SqlGuidToGuid()
\r
320 AssertEquals ("#O01", new Guid("00000a01-0000-0000-0000-000000000000"),
\r
322 AssertEquals ("#O02", new Guid("00000f64-0000-0000-0000-000000000000"),
\r
327 public void SqlStringToSqlGuid()
\r
329 SqlString TestString = new SqlString ("Test string");
\r
330 SqlString TestString100 = new SqlString ("0000c864-0000-0000-0000-000000000000");
\r
332 AssertEquals ("#P01", new Guid("0000c864-0000-0000-0000-000000000000"),
\r
333 ((SqlGuid)TestString100).Value);
\r
336 SqlGuid test = (SqlGuid)TestString;
\r
338 } catch(Exception e) {
\r
339 AssertEquals ("#P03", typeof (FormatException), e.GetType ());
\r
344 public void GuidToSqlGuid()
\r
346 Guid TestGuid = new Guid("0000c864-0000-0000-0000-000007650000");
\r
347 AssertEquals ("#Q01", new SqlGuid("0000c864-0000-0000-0000-000007650000"),
\r
348 (SqlGuid)TestGuid);
\r