annotate UnitTests/CS/Common/OperatorTest.cs @ 1:8f65451dc28f

Исправлена проблема с фабрикой и выборкой нескольких объектов в linq выражении
author cin
date Fri, 28 Mar 2014 01:04:56 +0400
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2 #if ORACLE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3 using Oracle.DataAccess.Types;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using BLToolkit.Common;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 namespace Common
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 public class OperatorTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 public void StringTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 Assert.AreEqual("123456", Operator<string>.Addition("123", "456"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 Assert.IsTrue(Operator<string>.Equality("123", "123"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 public void IntTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 Assert.AreEqual(579, Operator<int>.Addition (123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 Assert.AreEqual(-333, Operator<int>.Subtraction(123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 Assert.AreEqual(56088, Operator<int>.Multiply(123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 Assert.AreEqual(0, Operator<int>.Division(123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 Assert.AreEqual(123, Operator<int>.Modulus (123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 Assert.AreEqual(72, Operator<int>.BitwiseAnd (123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 Assert.AreEqual(507, Operator<int>.BitwiseOr (123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 Assert.AreEqual(435, Operator<int>.ExclusiveOr(123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 Assert.AreEqual(-123, Operator<int>.UnaryNegation (123));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 Assert.AreEqual(-124, Operator<int>.OnesComplement(123));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 Assert.IsTrue(Operator<int>.Equality (123, 123));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 Assert.IsTrue(Operator<int>.Inequality (123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 Assert.IsTrue(Operator<int>.GreaterThan (123, -56));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 Assert.IsTrue(Operator<int>.GreaterThanOrEqual(123, 123));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 Assert.IsTrue(Operator<int>.LessThan (123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 Assert.IsTrue(Operator<int>.LessThanOrEqual (-23, 123));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 #if ORACLE
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 private class OracleDecimalOp : IOperable<OracleDecimal>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 public OracleDecimal Addition (OracleDecimal op1, OracleDecimal op2) { return (op1 + op2); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 public OracleDecimal Subtraction (OracleDecimal op1, OracleDecimal op2) { return (op1 - op2); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 public OracleDecimal Multiply (OracleDecimal op1, OracleDecimal op2) { return (op1 * op2); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 public OracleDecimal Division (OracleDecimal op1, OracleDecimal op2) { return (op1 / op2); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 public OracleDecimal Modulus (OracleDecimal op1, OracleDecimal op2) { return (op1 % op2); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 public OracleDecimal BitwiseAnd (OracleDecimal op1, OracleDecimal op2) { throw new InvalidOperationException(); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 public OracleDecimal BitwiseOr (OracleDecimal op1, OracleDecimal op2) { throw new InvalidOperationException(); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 public OracleDecimal ExclusiveOr (OracleDecimal op1, OracleDecimal op2) { throw new InvalidOperationException(); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 public OracleDecimal UnaryNegation (OracleDecimal op) { return (-op); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 public OracleDecimal OnesComplement (OracleDecimal op) { throw new InvalidOperationException(); }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 public bool Equality (OracleDecimal op1, OracleDecimal op2) { return op1 == op2; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 public bool Inequality (OracleDecimal op1, OracleDecimal op2) { return op1 != op2; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 public bool GreaterThan (OracleDecimal op1, OracleDecimal op2) { return op1 > op2; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 public bool GreaterThanOrEqual(OracleDecimal op1, OracleDecimal op2) { return op1 >= op2; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 public bool LessThan (OracleDecimal op1, OracleDecimal op2) { return op1 < op2; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 public bool LessThanOrEqual (OracleDecimal op1, OracleDecimal op2) { return op1 <= op2; }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 public void ExtensionTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 Operator<OracleDecimal>.Op = new OracleDecimalOp();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 Assert.AreEqual((OracleDecimal)579, Operator<OracleDecimal>.Addition (123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 Assert.AreEqual((OracleDecimal)(-333),Operator<OracleDecimal>.Subtraction(123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 Assert.AreEqual((OracleDecimal)56088, Operator<OracleDecimal>.Multiply(123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 Assert.AreEqual((OracleDecimal)41, Operator<OracleDecimal>.Division(123, 3));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 Assert.AreEqual((OracleDecimal)123, Operator<OracleDecimal>.Modulus (123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 Assert.AreEqual(-(OracleDecimal)123, Operator<OracleDecimal>.UnaryNegation (123));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 Assert.IsTrue(Operator<OracleDecimal>.Equality (123, 123));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 Assert.IsTrue(Operator<OracleDecimal>.Inequality (123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 Assert.IsTrue(Operator<OracleDecimal>.GreaterThan (123, (-5)));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 Assert.IsTrue(Operator<OracleDecimal>.GreaterThanOrEqual(123, 123));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 Assert.IsTrue(Operator<OracleDecimal>.LessThan (123, 456));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 Assert.IsTrue(Operator<OracleDecimal>.LessThanOrEqual (123, 123));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 #endif
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 }