2 // SqlBinaryTest.cs - NUnit Test Cases for System.Data.SqlTypes.SqlBinary
5 // Ville Palo (vi64pa@koti.soon.fi)
6 // Martin Willemoes Hansen (mwh@sysrq.dk)
9 // (C) 2003 Martin Willemoes Hansen
12 using NUnit.Framework;
14 using System.Data.SqlTypes;
16 namespace MonoTests.System.Data.SqlTypes
19 public class SqlBinaryTest : Assertion {
26 public void GetReady()
28 byte [] b1 = new Byte [2];
29 byte [] b2 = new Byte [3];
30 byte [] b3 = new Byte [2];
40 Test1 = new SqlBinary(b1);
41 Test2 = new SqlBinary(b2);
42 Test3 = new SqlBinary(b3);
49 byte [] b = new byte [3];
50 SqlBinary Test = new SqlBinary (b);
51 Assert ("#A01", !(Test.IsNull));
56 public void PublicFields()
58 Assert ("#B01", SqlBinary.Null.IsNull);
63 public void Properties()
65 byte [] b = new byte [2];
69 SqlBinary TestBinary = new SqlBinary (b);
72 Assert ("#C01", SqlBinary.Null.IsNull);
75 AssertEquals ("#C02", (byte)128, TestBinary [1]);
76 AssertEquals ("#C03", (byte)64, TestBinary [0]);
78 // FIXME: MSDN says that should throw SqlNullValueException
79 // but throws IndexOutOfRangeException
81 byte test = TestBinary [TestBinary.Length];
83 } catch (Exception e) {
84 AssertEquals ("#C05", typeof (SqlNullValueException),
89 byte test = SqlBinary.Null [2];
91 } catch (Exception e) {
92 AssertEquals ("#C07", typeof (SqlNullValueException),
97 AssertEquals ("#C08", 2, TestBinary.Length);
100 int test = SqlBinary.Null.Length;
102 } catch (Exception e) {
103 AssertEquals ("#C10", typeof (SqlNullValueException),
108 AssertEquals ("#C11", (byte)128, TestBinary [1]);
109 AssertEquals ("#C12", (byte)64, TestBinary [0]);
112 Byte [] test = SqlBinary.Null.Value;
114 } catch (Exception e) {
115 AssertEquals ("#C14", typeof (SqlNullValueException),
122 public void ComparisonMethods()
125 Assert ("#D01", SqlBinary.GreaterThan (Test1, Test2).Value);
126 Assert ("#D02", SqlBinary.GreaterThan (Test3, Test2).Value);
127 Assert ("#D03", !SqlBinary.GreaterThan (Test2, Test1).Value);
129 // GreaterThanOrEqual
130 Assert ("#D04", SqlBinary.GreaterThanOrEqual (Test1, Test2).Value);
131 Assert ("#D05", SqlBinary.GreaterThanOrEqual (Test1, Test2).Value);
132 Assert ("#D06", !SqlBinary.GreaterThanOrEqual (Test2, Test1).Value);
135 Assert ("#D07", !SqlBinary.LessThan (Test1, Test2).Value);
136 Assert ("#D08", !SqlBinary.LessThan (Test3, Test2).Value);
137 Assert ("#D09", SqlBinary.LessThan (Test2, Test1).Value);
140 Assert ("#D10", !SqlBinary.LessThanOrEqual (Test1, Test2).Value);
141 Assert ("#D11", SqlBinary.LessThanOrEqual (Test3, Test1).Value);
142 Assert ("#D12", SqlBinary.LessThanOrEqual (Test2, Test1).Value);
145 Assert ("#D13", !Test1.Equals (Test2));
146 Assert ("#D14", !Test3.Equals (Test2));
147 Assert ("#D15", Test3.Equals (Test1));
150 Assert ("#D16", SqlBinary.NotEquals (Test1, Test2).Value);
151 Assert ("#D17", !SqlBinary.NotEquals (Test3, Test1).Value);
152 Assert ("#D18", SqlBinary.NotEquals (Test2, Test1).Value);
156 public void CompareTo()
158 SqlString TestString = new SqlString ("This is a test");
160 Assert ("#E01", Test1.CompareTo(Test2) > 0);
161 Assert ("#E02", Test2.CompareTo(Test1) < 0);
162 Assert ("#E03", Test1.CompareTo(Test3) == 0);
165 Test1.CompareTo (TestString);
167 } catch(Exception e) {
168 AssertEquals ("#E05", typeof (ArgumentException), e.GetType ());
173 public void GetHashCodeTest()
175 AssertEquals ("#F01", Test1.GetHashCode (), Test1.GetHashCode ());
176 Assert ("#F02", Test2.GetHashCode () != Test1.GetHashCode ());
180 public void GetTypeTest()
182 AssertEquals("#G01", "System.Data.SqlTypes.SqlBinary",
183 Test1.GetType().ToString());
189 SqlBinary TestBinary;
191 TestBinary = SqlBinary.Concat (Test2, Test3);
192 AssertEquals ("H01", (byte)15, TestBinary [4]);
194 TestBinary = SqlBinary.Concat (Test1, Test2);
195 AssertEquals ("#H02", (byte)240, TestBinary [0]);
196 AssertEquals ("#H03", (byte)15, TestBinary [1]);
200 public void ToSqlGuid()
202 SqlBinary TestBinary = new SqlBinary (new byte [16]);
203 SqlGuid TestGuid = TestBinary.ToSqlGuid ();
204 Assert ("#I01", !TestGuid.IsNull);
208 public void ToStringTest()
210 AssertEquals ("#J01", "SqlBinary(3)", Test2.ToString ());
211 AssertEquals ("#J02", "SqlBinary(2)", Test1.ToString ());
216 public void AdditionOperator()
218 SqlBinary TestBinary = Test1 + Test2;
219 AssertEquals ("#K01", (byte)240, TestBinary [0]);
220 AssertEquals ("#K02", (byte)15, TestBinary [1]);
224 public void ComparisonOperators()
227 Assert ("#L01", !(Test1 == Test2).Value);
228 Assert ("#L02", (Test3 == Test1).Value);
231 Assert ("#L03", (Test1 > Test2).Value);
232 Assert ("#L04", !(Test3 > Test1).Value);
234 // Greater than or equal
235 Assert ("#L05", (Test1 >= Test2).Value);
236 Assert ("#L06", (Test3 >= Test2).Value);
239 Assert ("#L07", (Test1 != Test2).Value);
240 Assert ("#L08", !(Test3 != Test1).Value);
243 Assert ("#L09", !(Test1 < Test2).Value);
244 Assert ("#L10", !(Test3 < Test2).Value);
246 // Less than or equal
247 Assert ("#L11", !(Test1 <= Test2).Value);
248 Assert ("#L12", (Test3 <= Test1).Value);
252 public void SqlBinaryToByteArray()
254 byte [] TestByteArray = (Byte[])Test1;
255 AssertEquals ("#M01", (byte)240, TestByteArray[0]);
259 public void SqlGuidToSqlBinary()
261 byte [] TestByteArray = new Byte [16];
262 TestByteArray [0] = 15;
263 TestByteArray [1] = 200;
264 SqlGuid TestGuid = new SqlGuid (TestByteArray);
266 SqlBinary TestBinary = (SqlBinary)TestGuid;
267 AssertEquals ("#N01", (byte)15, TestBinary [0]);
271 public void ByteArrayToSqlBinary()
273 byte [] TestByteArray = new Byte [2];
274 TestByteArray [0] = 15;
275 TestByteArray [1] = 200;
276 SqlBinary TestBinary = (SqlBinary)TestByteArray;
277 AssertEquals ("#O1", (byte)15, TestBinary [0]);