\r
using NUnit.Framework;\r
using System;\r
+using System.Data;\r
using System.Data.SqlTypes;\r
\r
namespace MonoTests.System.Data.SqlTypes\r
{\r
-\r
- public class SqlInt32Test : TestCase {\r
+ public class SqlInt32Test : TestCase \r
+ {\r
\r
public SqlInt32Test() : base ("System.Data.SqlTypes.SqlInt32") {}\r
public SqlInt32Test(string name) : base(name) {}\r
}\r
}\r
\r
- public void TestCreate () {\r
- SqlInt32 foo = new SqlInt32 (0);\r
- AssertEquals( "Test explicit cast to int", (int)foo, 0);\r
+ public void TestCreate () \r
+ {\r
+ SqlInt32 foo = new SqlInt32 (5);\r
+ AssertEquals ("Test explicit cast to int", (int)foo, 5);\r
+ }\r
+\r
+ public void TestAdd () \r
+ {\r
+ int a = 5;\r
+ int b = 7;\r
+ \r
+ SqlInt32 x;\r
+ SqlInt32 y ;\r
+\r
+ x = new SqlInt32 (a);\r
+ y = new SqlInt32 (b);\r
+ z = x + y;\r
+ AssertEquals ("Addition operator does not work correctly", z.Value, a + b);\r
+ z = SqlInt32.Add (x, y);\r
+ AssertEquals ("Addition function does not work correctly", z.Value, a + b);\r
+ }\r
+\r
+ public void TestBitwiseAnd () \r
+ {\r
+ int a = 5;\r
+ int b = 7;\r
+ \r
+ SqlInt32 x = new SqlInt32 (a);\r
+ SqlInt32 y = new SqlInt32 (b);\r
+ SqlInt32 z = x & y;\r
+ AssertEquals ("Bitwise And operator does not work correctly", z.Value, a & b);\r
+ z = SqlInt32.BitwiseAnd (x, y);\r
+ AssertEquals ("Bitwise And function does not work correctly", z.Value, a & b);\r
+ }\r
+\r
+ public void TestBitwiseOr () \r
+ {\r
+ int a = 5;\r
+ int b = 7;\r
+ \r
+ SqlInt32 x = new SqlInt32 (a);\r
+ SqlInt32 y = new SqlInt32 (b);\r
+ SqlInt32 z = x | y;\r
+ AssertEquals ("Bitwise Or operator does not work correctly", z.Value, a | b);\r
+ z = SqlInt32.BitwiseOr (x, y);\r
+ AssertEquals ("Bitwise Or function does not work correctly", z.Value, a | b);\r
+ }\r
+\r
+ public void TestDivide () \r
+ {\r
+ int a = 5;\r
+ int b = 7;\r
+ \r
+ SqlInt32 x = new SqlInt32 (a);\r
+ SqlInt32 y = new SqlInt32 (b);\r
+ SqlInt32 z = x / y;\r
+ AssertEquals ("Division operator does not work correctly", z.Value, a / b);\r
+ z = SqlInt32.Divide (x, y);\r
+ AssertEquals ("Division function does not work correctly", z.Value, a / b);\r
+ }\r
+ \r
+ public void TestEquals ()\r
+ {\r
+ SqlInt32 x;\r
+ SqlInt32 y;\r
+ \r
+ // Case 1: either is SqlInt32.Null\r
+ x = SqlInt32.Null;\r
+ y = new SqlInt32 (5);\r
+ AssertEquals ("Equality operator didn't return Null when one was Null.", x == y, SqlBoolean.Null);\r
+ AssertEquals ("Equality function didn't return Null when one was Null.", SqlInt32.Equals (x, y), SqlBoolean.Null);\r
+\r
+ // Case 2: both are SqlInt32.Null\r
+ y = SqlInt32.Null;\r
+ AssertEquals ("Equality operator didn't return Null when both were Null.", x == y, SqlBoolean.Null);\r
+ AssertEquals ("Equality function didn't return Null when both were Null.", SqlInt32.Equals (x, y), SqlBoolean.Null);\r
+\r
+ // Case 3: both are equal\r
+ x = new SqlInt32 (5);\r
+ y = new SqlInt32 (5);\r
+ AssertEquals ("Equality operator didn't return true when they were equal.", x == y, SqlBoolean.True);\r
+ AssertEquals ("Equality function didn't return true when they were equal.", SqlInt32.Equals (x, y), SqlBoolean.True);\r
+\r
+ // Case 4: inequality\r
+ x = new SqlInt32 (5);\r
+ y = new SqlInt32 (6);\r
+ AssertEquals ("Equality operator didn't return false when they were not equal.", x == y, SqlBoolean.False);\r
+ AssertEquals ("Equality function didn't return false when they were not equal.", SqlInt32.Equals (x, y), SqlBoolean.False);\r
+ }\r
+\r
+ public void TestGreaterThan ()\r
+ {\r
+ SqlInt32 x;\r
+ SqlInt32 y;\r
+ \r
+ // Case 1: either is SqlInt32.Null\r
+ x = SqlInt32.Null;\r
+ y = new SqlInt32 (5);\r
+ AssertEquals ("Greater Than operator didn't return Null when one was Null.", x > y, SqlBoolean.Null);\r
+ AssertEquals ("Greater Than function didn't return Null when one was Null.", SqlInt32.GreaterThan (x, y), SqlBoolean.Null);\r
+\r
+ // Case 2: both are SqlInt32.Null\r
+ y = SqlInt32.Null;\r
+ AssertEquals ("Greater Than operator didn't return Null when both were Null.", x > y, SqlBoolean.Null);\r
+ AssertEquals ("Greater Than function didn't return Null when both were Null.", SqlInt32.GreaterThan (x, y), SqlBoolean.Null);\r
+\r
+ // Case 3: x > y\r
+ x = new SqlInt32 (5);\r
+ y = new SqlInt32 (4);\r
+ AssertEquals ("Greater than operator didn't return true when x > y.", x > y, SqlBoolean.True);\r
+ AssertEquals ("Greater than function didn't return true when x > y.", SqlInt32.GreaterThan (x,y), SqlBoolean.True);\r
+\r
+ // Case 4: x < y\r
+ x = new SqlInt32 (5);\r
+ y = new SqlInt32 (6);\r
+ AssertEquals ("Greater than operator didn't return false when x < y.", x > y, SqlBoolean.False);\r
+ AssertEquals ("Greater than function didn't return false when x < y.", SqlInt32.GreaterThan (x,y), SqlBoolean.False);\r
+ }\r
+\r
+ public void TestGreaterThanOrEqual ()\r
+ {\r
+ SqlInt32 x;\r
+ SqlInt32 y;\r
+ \r
+ // Case 1: either is SqlInt32.Null\r
+ x = SqlInt32.Null;\r
+ y = new SqlInt32 (5);\r
+ AssertEquals ("Greater Than Or Equal operator didn't return Null when one was Null.", x >= y, SqlBoolean.Null);\r
+ AssertEquals ("Greater Than Or Equal function didn't return Null when one was Null.", SqlInt32.GreaterThanOrEqual (x, y), SqlBoolean.Null);\r
+\r
+ // Case 2: both are SqlInt32.Null\r
+ y = SqlInt32.Null;\r
+ AssertEquals ("Greater Than Or Equal operator didn't return Null when both were Null.", x >= y, SqlBoolean.Null);\r
+ AssertEquals ("Greater Than Or Equal function didn't return Null when both were Null.", SqlInt32.GreaterThanOrEqual (x, y), SqlBoolean.Null);\r
+\r
+ // Case 3: x > y\r
+ x = new SqlInt32 (5);\r
+ y = new SqlInt32 (4);\r
+ AssertEquals ("Greater than or equal operator didn't return true when x > y.", x >= y, SqlBoolean.True);\r
+ AssertEquals ("Greater than or equal function didn't return true when x > y.", SqlInt32.GreaterThanOrEqual (x,y), SqlBoolean.True);\r
+\r
+ // Case 4: x < y\r
+ x = new SqlInt32 (5);\r
+ y = new SqlInt32 (6);\r
+ AssertEquals ("Greater than or equal operator didn't return false when x < y.", x >= y, SqlBoolean.False);\r
+ AssertEquals ("Greater than or equal function didn't return false when x < y.", SqlInt32.GreaterThanOrEqual (x,y), SqlBoolean.False);\r
+\r
+ // Case 5: x == y\r
+ x = new SqlInt32 (5);\r
+ y = new SqlInt32 (5);\r
+ AssertEquals ("Greater than or equal operator didn't return true when x == y.", x >= y, SqlBoolean.True);\r
+ AssertEquals ("Greater than or equal function didn't return true when x == y.", SqlInt32.GreaterThanOrEqual (x,y), SqlBoolean.True);\r
+ }\r
+\r
+ public void TestLessThan ()\r
+ {\r
+ SqlInt32 x;\r
+ SqlInt32 y;\r
+ \r
+ // Case 1: either is SqlInt32.Null\r
+ x = SqlInt32.Null;\r
+ y = new SqlInt32 (5);\r
+ AssertEquals ("Less Than operator didn't return Null when one was Null.", x < y, SqlBoolean.Null);\r
+ AssertEquals ("Less Than function didn't return Null when one was Null.", SqlInt32.LessThan (x, y), SqlBoolean.Null);\r
+\r
+ // Case 2: both are SqlInt32.Null\r
+ y = SqlInt32.Null;\r
+ AssertEquals ("Less Than operator didn't return Null when both were Null.", x < y, SqlBoolean.Null);\r
+ AssertEquals ("Less Than function didn't return Null when both were Null.", SqlInt32.LessThan (x, y), SqlBoolean.Null);\r
+\r
+ // Case 3: x > y\r
+ x = new SqlInt32 (5);\r
+ y = new SqlInt32 (4);\r
+ AssertEquals ("Less than operator didn't return false when x > y.", x < y, SqlBoolean.False);\r
+ AssertEquals ("Less than function didn't return false when x > y.", SqlInt32.LessThan (x,y), SqlBoolean.False);\r
+\r
+ // Case 4: x < y\r
+ x = new SqlInt32 (5);\r
+ y = new SqlInt32 (6);\r
+ AssertEquals ("Less than operator didn't return true when x < y.", x < y, SqlBoolean.True);\r
+ AssertEquals ("Less than function didn't return true when x < y.", SqlInt32.LessThan (x,y), SqlBoolean.True);\r
+ }\r
+\r
+ public void TestLessThanOrEqual ()\r
+ {\r
+ SqlInt32 x;\r
+ SqlInt32 y;\r
+ \r
+ // Case 1: either is SqlInt32.Null\r
+ x = SqlInt32.Null;\r
+ y = new SqlInt32 (5);\r
+ AssertEquals ("Less Than Or Equal operator didn't return Null when one was Null.", x <= y, SqlBoolean.Null);\r
+ AssertEquals ("Less Than Or Equal function didn't return Null when one was Null.", SqlInt32.LessThanOrEqual (x, y), SqlBoolean.Null);\r
+\r
+ // Case 2: both are SqlInt32.Null\r
+ y = SqlInt32.Null;\r
+ AssertEquals ("Less Than Or Equal operator didn't return Null when both were Null.", x <= y, SqlBoolean.Null);\r
+ AssertEquals ("Less Than Or Equal function didn't return Null when both were Null.", SqlInt32.LessThanOrEqual (x, y), SqlBoolean.Null);\r
+\r
+ // Case 3: x > y\r
+ x = new SqlInt32 (5);\r
+ y = new SqlInt32 (4);\r
+ AssertEquals ("Less than or equal operator didn't return false when x > y.", x <= y, SqlBoolean.False);\r
+ AssertEquals ("Less than or equal function didn't return false when x > y.", SqlInt32.LessThanOrEqual (x,y), SqlBoolean.False);\r
+\r
+ // Case 4: x < y\r
+ x = new SqlInt32 (5);\r
+ y = new SqlInt32 (6);\r
+ AssertEquals ("Less than or equal operator didn't return true when x < y.", x <= y, SqlBoolean.True);\r
+ AssertEquals ("Less than or equal function didn't return true when x < y.", SqlInt32.LessThanOrEqual (x,y), SqlBoolean.True);\r
+\r
+ // Case 5: x == y\r
+ x = new SqlInt32 (5);\r
+ y = new SqlInt32 (5);\r
+ AssertEquals ("Less than or equal operator didn't return true when x == y.", x <= y, SqlBoolean.True);\r
+ AssertEquals ("Less than or equal function didn't return true when x == y.", SqlInt32.LessThanOrEqual (x,y), SqlBoolean.True);\r
+ }\r
+\r
+ public void TestMod () \r
+ {\r
+ int a = 5;\r
+ int b = 7;\r
+ \r
+ SqlInt32 x = new SqlInt32 (a);\r
+ SqlInt32 y = new SqlInt32 (b);\r
+ SqlInt32 z = x % y;\r
+ AssertEquals ("Modulus operator does not work correctly", z.Value, a % b);\r
+ z = SqlInt32.Mod (x, y);\r
+ AssertEquals ("Modulus function does not work correctly", z.Value, a % b);\r
+ }\r
+\r
+ public void TestMultiply () \r
+ {\r
+ int a = 5;\r
+ int b = 7;\r
+ \r
+ SqlInt32 x = new SqlInt32 (a);\r
+ SqlInt32 y = new SqlInt32 (b);\r
+ SqlInt32 z = x * y;\r
+ AssertEquals ("Multiplication operator does not work correctly", z.Value, a * b);\r
+ z = SqlInt32.Multiply (x, y);\r
+ AssertEquals ("Multiplication function does not work correctly", z.Value, a * b);\r
+ }\r
+\r
+ public void TestNotEquals () \r
+ {\r
+ SqlInt32 x;\r
+ SqlInt32 y;\r
+\r
+ x = new SqlInt32 (5);\r
+ y = SqlInt32.Null;\r
+\r
+ AssertEquals ("Not Equals operator does not return null when one or both of the parameters is Null.", x != y, SqlBoolean.Null);\r
+ AssertEquals ("Not Equals function does not return null when one or both of the parameters is Null.", SqlInt32.NotEquals (x, y), SqlBoolean.Null);\r
+\r
+ y = new SqlInt32 (5);\r
+ AssertEquals ("Not Equals operator does not return false when x == y.", x != y, SqlBoolean.False);\r
+ AssertEquals ("Not Equals function does not return false when x == y.", SqlInt32.NotEquals (x, y), SqlBoolean.False);\r
+\r
+ y = new SqlInt32 (6);\r
+ AssertEquals ("Not Equals operator does not return true when x != y.", x != y, SqlBoolean.True);\r
+ AssertEquals ("Not Equals function does not return true when x != y.", SqlInt32.NotEquals (x, y), SqlBoolean.True);\r
+ }\r
+ \r
+ public void TestOnesComplement () \r
+ {\r
+ int a = 5;\r
+ \r
+ SqlInt32 x = new SqlInt32 (a);\r
+ SqlInt32 z = ~x;\r
+ AssertEquals ("Ones Complement operator does not work correctly", z.Value, ~a);\r
+ z = SqlInt32.OnesComplement (x);\r
+ AssertEquals ("Ones Complement function does not work correctly", z.Value, ~a);\r
+ }\r
+ \r
+ public void TestIsNullProperty ()\r
+ {\r
+ SqlInt32 n = SqlInt32.Null;\r
+ Assert ("Null is not defined correctly", n.IsNull);\r
+ }\r
+ \r
+ public void TestSubtract () \r
+ {\r
+ int a = 7;\r
+ int b = 5;\r
+ \r
+ SqlInt32 x = new SqlInt32 (a);\r
+ SqlInt32 y = new SqlInt32 (b);\r
+ SqlInt32 z = x - y;\r
+ AssertEquals ("Subtraction operator does not work correctly", z.Value, a - b);\r
+ z = SqlInt32.Subtract (x, y);\r
+ AssertEquals ("Subtraction function does not work correctly", z.Value, a - b);\r
+ }\r
+\r
+ public void TestConversionMethods ()\r
+ {\r
+ SqlInt32 x;\r
+\r
+ // Case 1: SqlInt32.Null -> SqlBoolean == SqlBoolean.Null\r
+ x = SqlInt32.Null;\r
+ AssertEquals ("SqlInt32.Null -> SqlBoolean does not yield SqlBoolean.Null.", x.ToSqlBoolean (), SqlBoolean.Null );\r
+\r
+ // Case 2: SqlInt32.Zero -> SqlBoolean == False\r
+ x = SqlInt32.Zero;\r
+ AssertEquals ("SqlInt32.Zero -> SqlBoolean does not yield SqlBoolean.False.", x.ToSqlBoolean (), SqlBoolean.False );\r
+ \r
+ // Case 3: SqlInt32(nonzero) -> SqlBoolean == True\r
+ x = new SqlInt32 (27);\r
+ AssertEquals ("SqlInt32 (27) -> SqlBoolean does not yield SqlBoolean.True.", x.ToSqlBoolean (), SqlBoolean.True );\r
+ \r
+ // Case 4: SqlInt32.Null -> SqlByte == SqlByte.Null\r
+ x = SqlInt32.Null;\r
+ AssertEquals ("SqlInt32.Null -> SqlByte does not yield SqlByte.Null.", x.ToSqlByte (), SqlByte.Null );\r
+\r
+ // Case 5: Test non-null conversion to SqlByte\r
+ x = new SqlInt32 (27);\r
+ AssertEquals ("SqlInt32 (27) -> SqlByte does not yield a value of 27", x.ToSqlByte ().Value, (byte)27);\r
+\r
+ // Case 6: SqlInt32.Null -> SqlDecimal == SqlDecimal.Null\r
+ x = SqlInt32.Null;\r
+ AssertEquals ("SqlInt32.Null -> SqlDecimal does not yield SqlDecimal.Null.", x.ToSqlDecimal (), SqlDecimal.Null );\r
+\r
+ // Case 7: Test non-null conversion to SqlDecimal\r
+ x = new SqlInt32 (27);\r
+ AssertEquals ("SqlInt32 (27) -> SqlDecimal does not yield a value of 27", x.ToSqlDecimal ().Value, (decimal)27);\r
+\r
+ // Case 8: SqlInt32.Null -> SqlDouble == SqlDouble.Null\r
+ x = SqlInt32.Null;\r
+ AssertEquals ("SqlInt32.Null -> SqlDouble does not yield SqlDouble.Null.", x.ToSqlDouble (), SqlDouble.Null );\r
+\r
+ // Case 9: Test non-null conversion to SqlDouble\r
+ x = new SqlInt32 (27);\r
+ AssertEquals ("SqlInt32 (27) -> SqlDouble does not yield a value of 27", x.ToSqlDouble ().Value, (double)27);\r
+\r
+ // Case 10: SqlInt32.Null -> SqlInt16 == SqlInt16.Null\r
+ x = SqlInt32.Null;\r
+ AssertEquals ("SqlInt32.Null -> SqlInt16 does not yield SqlInt16.Null.", x.ToSqlInt16 (), SqlInt16.Null );\r
+\r
+ // Case 11: Test non-null conversion to SqlInt16\r
+ x = new SqlInt32 (27);\r
+ AssertEquals ("SqlInt32 (27) -> SqlInt16 does not yield a value of 27", x.ToSqlInt16 ().Value, (short)27);\r
+\r
+ // Case 12: SqlInt32.Null -> SqlInt64 == SqlInt64.Null\r
+ x = SqlInt32.Null;\r
+ AssertEquals ("SqlInt32.Null -> SqlInt64 does not yield SqlInt64.Null.", x.ToSqlInt64 (), SqlInt64.Null );\r
+\r
+ // Case 13: Test non-null conversion to SqlInt64\r
+ x = new SqlInt32 (27);\r
+ AssertEquals ("SqlInt32 (27) -> SqlInt64 does not yield a value of 27", x.ToSqlInt64 ().Value, (long)27);\r
+\r
+ // Case 14: SqlInt32.Null -> SqlMoney == SqlMoney.Null\r
+ x = SqlInt32.Null;\r
+ AssertEquals ("SqlInt32.Null -> SqlMoney does not yield SqlMoney.Null.", x.ToSqlMoney (), SqlMoney.Null );\r
+\r
+ // Case 15: Test non-null conversion to SqlMoney\r
+ x = new SqlInt32 (27);\r
+ AssertEquals ("SqlInt32 (27) -> SqlMoney does not yield a value of 27", x.ToSqlMoney ().Value, (decimal)27);\r
+\r
+ // Case 16: SqlInt32.Null -> SqlSingle == SqlSingle.Null\r
+ x = SqlInt32.Null;\r
+ AssertEquals ("SqlInt32.Null -> SqlSingle does not yield SqlSingle.Null.", x.ToSqlSingle (), SqlSingle.Null );\r
+\r
+ // Case 17: Test non-null conversion to SqlSingle\r
+ x = new SqlInt32 (27);\r
+ AssertEquals ("SqlInt32 (27) -> SqlSingle does not yield a value of 27", x.ToSqlSingle ().Value, (float)27);\r
+ }\r
+ \r
+ public void TestXor () \r
+ {\r
+ int a = 5;\r
+ int b = 7;\r
+ \r
+ SqlInt32 x = new SqlInt32 (a);\r
+ SqlInt32 y = new SqlInt32 (b);\r
+ SqlInt32 z = x ^ y;\r
+ AssertEquals ("Xor operator does not work correctly", z.Value, a ^ b);\r
+ z = SqlInt32.Xor (x, y);\r
+ AssertEquals ("Xor function does not work correctly", z.Value, a ^ b);\r
}\r
+ \r
}\r
}\r