1
2
3
4
5
6
7
8
9
10 package com.atlassian.core.util;
11
12 import com.atlassian.core.util.PropertyUtils;
13 import com.opensymphony.module.propertyset.PropertySet;
14 import com.opensymphony.module.propertyset.PropertySetManager;
15 import junit.framework.TestCase;
16
17 import java.util.Calendar;
18 import java.util.Date;
19
20 public class TestPropertyUtils extends TestCase
21 {
22 public TestPropertyUtils(String s)
23 {
24 super(s);
25 }
26
27 public void testIdenticalWithNulls()
28 {
29
30 assertTrue(!PropertyUtils.identical(null, PropertySetManager.getInstance("memory", null)));
31
32 assertTrue(!PropertyUtils.identical(PropertySetManager.getInstance("memory", null), null));
33
34 assertTrue(PropertyUtils.identical(null, null));
35 }
36
37 public void testIdenticalWithDifferentKeys()
38 {
39 PropertySet propertySet1 = PropertySetManager.getInstance("memory", null);
40 propertySet1.setString("TEST_KEY_1", "");
41
42 PropertySet propertySet2 = PropertySetManager.getInstance("memory", null);
43 propertySet2.setString("TEST_KEY_2", "");
44
45 assertTrue(!PropertyUtils.identical(propertySet1, propertySet2));
46 }
47
48 public void testIdenticalWithBooleans()
49 {
50 PropertySet propertySet1 = PropertySetManager.getInstance("memory", null);
51 propertySet1.setBoolean("TEST_BOOLEAN", true);
52
53 PropertySet propertySet2 = PropertySetManager.getInstance("memory", null);
54 propertySet2.setBoolean("TEST_BOOLEAN", false);
55
56
57 assertTrue(!PropertyUtils.identical(propertySet1, propertySet2));
58
59 propertySet2.setBoolean("TEST_BOOLEAN", true);
60
61
62 assertTrue(PropertyUtils.identical(propertySet1, propertySet2));
63 }
64
65 public void testIdenticalWithDates()
66 {
67 Calendar cal = Calendar.getInstance();
68 cal.set(2000, 1, 1, 1, 1, 1);
69 Date testDate1 = cal.getTime();
70
71 cal.set(2001, 1, 1, 1, 1, 1);
72 Date testDate2 = cal.getTime();
73
74 PropertySet propertySet1 = PropertySetManager.getInstance("memory", null);
75 propertySet1.setDate("TEST_DATE", testDate1);
76
77 PropertySet propertySet2 = PropertySetManager.getInstance("memory", null);
78 propertySet2.setDate("TEST_DATE", testDate2);
79
80
81 assertTrue(!PropertyUtils.identical(propertySet1, propertySet2));
82
83 cal.set(2000, 1, 1, 1, 1, 1);
84 testDate2 = cal.getTime();
85
86 propertySet2.setDate("TEST_DATE", testDate2);
87
88
89 assertTrue(PropertyUtils.identical(propertySet1, propertySet2));
90 }
91
92 public void testIdenticalWithDoubles()
93 {
94 PropertySet propertySet1 = PropertySetManager.getInstance("memory", null);
95 propertySet1.setDouble("TEST_DOUBLE", 10);
96
97 PropertySet propertySet2 = PropertySetManager.getInstance("memory", null);
98 propertySet2.setDouble("TEST_DOUBLE", 11);
99
100
101 assertTrue(!PropertyUtils.identical(propertySet1, propertySet2));
102
103 propertySet2.setDouble("TEST_DOUBLE", 10);
104
105
106 assertTrue(PropertyUtils.identical(propertySet1, propertySet2));
107 }
108
109 public void testIdenticalWithInts()
110 {
111 PropertySet propertySet1 = PropertySetManager.getInstance("memory", null);
112 propertySet1.setInt("TEST_INT", 10);
113
114 PropertySet propertySet2 = PropertySetManager.getInstance("memory", null);
115 propertySet2.setInt("TEST_INT", 11);
116
117
118 assertTrue(!PropertyUtils.identical(propertySet1, propertySet2));
119
120 propertySet2.setInt("TEST_INT", 10);
121
122
123 assertTrue(PropertyUtils.identical(propertySet1, propertySet2));
124 }
125
126 public void testIdenticalWithLongs()
127 {
128 PropertySet propertySet1 = PropertySetManager.getInstance("memory", null);
129 propertySet1.setLong("TEST_LONG", 10);
130
131 PropertySet propertySet2 = PropertySetManager.getInstance("memory", null);
132 propertySet2.setLong("TEST_LONG", 11);
133
134
135 assertTrue(!PropertyUtils.identical(propertySet1, propertySet2));
136
137 propertySet2.setLong("TEST_LONG", 10);
138
139
140 assertTrue(PropertyUtils.identical(propertySet1, propertySet2));
141 }
142
143 public void testIdenticalWithStrings()
144 {
145 PropertySet propertySet1 = PropertySetManager.getInstance("memory", null);
146 propertySet1.setString("TEST_STRING", "STRING1");
147
148 PropertySet propertySet2 = PropertySetManager.getInstance("memory", null);
149 propertySet2.setString("TEST_STRING", "STRING2");
150
151
152 assertTrue(!PropertyUtils.identical(propertySet1, propertySet2));
153
154 propertySet2.setString("TEST_STRING", "STRING1");
155
156
157 assertTrue(PropertyUtils.identical(propertySet1, propertySet2));
158 }
159
160 public void testIdenticalWithTexts()
161 {
162 PropertySet propertySet1 = PropertySetManager.getInstance("memory", null);
163 propertySet1.setText("TEST_TEXT", "SOME TEXT 1");
164
165 PropertySet propertySet2 = PropertySetManager.getInstance("memory", null);
166 propertySet2.setText("TEST_TEXT", "SOME TEXT 2");
167
168
169 assertTrue(!PropertyUtils.identical(propertySet1, propertySet2));
170
171 propertySet2.setText("TEST_TEXT", "SOME TEXT 1");
172
173
174 assertTrue(PropertyUtils.identical(propertySet1, propertySet2));
175 }
176
177 public void testIdenticalWithAllMultipleValues()
178 {
179 PropertySet propertySet1 = PropertySetManager.getInstance("memory", null);
180 propertySet1.setBoolean("TEST_BOOLEAN", true);
181 Calendar cal = Calendar.getInstance();
182 cal.set(2000, 1, 1, 1, 1, 1);
183 Date testDate1 = cal.getTime();
184 propertySet1.setDate("TEST_DATE", testDate1);
185 propertySet1.setDouble("TEST_DOUBLE", 10);
186 propertySet1.setInt("TEST_INT", 10);
187 propertySet1.setLong("TEST_LONG", 10);
188 propertySet1.setString("TEST_STRING", "STRING1");
189 propertySet1.setText("TEST_TEXT", "SOME TEXT 1");
190
191
192 PropertySet propertySet2 = PropertySetManager.getInstance("memory", null);
193 propertySet2.setBoolean("TEST_BOOLEAN", true);
194 cal.set(2000, 1, 1, 1, 1, 1);
195 Date testDate2 = cal.getTime();
196 propertySet2.setDate("TEST_DATE", testDate2);
197 propertySet2.setDouble("TEST_DOUBLE", 10);
198 propertySet2.setInt("TEST_INT", 10);
199 propertySet2.setLong("TEST_LONG", 10);
200 propertySet2.setString("TEST_STRING", "STRING1");
201 propertySet2.setText("TEST_TEXT", "SOME TEXT 2");
202
203
204 assertTrue(!PropertyUtils.identical(propertySet1, propertySet2));
205
206 propertySet2.setText("TEST_TEXT", "SOME TEXT 1");
207
208
209 assertTrue(PropertyUtils.identical(propertySet1, propertySet2));
210 }
211 }