1 package org.itracker.model;
2
3 import org.junit.After;
4 import org.junit.Before;
5 import org.junit.Test;
6
7 import java.util.Date;
8
9 import static org.itracker.Assert.*;
10
11
12 public class AbstractEntityTest {
13 private Entity ae;
14
15 @Test
16 public void testGetCreateDate() {
17 Date date = new Date(1000);
18 ae.setCreateDate(date);
19 assertEquals("create date", date, ae.getCreateDate());
20 assertNotSame("create date", ae.getCreateDate(), ae.getCreateDate());
21
22 ae.setCreateDate(null);
23 assertNotNull("create date", ae.getCreateDate());
24 }
25
26 @Test
27 public void testSetCreateDate() {
28 Date date = new Date(1000);
29 ae.setCreateDate(date);
30 assertEquals("create date", date, ae.getCreateDate());
31 assertNotSame("lastModifiedDate", date, ae.getCreateDate());
32
33 ae.setCreateDate(null);
34 assertNotNull("create date", ae.getCreateDate());
35 }
36
37 @Test
38 public void testGetLastModifiedDate() {
39 Date date = new Date(1000);
40 ae.setLastModifiedDate(date);
41 assertEquals("lastModifiedDate", date, ae.getLastModifiedDate());
42 assertNotSame("lastModifiedDate", ae.getLastModifiedDate(), ae.getLastModifiedDate());
43
44 ae.setLastModifiedDate(null);
45 assertNotNull("lastModifiedDate", ae.getLastModifiedDate());
46 }
47
48 @Test
49 public void testSetLastModifiedDate() {
50 Date date = new Date(1000);
51 ae.setLastModifiedDate(date);
52 assertEquals("lastModifiedDate", date, ae.getLastModifiedDate());
53 assertNotSame("lastModifiedDate", date, ae.getLastModifiedDate());
54
55 ae.setLastModifiedDate(null);
56 assertNotNull("lastModifiedDate", ae.getLastModifiedDate());
57 }
58
59 @Test
60 public void testEquals() {
61 Entity aeCopy = ae;
62 assertTrue(ae.equals(aeCopy));
63 assertFalse(ae.equals(null));
64
65 aeCopy = new TestAbstractEntity();
66 assertFalse(ae.equals(aeCopy));
67 ae.setId(1000);
68 assertFalse(ae.equals(aeCopy));
69 aeCopy.setId(1000);
70 assertTrue(ae.equals(aeCopy));
71 assertFalse(ae.equals(new User()));
72 }
73
74 @Test
75 public void testCompareTo() {
76 ae.setId(1000);
77 AbstractEntity aeCopy = new TestAbstractEntity();
78 aeCopy.setId(1000);
79 assertEquals(0, ae.compareTo(aeCopy));
80 aeCopy.setId(2000);
81 assertEquals(-1, ae.compareTo(aeCopy));
82 try {
83 ae.compareTo(null);
84 fail("did not throw NullPointerException");
85 } catch (NullPointerException e) {
86 assertTrue(true);
87 }
88 }
89
90 @Test
91 public void testIsNew() {
92 ae.setId(1000);
93 assertFalse(ae.isNew());
94 ae.setId(null);
95 assertTrue(ae.isNew());
96 }
97
98 @Test
99 public void testHashCode() {
100 assertNotNull(ae.hashCode());
101 }
102
103 @Test
104 public void testClone() throws CloneNotSupportedException {
105 Object clone = ((AbstractEntity) ae).clone();
106 assertTrue(clone instanceof AbstractEntity);
107 }
108
109 @Test
110 public void testIdComparator() {
111 AbstractEntity entityA = new TestAbstractEntity();
112 AbstractEntity entityB = new TestAbstractEntity();
113
114
115 entityA.setId(1);
116 entityB.setId(2);
117 assertEntityComparator("id comparator", AbstractEntity.ID_COMPARATOR, entityA, entityB);
118 assertEntityComparator("id comparator", AbstractEntity.ID_COMPARATOR, entityA, null);
119
120 entityA.setId(2);
121 assertEntityComparatorEquals("id comparator", AbstractEntity.ID_COMPARATOR, entityA, entityB);
122 assertEntityComparatorEquals("id comparator", AbstractEntity.ID_COMPARATOR, entityA, entityA);
123 assertEntityComparator("id comparator", AbstractEntity.ID_COMPARATOR, entityA, null);
124
125 }
126
127 @Test
128 public void testCreateDateComparator() throws Exception {
129 AbstractEntity entityA = new TestAbstractEntity();
130 Thread.sleep(100);
131 AbstractEntity entityB = new TestAbstractEntity();
132
133 assertEntityComparator("create date comparator", AbstractEntity.CREATE_DATE_COMPARATOR, entityA, entityB);
134 assertEntityComparator("create date comparator", AbstractEntity.CREATE_DATE_COMPARATOR, entityA, null);
135
136 entityA.setCreateDate(entityB.getCreateDate());
137 assertEquals(entityA.getCreateDate(), entityB.getCreateDate());
138 assertEntityComparatorEquals("create date comparator", AbstractEntity.CREATE_DATE_COMPARATOR, entityA, entityB);
139 assertEntityComparatorEquals("create date comparator", AbstractEntity.CREATE_DATE_COMPARATOR, entityA, entityA);
140 assertEntityComparator("create date comparator", AbstractEntity.CREATE_DATE_COMPARATOR, entityA, null);
141 }
142
143 @Test
144 public void testLastModifiedDateComparator() throws Exception {
145 AbstractEntity entityA = new TestAbstractEntity();
146 Thread.sleep(100);
147 AbstractEntity entityB = new TestAbstractEntity();
148
149 assertEntityComparator("last modified date comparator", AbstractEntity.LAST_MODIFIED_DATE_COMPARATOR, entityA, entityB);
150 assertEntityComparator("last modified date comparator", AbstractEntity.LAST_MODIFIED_DATE_COMPARATOR, entityA, null);
151
152 entityA.setLastModifiedDate(entityB.getLastModifiedDate());
153 assertEquals(entityB.getLastModifiedDate(), entityB.getLastModifiedDate());
154 assertEntityComparatorEquals("last modified date comparator", AbstractEntity.LAST_MODIFIED_DATE_COMPARATOR, entityA, entityB);
155 assertEntityComparatorEquals("last modified date comparator", AbstractEntity.LAST_MODIFIED_DATE_COMPARATOR, entityA, entityA);
156 assertEntityComparator("last modified date comparator", AbstractEntity.LAST_MODIFIED_DATE_COMPARATOR, entityA, null);
157 }
158
159 @Before
160 public void setUp() throws Exception {
161 ae = new TestAbstractEntity();
162 }
163
164 @After
165 public void tearDown() throws Exception {
166 ae = null;
167 }
168
169
170
171
172
173 private class TestAbstractEntity extends AbstractEntity {
174 private static final long serialVersionUID = 1L;
175 }
176
177 }