1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package javax.jdo.identity;
24
25 import javax.jdo.JDONullIdentityException;
26
27 import javax.jdo.util.BatchTestRunner;
28
29 /**
30 *
31 * @author clr
32 */
33 public class CharIdentityTest extends SingleFieldIdentityTest {
34
35 /** Creates a new instance of CharIdentityTest */
36 public CharIdentityTest() {
37 }
38
39 /**
40 * @param args the command line arguments
41 */
42 public static void main(String[] args) {
43 BatchTestRunner.run(CharIdentityTest.class);
44 }
45
46 public void testConstructor() {
47 CharIdentity c1 = new CharIdentity(Object.class, 'a');
48 CharIdentity c2 = new CharIdentity(Object.class, 'a');
49 CharIdentity c3 = new CharIdentity(Object.class, 'b');
50 assertEquals("Equal CharIdentity instances compare not equal.", c1, c2);
51 assertFalse ("Not equal CharIdentity instances compare equal", c1.equals(c3));
52 }
53
54 public void testCharacterConstructor() {
55 CharIdentity c1 = new CharIdentity(Object.class, 'a');
56 CharIdentity c2 = new CharIdentity(Object.class, new Character('a'));
57 CharIdentity c3 = new CharIdentity(Object.class, new Character('b'));
58 assertEquals("Equal CharIdentity instances compare not equal.", c1, c2);
59 assertFalse ("Not equal CharIdentity instances compare equal", c1.equals(c3));
60 }
61
62 public void testToStringConstructor() {
63 CharIdentity c1 = new CharIdentity(Object.class, 'a');
64 CharIdentity c2 = new CharIdentity(Object.class, c1.toString());
65 assertEquals ("Equal CharIdentity instances compare not equal.", c1, c2);
66 }
67
68 public void testStringConstructor() {
69 CharIdentity c1 = new CharIdentity(Object.class, 'a');
70 CharIdentity c2 = new CharIdentity(Object.class, "a");
71 CharIdentity c3 = new CharIdentity(Object.class, "b");
72 assertEquals ("Equal CharIdentity instances compare not equal.", c1, c2);
73 assertFalse ("Not equal CharIdentity instances compare equal", c1.equals(c3));
74 }
75
76 public void testStringConstructorTooLong() {
77 try {
78 CharIdentity c1 = new CharIdentity(Object.class, "ab");
79 } catch (IllegalArgumentException iae) {
80 return;
81 }
82 fail ("No exception caught for String too long.");
83 }
84
85 public void testStringConstructorTooShort() {
86 try {
87 CharIdentity c1 = new CharIdentity(Object.class, "");
88 } catch (IllegalArgumentException iae) {
89 return;
90 }
91 fail ("No exception caught for String too short.");
92 }
93
94 public void testSerialized() {
95 CharIdentity c1 = new CharIdentity(Object.class, 'a');
96 CharIdentity c2 = new CharIdentity(Object.class, "a");
97 CharIdentity c3 = new CharIdentity(Object.class, "b");
98 Object[] scis = writeReadSerialized(new Object[] {c1, c2, c3});
99 Object sc1 = scis[0];
100 Object sc2 = scis[1];
101 Object sc3 = scis[2];
102 assertEquals ("Equal CharIdentity instances compare not equal.", c1, sc1);
103 assertEquals ("Equal CharIdentity instances compare not equal.", c2, sc2);
104 assertEquals ("Equal CharIdentity instances compare not equal.", sc1, c2);
105 assertEquals ("Equal CharIdentity instances compare not equal.", sc2, c1);
106 assertFalse ("Not equal CharIdentity instances compare equal.", c1.equals(sc3));
107 assertFalse ("Not equal CharIdentity instances compare equal.", sc1.equals(c3));
108 assertFalse ("Not equal CharIdentity instances compare equal.", sc1.equals(sc3));
109 assertFalse ("Not equal CharIdentity instances compare equal.", sc3.equals(sc1));
110 }
111 public void testGetKeyAsObjectPrimitive() {
112 CharIdentity c1 = new CharIdentity(Object.class, '1');
113 assertEquals("keyAsObject doesn't match.", c1.getKeyAsObject(), new Character('1'));
114 }
115
116 public void testGetKeyAsObject() {
117 CharIdentity c1 = new CharIdentity(Object.class, new Character('1'));
118 assertEquals("keyAsObject doesn't match.", c1.getKeyAsObject(), new Character('1'));
119 }
120
121 public void testBadConstructorNullCharacterParam() {
122 try {
123 CharIdentity c1 = new CharIdentity(Object.class, (Character)null);
124 } catch (JDONullIdentityException ex) {
125 return;
126 }
127 fail ("Failed to catch expected exception.");
128 }
129
130 public void testBadConstructorNullStringParam() {
131 try {
132 CharIdentity c1 = new CharIdentity(Object.class, (String)null);
133 } catch (JDONullIdentityException ex) {
134 return;
135 }
136 fail ("Failed to catch expected exception.");
137 }
138
139 public void testCompareTo() {
140 CharIdentity c1 = new CharIdentity(Object.class, '1');
141 CharIdentity c2 = new CharIdentity(Object.class, '1');
142 CharIdentity c3 = new CharIdentity(Object.class, '2');
143 CharIdentity c4 = new CharIdentity(Class.class, '1');
144 assertEquals("Equal CharIdentity instances compare not equal.", 0, c1.compareTo(c2));
145 assertTrue("Not equal CharIdentity instances have wrong compareTo result", c1.compareTo(c3) < 0);
146 assertTrue("Not equal CharIdentity instances have wrong compareTo result", c3.compareTo(c1) > 0);
147 assertTrue("Not equal CharIdentity instances have wrong compareTo result", c1.compareTo(c4) > 0);
148 }
149 }