-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathPrimitiveComparatorTest.cls
129 lines (116 loc) · 5.24 KB
/
PrimitiveComparatorTest.cls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/* ============================================================
* This code is part of the "apex-lang" open source project avaiable at:
*
* http://code.google.com/p/apex-lang/
*
* This code is licensed under the Apache License, Version 2.0. You may obtain a
* copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
* ============================================================
*/
@IsTest
private class PrimitiveComparatorTest {
private static testmethod void testNulls(){
String aNull = null;
Object aNullO = aNull;
Object xyz = 'xyz';
System.assertEquals(-1,(new PrimitiveComparator()).compare(aNullO,xyz));
System.assertEquals(1,(new PrimitiveComparator()).compare(xyz,aNullO));
}
private static testmethod void testBlob(){
Object b1 = Blob.valueOf('123');
Object b2 = Blob.valueOf('abc');
Boolean exceptionThrown = false;
try{
(new PrimitiveComparator()).compare(b1,b2);
}catch(IllegalArgumentException e){
exceptionThrown = true;
}
System.assert(exceptionThrown);
}
private static testmethod void testBoolean(){
assertCompareBoolean(false,true,-1);
assertCompareBoolean(true,true,0);
assertCompareBoolean(false,false,0);
assertCompareBoolean(true,false,1);
}
private static void assertCompareBoolean(Object b1, Object b2, Integer expected){ System.assertEquals(expected,(new PrimitiveComparator()).compare(b1,b2));}
private static testmethod void testDate(){
assertCompareDate(date.newinstance(1980, 2, 17),date.newinstance(1981, 2, 17),-1);
assertCompareDate(date.newinstance(1981, 2, 17),date.newinstance(1981, 2, 17),0);
assertCompareDate(date.newinstance(1981, 2, 17),date.newinstance(1980, 2, 17),1);
}
private static void assertCompareDate(Object d1, Object d2, Integer expected){ System.assertEquals(expected,(new PrimitiveComparator()).compare(d1,d2));}
private static testmethod void testDatetime(){
Object d1 = datetime.newInstance(2008, 12, 1, 12, 30, 1);
Object d2 = datetime.newInstance(2008, 12, 1, 12, 30, 2);
assertCompareDatetime(d1,d2,-1);
assertCompareDatetime(d1,d1,0);
assertCompareDatetime(d2,d1,1);
}
private static void assertCompareDatetime(Object d1, Object d2, Integer expected){ System.assertEquals(expected,(new PrimitiveComparator()).compare(d1,d2));}
private static testmethod void testDecimal(){
Decimal d1 = 123.123;
Decimal d2 = 125.125;
assertCompareDecimal(d1,d2,-1);
assertCompareDecimal(d1,d1,0);
assertCompareDecimal(d2,d1,1);
}
private static void assertCompareDecimal(Object d1, Object d2, Integer expected){ System.assertEquals(expected,(new PrimitiveComparator()).compare(d1,d2));}
private static testmethod void testDouble(){
Double d1 = 123.123;
Double d2 = 125.125;
assertCompareDouble(d1,d2,-1);
assertCompareDouble(d1,d1,0);
assertCompareDouble(d2,d1,1);
}
private static void assertCompareDouble(Object d1, Object d2, Integer expected){ System.assertEquals(expected,(new PrimitiveComparator()).compare(d1,d2));}
/*private static testmethod void testID(){
Account a = new Account(name='test1');
insert a;
ID i1 = a.id;
a = new Account(name='test2');
insert a;
ID i2 = a.id;
assertCompareID(i1,i2,-1);
assertCompareID(i1,i1,0);
assertCompareID(i2,i1,1);
}
private static void assertCompareID(Object i1, Object i2, Integer expected){ System.assertEquals(expected,(new PrimitiveComparator()).compare(i1,i2));}
*/
private static testmethod void testInteger(){
Integer i1 = -10;
Integer i2 = 15;
assertCompare(i1,i2,-1);
assertCompare(i1,i1,0);
assertCompare(i2,i1,1);
}
private static void assertCompare(Object i1, Object i2, Integer expected){ System.assertEquals(expected,(new PrimitiveComparator()).compare(i1,i2));}
private static testmethod void testLong(){
Long i1 = -10;
Long i2 = 15;
assertCompareLong(i1,i2,-1);
assertCompareLong(i1,i1,0);
assertCompareLong(i2,i1,1);
}
private static void assertCompareLong(Object l1, Object l2, Integer expected){ System.assertEquals(expected,(new PrimitiveComparator()).compare(l1,l2));}
private static testmethod void testTime(){
Time t1 = Time.newInstance(18, 30, 2, 20);
Time t2 = Time.newInstance(18, 30, 2, 21);
assertCompareTime(t1,t2,-1);
assertCompareTime(t2,t2,0);
assertCompareTime(t2,t1,1);
}
private static void assertCompareTime(Object t1, Object t2, Integer expected){
System.assertEquals(expected,(new PrimitiveComparator()).compare(t1,t2));
}
private static testmethod void testString(){
String s1 = 'abc';
String s2 = 'def';
assertCompareString(s1,s2,-1);
assertCompareString(s1,s1,0);
assertCompareString(s2,s1,1);
}
private static void assertCompareString(Object s1, Object s2, Integer expected){ System.assertEquals(expected,(new PrimitiveComparator()).compare(s1,s2));}
}