Skip to content

Commit b74b6e5

Browse files
authored
Merge pull request #303 from TreeBASE/copilot/refactor-test-query-validations
Refactor database query tests to handle empty result sets
2 parents b475970 + 6dce4f6 commit b74b6e5

File tree

12 files changed

+951
-715
lines changed

12 files changed

+951
-715
lines changed

treebase-core/src/test/java/org/cipres/treebase/dao/admin/PersonDAOTest.java

Lines changed: 47 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -105,22 +105,27 @@ public void testFindByID() {
105105
// 1. find a valid id first:
106106
List<String> ids = jdbcTemplate.queryForList("select person_id from person", String.class);
107107

108+
// 2. verify correct handling of empty database
109+
assertNotNull("Query should return non-null list", ids);
110+
108111
if (ids.size() > 0) {
109-
assertTrue("Empty Person table.", ids.size() > 0);
110-
111-
// 2. find by user name:
112+
// 3. find by user name:
112113
PersonHome fixture = getPersonHome();
113114
Long anId = Long.parseLong(ids.get(0));
114115

115116
Person result = fixture.findPersistedObjectByID(Person.class, anId);
116117

117-
// 3. verify
118+
// 4. verify
118119
assertTrue("Result is null", result != null);
119120
assertTrue("Result id does not match.", result.getId().equals(anId));
120121

121122
if (logger.isInfoEnabled()) {
122123
logger.info(testName + " verified id =" + anId);
123124
}
125+
} else {
126+
if (logger.isInfoEnabled()) {
127+
logger.info(testName + " - empty database, test skipped");
128+
}
124129
}
125130

126131
}
@@ -137,26 +142,30 @@ public void testFindByExactMatch() throws Exception {
137142
// 1. find a valid person first:
138143
Person p = (Person) loadObject(Person.class);
139144

140-
assertTrue("Empty Person table.", p != null);
141-
142-
// 2. create a new person object and test:
143-
Person newP = new Person();
144-
newP.setEmailAddressString(p.getEmailAddressString());
145-
newP.setFirstName(p.getFirstName());
146-
newP.setLastName(p.getLastName());
145+
if (p != null) {
146+
// 2. create a new person object and test:
147+
Person newP = new Person();
148+
newP.setEmailAddressString(p.getEmailAddressString());
149+
newP.setFirstName(p.getFirstName());
150+
newP.setLastName(p.getLastName());
147151

148-
PersonHome fixture = getPersonHome();
149-
Person result = fixture.findByExactMatch(newP);
152+
PersonHome fixture = getPersonHome();
153+
Person result = fixture.findByExactMatch(newP);
150154

151-
// 3. verify
152-
assertTrue(result != null);
153-
assertTrue(result.getLastName().equals(result.getLastName()));
155+
// 3. verify
156+
assertTrue(result != null);
157+
assertTrue(result.getLastName().equals(result.getLastName()));
154158

155-
// Notes: this is a dangerous verification. Let's see if it works:
156-
assertTrue(result.getId().equals(p.getId()));
159+
// Notes: this is a dangerous verification. Let's see if it works:
160+
assertTrue(result.getId().equals(p.getId()));
157161

158-
if (logger.isInfoEnabled()) {
159-
logger.info(testName + " verified id =" + p.getId() + " lastname =" + p.getLastName());
162+
if (logger.isInfoEnabled()) {
163+
logger.info(testName + " verified id =" + p.getId() + " lastname =" + p.getLastName());
164+
}
165+
} else {
166+
if (logger.isInfoEnabled()) {
167+
logger.info(testName + " - empty database, test skipped");
168+
}
160169
}
161170

162171
}
@@ -175,15 +184,16 @@ public void testFindByLastName() {
175184
"select lastname from person",
176185
String.class);
177186

187+
// 2. verify correct handling of empty database
188+
assertNotNull("Query should return non-null list", lastNames);
189+
178190
if (lastNames.size() > 0) {
179-
assertTrue("Empty Person table.", lastNames.size() > 0);
180-
181-
// 2. find by last name:
191+
// 3. find by last name:
182192
PersonHome fixture = getPersonHome();
183193
String lastName = lastNames.get(0);
184194
Collection<Person> results = fixture.findByLastName(lastName);
185195

186-
// 3. verify
196+
// 4. verify
187197
assertTrue(results != null && !results.isEmpty());
188198

189199
for (Person person : results) {
@@ -193,6 +203,10 @@ public void testFindByLastName() {
193203
if (logger.isInfoEnabled()) {
194204
logger.info(testName + " verified lastname =" + lastName);
195205
}
206+
} else {
207+
if (logger.isInfoEnabled()) {
208+
logger.info(testName + " - empty database, test skipped");
209+
}
196210
}
197211

198212
}
@@ -211,15 +225,16 @@ public void testFindCompleteEmailAddress() {
211225
"select email from person where email is not null",
212226
String.class);
213227

228+
// 2. verify correct handling of empty database
229+
assertNotNull("Query should return non-null list", emails);
230+
214231
if (emails.size() > 0) {
215-
assertTrue("Empty Person table.", emails.size() > 0);
216-
217-
// 2. find:
232+
// 3. find:
218233
PersonHome fixture = getPersonHome();
219234
String partialMatch = "Te";
220235
Collection<String> results = fixture.findCompleteEmailAddress(partialMatch);
221236

222-
// 3. verify
237+
// 4. verify
223238
assertTrue(results != null && !results.isEmpty());
224239

225240
for (String anEmail : results) {
@@ -229,6 +244,10 @@ public void testFindCompleteEmailAddress() {
229244
if (logger.isInfoEnabled()) {
230245
logger.info(testName + " verified partialmatch size =" + results.size());
231246
}
247+
} else {
248+
if (logger.isInfoEnabled()) {
249+
logger.info(testName + " - empty database, test skipped");
250+
}
232251
}
233252

234253
}

0 commit comments

Comments
 (0)