Revision f1a25720
Added by Katja Luther over 6 years ago
- ID f1a25720755daa96e8838a617a660dfced7b9f31
- Parent 23e50194
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/common/CdmBaseTest.java | ||
---|---|---|
1 | 1 |
/** |
2 | 2 |
* Copyright (C) 2007 EDIT |
3 |
* European Distributed Institute of Taxonomy
|
|
3 |
* European Distributed Institute of Taxonomy |
|
4 | 4 |
* http://www.e-taxonomy.eu |
5 |
*
|
|
5 |
* |
|
6 | 6 |
* The contents of this file are subject to the Mozilla Public License Version 1.1 |
7 | 7 |
* See LICENSE.TXT at the top of this package for the full license terms. |
8 | 8 |
*/ |
9 |
|
|
9 |
|
|
10 | 10 |
package eu.etaxonomy.cdm.model.common; |
11 | 11 |
|
12 | 12 |
import static org.junit.Assert.assertEquals; |
13 | 13 |
import static org.junit.Assert.assertFalse; |
14 | 14 |
import static org.junit.Assert.assertNotNull; |
15 |
import static org.junit.Assert.assertNotSame; |
|
15 | 16 |
import static org.junit.Assert.assertNull; |
16 | 17 |
import static org.junit.Assert.assertSame; |
17 |
import static org.junit.Assert.assertNotSame; |
|
18 | 18 |
import static org.junit.Assert.assertTrue; |
19 | 19 |
import static org.junit.Assert.fail; |
20 | 20 |
|
... | ... | |
22 | 22 |
import java.beans.PropertyChangeListener; |
23 | 23 |
import java.beans.PropertyChangeSupport; |
24 | 24 |
import java.lang.reflect.Field; |
25 |
import java.time.ZoneId; |
|
26 |
import java.time.ZonedDateTime; |
|
25 | 27 |
import java.util.UUID; |
26 | 28 |
|
27 | 29 |
import org.apache.log4j.Logger; |
28 |
import org.joda.time.DateTime; |
|
29 | 30 |
import org.junit.After; |
30 | 31 |
import org.junit.AfterClass; |
31 | 32 |
import org.junit.Before; |
... | ... | |
42 | 43 |
public class CdmBaseTest extends EntityTestBase{ |
43 | 44 |
@SuppressWarnings("unused") |
44 | 45 |
private static final Logger logger = Logger.getLogger(CdmBaseTest.class); |
45 |
|
|
46 |
|
|
46 | 47 |
static CdmBase cdmBase; |
47 | 48 |
|
48 | 49 |
static public class TestCdmBaseClass extends CdmBase{ |
... | ... | |
51 | 52 |
public float testFloat = 1.43446E-5f; |
52 | 53 |
public boolean testBoolean = false; |
53 | 54 |
} |
54 |
|
|
55 |
|
|
55 | 56 |
public class PropListener implements PropertyChangeListener { |
56 | 57 |
private PropertyChangeEvent event; |
57 | 58 |
public PropListener() { |
58 | 59 |
event = null; |
59 |
} |
|
60 |
|
|
61 |
public void propertyChange(PropertyChangeEvent evt) { |
|
60 |
} |
|
61 |
|
|
62 |
@Override |
|
63 |
public void propertyChange(PropertyChangeEvent evt) { |
|
62 | 64 |
this.event = evt; |
63 | 65 |
} |
64 | 66 |
|
65 | 67 |
public boolean isChanged() { |
66 | 68 |
return event != null; |
67 | 69 |
} |
68 |
|
|
70 |
|
|
69 | 71 |
public Object getOldValue() { |
70 | 72 |
return event.getOldValue(); |
71 | 73 |
} |
72 |
|
|
74 |
|
|
73 | 75 |
public Object getNewValue() { |
74 | 76 |
return event.getNewValue(); |
75 | 77 |
} |
76 |
|
|
78 |
|
|
77 | 79 |
public String getChangedPropertyName() { |
78 | 80 |
return event.getPropertyName(); |
79 | 81 |
} |
80 |
|
|
82 |
|
|
81 | 83 |
} |
82 |
|
|
84 |
|
|
83 | 85 |
/** |
84 | 86 |
* @throws java.lang.Exception |
85 | 87 |
*/ |
86 | 88 |
@BeforeClass |
87 | 89 |
public static void setUpBeforeClass() throws Exception { |
88 | 90 |
} |
89 |
|
|
91 |
|
|
90 | 92 |
private static CdmBase getTestCdmBase(){ |
91 | 93 |
return new TestCdmBaseClass(); |
92 | 94 |
} |
... | ... | |
114 | 116 |
public void tearDown() throws Exception { |
115 | 117 |
} |
116 | 118 |
|
117 |
|
|
119 |
|
|
118 | 120 |
private void removeExistingListeners(CdmBase cdmBase){ |
119 | 121 |
Field fieldPropChangeSupport; |
120 | 122 |
PropertyChangeSupport propertyChangeSupport = null; |
... | ... | |
142 | 144 |
assertFalse(cdmBase.hasListeners("uuid")); |
143 | 145 |
} |
144 | 146 |
/*************** TESTS **************************************************/ |
145 |
|
|
147 |
|
|
146 | 148 |
|
147 | 149 |
/** |
148 | 150 |
* Test method for {@link eu.etaxonomy.cdm.model.common.CdmBase#CdmBase()}. |
... | ... | |
159 | 161 |
public void testAddPropertyChangeListenerPropertyChangeListener() { |
160 | 162 |
removeExistingListeners(cdmBase); |
161 | 163 |
assertFalse(cdmBase.hasListeners("uuid")); |
162 |
|
|
164 |
|
|
163 | 165 |
PropListener listener = new PropListener(); |
164 | 166 |
cdmBase.addPropertyChangeListener(listener); |
165 | 167 |
UUID uuid = UUID.randomUUID(); |
166 |
|
|
168 |
|
|
167 | 169 |
assertTrue(cdmBase.hasListeners("created")); |
168 | 170 |
assertTrue(cdmBase.hasListeners("createdBy")); |
169 | 171 |
assertTrue(cdmBase.hasListeners("id")); |
170 | 172 |
assertTrue(cdmBase.hasListeners("uuid")); |
171 |
|
|
173 |
|
|
172 | 174 |
cdmBase.setUuid(uuid); |
173 | 175 |
org.junit.Assert.assertTrue(listener.isChanged()); |
174 | 176 |
} |
... | ... | |
180 | 182 |
public void testAddPropertyChangeListenerStringPropertyChangeListener() { |
181 | 183 |
removeExistingListeners(cdmBase); |
182 | 184 |
assertFalse(cdmBase.hasListeners("uuid")); |
183 |
|
|
185 |
|
|
184 | 186 |
PropListener listener = new PropListener(); |
185 | 187 |
cdmBase.addPropertyChangeListener("uuid", listener); |
186 | 188 |
cdmBase.setId(22); |
187 | 189 |
assertFalse(listener.isChanged()); |
188 | 190 |
assertTrue(cdmBase.hasListeners("uuid")); |
189 |
|
|
191 |
|
|
190 | 192 |
UUID uuid = UUID.randomUUID(); |
191 | 193 |
cdmBase.setUuid(uuid); |
192 | 194 |
assertTrue(listener.isChanged()); |
193 | 195 |
} |
194 |
|
|
196 |
|
|
195 | 197 |
|
196 | 198 |
/** |
197 | 199 |
* Test method for {@link eu.etaxonomy.cdm.model.common.CdmBase#removePropertyChangeListener(java.beans.PropertyChangeListener)}. |
... | ... | |
200 | 202 |
public void testRemovePropertyChangeListenerPropertyChangeListener() { |
201 | 203 |
removeExistingListeners(cdmBase); |
202 | 204 |
assertFalse(cdmBase.hasListeners("uuid")); |
203 |
|
|
205 |
|
|
204 | 206 |
PropListener listener = new PropListener(); |
205 | 207 |
cdmBase.addPropertyChangeListener(listener); |
206 | 208 |
assertTrue(cdmBase.hasListeners("created")); |
207 | 209 |
assertTrue(cdmBase.hasListeners("createdBy")); |
208 | 210 |
assertTrue(cdmBase.hasListeners("id")); |
209 | 211 |
assertTrue(cdmBase.hasListeners("uuid")); |
210 |
|
|
212 |
|
|
211 | 213 |
cdmBase.removePropertyChangeListener(listener); |
212 | 214 |
assertFalse(cdmBase.hasListeners("created")); |
213 | 215 |
assertFalse(cdmBase.hasListeners("createdBy")); |
214 | 216 |
assertFalse(cdmBase.hasListeners("id")); |
215 | 217 |
assertFalse(cdmBase.hasListeners("uuid")); |
216 |
|
|
218 |
|
|
217 | 219 |
UUID uuid = UUID.randomUUID(); |
218 | 220 |
cdmBase.setUuid(uuid); |
219 | 221 |
assertFalse(listener.isChanged()); |
... | ... | |
231 | 233 |
PropListener listener = new PropListener(); |
232 | 234 |
cdmBase.addPropertyChangeListener(strUuid, listener); |
233 | 235 |
assertTrue(cdmBase.hasListeners(strUuid)); |
234 |
|
|
236 |
|
|
235 | 237 |
cdmBase.removePropertyChangeListener(strUuid, listener); |
236 | 238 |
assertFalse(cdmBase.hasListeners(strUuid)); |
237 |
|
|
239 |
|
|
238 | 240 |
UUID uuid = UUID.randomUUID(); |
239 | 241 |
cdmBase.setUuid(uuid); |
240 |
assertFalse(listener.isChanged());
|
|
242 |
assertFalse(listener.isChanged()); |
|
241 | 243 |
} |
242 | 244 |
|
243 | 245 |
/** |
... | ... | |
248 | 250 |
String prop = "uuid"; |
249 | 251 |
removeExistingListeners(cdmBase); |
250 | 252 |
assertFalse(cdmBase.hasListeners(prop)); |
251 |
|
|
253 |
|
|
252 | 254 |
PropListener listener = new PropListener(); |
253 | 255 |
cdmBase.addPropertyChangeListener(prop, listener); |
254 | 256 |
assertTrue(cdmBase.hasListeners(prop)); |
255 |
|
|
257 |
|
|
256 | 258 |
removeExistingListeners(cdmBase); |
257 | 259 |
assertFalse(cdmBase.hasListeners(prop)); |
258 |
|
|
260 |
|
|
259 | 261 |
cdmBase.addPropertyChangeListener(prop, listener); |
260 | 262 |
assertTrue(cdmBase.hasListeners(prop)); |
261 | 263 |
} |
... | ... | |
274 | 276 |
PropListener listener = new PropListener(); |
275 | 277 |
testCdm.addPropertyChangeListener(prop, listener); |
276 | 278 |
assertTrue(testCdm.hasListeners(prop)); |
277 |
|
|
279 |
|
|
278 | 280 |
//Test |
279 | 281 |
String oldValue = testCdm.testString; |
280 | 282 |
String newValue = "sdfklwekj"; |
... | ... | |
297 | 299 |
PropListener listener = new PropListener(); |
298 | 300 |
cdmBase.addPropertyChangeListener(prop, listener); |
299 | 301 |
assertTrue(cdmBase.hasListeners(prop)); |
300 |
|
|
302 |
|
|
301 | 303 |
//Test |
302 | 304 |
int oldValue = cdmBase.getId(); |
303 | 305 |
int newValue = 45; |
... | ... | |
322 | 324 |
PropListener listener = new PropListener(); |
323 | 325 |
testCdm.addPropertyChangeListener(prop, listener); |
324 | 326 |
assertTrue(testCdm.hasListeners(prop)); |
325 |
|
|
327 |
|
|
326 | 328 |
//Test |
327 | 329 |
float oldValue = testCdm.testFloat; |
328 | 330 |
float newValue = 1.40239846E-4f; |
... | ... | |
347 | 349 |
PropListener listener = new PropListener(); |
348 | 350 |
testCdm.addPropertyChangeListener(prop, listener); |
349 | 351 |
assertTrue(testCdm.hasListeners(prop)); |
350 |
|
|
352 |
|
|
351 | 353 |
//Test |
352 | 354 |
boolean oldValue = testCdm.testBoolean; |
353 | 355 |
boolean newValue = ! testCdm.testBoolean; |
... | ... | |
370 | 372 |
PropListener listener = new PropListener(); |
371 | 373 |
cdmBase.addPropertyChangeListener(prop, listener); |
372 | 374 |
assertTrue(cdmBase.hasListeners(prop)); |
373 |
|
|
375 |
|
|
374 | 376 |
//Test |
375 | 377 |
UUID oldValue = cdmBase.getUuid(); |
376 | 378 |
UUID newValue = UUID.randomUUID(); |
... | ... | |
392 | 394 |
PropListener listener = new PropListener(); |
393 | 395 |
cdmBase.addPropertyChangeListener(prop, listener); |
394 | 396 |
assertTrue(cdmBase.hasListeners(prop)); |
395 |
|
|
397 |
|
|
396 | 398 |
//Test |
397 | 399 |
UUID oldValue = cdmBase.getUuid(); |
398 | 400 |
UUID newValue = UUID.randomUUID(); |
... | ... | |
453 | 455 |
@Test |
454 | 456 |
public void testGetCreated() { |
455 | 457 |
assertNotNull(cdmBase.getCreated()); |
456 |
assertFalse(cdmBase.getCreated().isAfter(new DateTime()));
|
|
457 |
DateTime dateTime = new DateTime();
|
|
458 |
assertFalse(cdmBase.getCreated().isAfter(ZonedDateTime.now()));
|
|
459 |
ZonedDateTime dateTime = ZonedDateTime.now();
|
|
458 | 460 |
cdmBase.setCreated(dateTime); |
459 |
assertEquals(0, cdmBase.getCreated().getMillisOfSecond());
|
|
460 |
dateTime = dateTime.withMillisOfSecond(0);
|
|
461 |
dateTime = dateTime.withNano(0);
|
|
462 |
dateTime = dateTime.withSecond(0);
|
|
461 | 463 |
assertEquals(dateTime, cdmBase.getCreated()); |
464 |
|
|
462 | 465 |
} |
463 | 466 |
|
464 | 467 |
/** |
... | ... | |
466 | 469 |
*/ |
467 | 470 |
@Test |
468 | 471 |
public void testSetCreated() { |
469 |
DateTime calendar = new DateTime();
|
|
470 |
DateTime calendarTrue = calendar.withMillisOfSecond(23);
|
|
471 |
DateTime calendarFalse = calendar.withMillisOfSecond(23);
|
|
472 |
ZonedDateTime calendar = ZonedDateTime.of(20014, 12, 25, 12, 0, 0, 0, ZoneId.systemDefault());
|
|
473 |
ZonedDateTime calendarTrue = calendar.withNano(23);
|
|
474 |
ZonedDateTime calendarFalse = calendar.withNano(23);
|
|
472 | 475 |
calendarFalse = calendarFalse.plusMonths(5); |
473 | 476 |
cdmBase.setCreated(calendar); |
474 |
calendar = calendar.withMillisOfSecond(0);
|
|
475 |
calendarTrue = calendarTrue.withMillisOfSecond(0);
|
|
476 |
calendarFalse = calendarFalse.withMillisOfSecond(0);
|
|
477 |
calendar = calendar.withNano(0);
|
|
478 |
calendarTrue = calendarTrue.withNano(0);
|
|
479 |
calendarFalse = calendarFalse.withNano(0);
|
|
477 | 480 |
assertEquals(calendar, cdmBase.getCreated()); |
478 | 481 |
assertEquals(calendarTrue, cdmBase.getCreated()); |
479 | 482 |
assertFalse(calendarFalse.equals(calendar)); |
... | ... | |
497 | 500 |
@Test |
498 | 501 |
public void testSetCreatedBy() { |
499 | 502 |
User person = new User(); |
500 |
|
|
503 |
|
|
501 | 504 |
User personFalse = new User(); |
502 |
|
|
505 |
|
|
503 | 506 |
cdmBase.setCreatedBy(person); |
504 | 507 |
assertEquals(person, cdmBase.getCreatedBy()); |
505 | 508 |
assertSame(person, cdmBase.getCreatedBy()); |
... | ... | |
544 | 547 |
assertFalse(clone.getUuid().equals(cdmBase.getUuid())); |
545 | 548 |
assertNotNull(clone.getCreated()); |
546 | 549 |
assertNull(clone.getCreatedBy()); |
547 |
|
|
550 |
|
|
548 | 551 |
} catch (CloneNotSupportedException e) { |
549 | 552 |
// TODO Auto-generated catch block |
550 | 553 |
e.printStackTrace(); |
551 | 554 |
} |
552 |
|
|
553 |
|
|
554 |
|
|
555 |
|
|
556 |
|
|
557 |
|
|
555 | 558 |
} |
556 | 559 |
|
557 | 560 |
|
Also available in: Unified diff
first implementation for change from joda time to java8 time