Revision 8311a989
Added by Katja Luther over 7 years ago
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonDaoHibernateImplTest.java | ||
---|---|---|
219 | 219 |
* Misapplied names should be found regardless of whether they are contained in a classification or not. |
220 | 220 |
*/ |
221 | 221 |
//two accepted taxa starting with R in classification "TestBaum" |
222 |
List<TaxonBase> results = taxonDao.getTaxaByName(true, false, false, false, "R*", classification, MatchMode.BEGINNING, null, null, null, null, null); |
|
222 |
List<TaxonBase> results = taxonDao.getTaxaByName(true, false, false, false, false, "R*", classification, MatchMode.BEGINNING, null, null, null, null, null);
|
|
223 | 223 |
Assert.assertEquals("There should be 2 Taxa", 2, results.size()); |
224 | 224 |
|
225 | 225 |
//three taxa, 2 accepted and 1 misapplied name starting with R |
226 |
results = taxonDao.getTaxaByName(true, false, true, false, "R*", null, MatchMode.BEGINNING, null, null, null, null, null); |
|
226 |
results = taxonDao.getTaxaByName(true, false, true, false, false, "R*", null, MatchMode.BEGINNING, null, null, null, null, null);
|
|
227 | 227 |
Assert.assertEquals("There should be 3 Taxa", 3, results.size()); |
228 | 228 |
|
229 | 229 |
//one synonym has no accepted taxon |
230 |
results = taxonDao.getTaxaByName(true, true, true, false, "A*", null, MatchMode.BEGINNING, null, null, null, null, null); |
|
230 |
results = taxonDao.getTaxaByName(true, true, true, false, false, "A*", null, MatchMode.BEGINNING, null, null, null, null, null);
|
|
231 | 231 |
Assert.assertEquals("There should be 11 Taxa",11, results.size()); |
232 | 232 |
|
233 | 233 |
//two accepted taxa in classification and 1 misapplied name with accepted name in classification |
234 |
results = taxonDao.getTaxaByName(true, true, true, false, "R*", classification, MatchMode.BEGINNING, null, null, null, null, null); |
|
234 |
results = taxonDao.getTaxaByName(true, true, true, false, false, "R*", classification, MatchMode.BEGINNING, null, null, null, null, null);
|
|
235 | 235 |
Assert.assertEquals("There should be 3 Taxa", 3, results.size()); |
236 | 236 |
|
237 | 237 |
//same as above because all taxa, synonyms and misapplied names starting with R are in the classification |
238 |
results = taxonDao.getTaxaByName(true, true, true, false, "R*", null, MatchMode.BEGINNING, null, null, null, null, null); |
|
238 |
results = taxonDao.getTaxaByName(true, true, true, false, false, "R*", null, MatchMode.BEGINNING, null, null, null, null, null);
|
|
239 | 239 |
Assert.assertEquals("There should be 3 Taxa", 3, results.size()); |
240 | 240 |
|
241 | 241 |
//find misapplied names with accepted taxon in the classification, the accepted taxa of two misapplied names are in the classification |
242 |
results = taxonDao.getTaxaByName(false, false, true, false, "*", classification, MatchMode.BEGINNING, null, null, null, null, null); |
|
242 |
results = taxonDao.getTaxaByName(false, false, true, false, false, "*", classification, MatchMode.BEGINNING, null, null, null, null, null);
|
|
243 | 243 |
Assert.assertEquals("There should be 2 Taxa", 2, results.size()); |
244 | 244 |
|
245 | 245 |
//find misapplied names beginning with R |
246 |
results = taxonDao.getTaxaByName(false, false, true, false, "R*", null, MatchMode.BEGINNING, null, null, null, null, null); |
|
246 |
results = taxonDao.getTaxaByName(false, false, true, false, false, "R*", null, MatchMode.BEGINNING, null, null, null, null, null);
|
|
247 | 247 |
Assert.assertEquals("There should be 1 Taxa", 1, results.size()); |
248 | 248 |
|
249 | 249 |
//find all three misapplied names |
250 |
results = taxonDao.getTaxaByName(false, false, true, false, "*", null, MatchMode.BEGINNING, null, null, null, null, null); |
|
250 |
results = taxonDao.getTaxaByName(false, false, true, false, false, "*", null, MatchMode.BEGINNING, null, null, null, null, null);
|
|
251 | 251 |
Assert.assertEquals("There should be 3 Taxa", 3, results.size()); |
252 | 252 |
|
253 | 253 |
} |
... | ... | |
261 | 261 |
Reference sec = referenceDao.findById(1); |
262 | 262 |
assert sec != null : "sec must exist"; |
263 | 263 |
|
264 |
List<UuidAndTitleCache<IdentifiableEntity>> results = taxonDao.getTaxaByNameForEditor(true, true, false,false,"Acher", null, MatchMode.BEGINNING, null); |
|
264 |
List<UuidAndTitleCache<IdentifiableEntity>> results = taxonDao.getTaxaByNameForEditor(true, true, false,false, false, "Acher", null, MatchMode.BEGINNING, null);
|
|
265 | 265 |
assertNotNull("getTaxaByName should return a List", results); |
266 | 266 |
assertFalse("The list should not be empty", results.isEmpty()); |
267 | 267 |
assertEquals(4, results.size()); |
268 | 268 |
|
269 | 269 |
|
270 |
results = taxonDao.getTaxaByNameForEditor(true, true, false, false,"A",null, MatchMode.BEGINNING, null); |
|
270 |
results = taxonDao.getTaxaByNameForEditor(true, true, false, false,false,"A",null, MatchMode.BEGINNING, null);
|
|
271 | 271 |
assertNotNull("getTaxaByName should return a List", results); |
272 | 272 |
assertEquals(7, results.size()); |
273 | 273 |
|
274 | 274 |
|
275 |
results = taxonDao.getTaxaByNameForEditor(true, false,false, false,"A", null,MatchMode.BEGINNING, null); |
|
275 |
results = taxonDao.getTaxaByNameForEditor(true, false,false, false,false, "A", null,MatchMode.BEGINNING, null);
|
|
276 | 276 |
assertNotNull("getTaxaByName should return a List", results); |
277 | 277 |
assertEquals(5, results.size()); |
278 | 278 |
assertEquals(results.get(0).getType(), Taxon.class); |
279 | 279 |
|
280 |
results = taxonDao.getTaxaByNameForEditor(false, true,false,false, "A", null,MatchMode.BEGINNING, null); |
|
280 |
results = taxonDao.getTaxaByNameForEditor(false, true,false,false, false,"A", null,MatchMode.BEGINNING, null);
|
|
281 | 281 |
assertNotNull("getTaxaByName should return a List", results); |
282 | 282 |
assertEquals(2, results.size()); |
283 | 283 |
assertEquals(results.get(0).getType(), Synonym.class); |
284 | 284 |
|
285 |
results = taxonDao.getTaxaByNameForEditor(true, true,false,false,"Aus", null,MatchMode.EXACT, null); |
|
285 |
results = taxonDao.getTaxaByNameForEditor(true, true,false,false,false,"Aus", null,MatchMode.EXACT, null);
|
|
286 | 286 |
assertNotNull("getTaxaByName should return a List", results); |
287 | 287 |
assertEquals("Results list should contain one entity",1,results.size()); |
288 | 288 |
|
289 |
results = taxonDao.getTaxaByNameForEditor(true, true,true,false,"A", null,MatchMode.BEGINNING, null); |
|
289 |
results = taxonDao.getTaxaByNameForEditor(true, true,true,false,false,"A", null,MatchMode.BEGINNING, null);
|
|
290 | 290 |
assertNotNull("getTaxaByName should return a List", results); |
291 | 291 |
assertEquals("Results list should contain one entity", 8, results.size()); |
292 | 292 |
|
... | ... | |
326 | 326 |
// 1. searching for a taxon (Rethera) |
327 | 327 |
//long numberOfTaxa = taxonDao.countTaxaByName(Taxon.class, "Rethera", null, MatchMode.BEGINNING, namedAreas); |
328 | 328 |
|
329 |
List<TaxonBase> results = taxonDao.getTaxaByName(true,false, false, false, "Rethera", null, MatchMode.BEGINNING, namedAreas, |
|
329 |
List<TaxonBase> results = taxonDao.getTaxaByName(true,false, false, false, false,"Rethera", null, MatchMode.BEGINNING, namedAreas,
|
|
330 | 330 |
null, null, null, null); |
331 | 331 |
assertNotNull("getTaxaByName should return a List", results); |
332 | 332 |
assertTrue("expected to find two taxa but found "+results.size(), results.size() == 2); |
333 | 333 |
|
334 | 334 |
// 2. searching for a taxon (Rethera) contained in a specific classification |
335 |
results = taxonDao.getTaxaByName(true, false, false, false, "Rethera", taxonmicTree, MatchMode.BEGINNING, namedAreas, |
|
335 |
results = taxonDao.getTaxaByName(true, false, false, false, false,"Rethera", taxonmicTree, MatchMode.BEGINNING, namedAreas,
|
|
336 | 336 |
null, null, null, null); |
337 | 337 |
assertNotNull("getTaxaByName should return a List", results); |
338 | 338 |
assertTrue("expected to find one taxon but found "+results.size(), results.size() == 1); |
339 | 339 |
|
340 | 340 |
|
341 | 341 |
// 3. searching for Synonyms |
342 |
results = taxonDao.getTaxaByName(false, true, false, false, "Atropo", null, MatchMode.ANYWHERE, null, |
|
342 |
results = taxonDao.getTaxaByName(false, true, false, false, false,"Atropo", null, MatchMode.ANYWHERE, null,
|
|
343 | 343 |
null, null, null, null); |
344 | 344 |
assertNotNull("getTaxaByName should return a List", results); |
345 | 345 |
/*System.err.println(results.get(0).getTitleCache() + " - " +results.get(1).getTitleCache() + " - " +results.get(2).getTitleCache() ); |
... | ... | |
350 | 350 |
assertTrue("expected to find three taxa but found "+results.size(), results.size() == 3); |
351 | 351 |
|
352 | 352 |
// 4. searching for Synonyms |
353 |
results = taxonDao.getTaxaByName(false, true, false, false, "Atropo", null, MatchMode.BEGINNING, null, |
|
353 |
results = taxonDao.getTaxaByName(false, true, false, false, false,"Atropo", null, MatchMode.BEGINNING, null,
|
|
354 | 354 |
null, null, null, null); |
355 | 355 |
assertNotNull("getTaxaByName should return a List", results); |
356 | 356 |
assertTrue("expected to find three taxa but found "+results.size(), results.size() == 3); |
357 | 357 |
|
358 | 358 |
|
359 | 359 |
// 5. searching for a Synonyms and Taxa |
360 |
results = taxonDao.getTaxaByName(true, true, false, false, "A", null, MatchMode.BEGINNING, namedAreas, |
|
360 |
results = taxonDao.getTaxaByName(true, true, false, false, false,"A", null, MatchMode.BEGINNING, namedAreas,
|
|
361 | 361 |
null, null, null, null); |
362 | 362 |
//only five taxa have a distribution |
363 | 363 |
assertNotNull("getTaxaByName should return a List", results); |
... | ... | |
438 | 438 |
int numberOfClassifications = classificationDao.count(); |
439 | 439 |
List<String> propertyPaths = new ArrayList<>(); |
440 | 440 |
propertyPaths.add("taxonNodes"); |
441 |
List<TaxonBase> taxa = taxonDao.getTaxaByName(true, true, false, false, "P", null, MatchMode.BEGINNING, null, null, null, null, null); |
|
441 |
List<TaxonBase> taxa = taxonDao.getTaxaByName(true, true, false, false, false,"P", null, MatchMode.BEGINNING, null, null, null, null, null);
|
|
442 | 442 |
Taxon taxon = (Taxon)taxa.get(0); |
443 | 443 |
Set<TaxonNode> nodes = taxon.getTaxonNodes(); |
444 | 444 |
assertTrue(nodes.size() == 1); |
... | ... | |
479 | 479 |
@Test |
480 | 480 |
@DataSet |
481 | 481 |
public void testCountTaxaByName() { |
482 |
long numberOfTaxa = taxonDao.countTaxaByName(true, false, false, false, "A", null, MatchMode.BEGINNING, null); |
|
482 |
long numberOfTaxa = taxonDao.countTaxaByName(true, false, false, false,false, "A", null, MatchMode.BEGINNING, null);
|
|
483 | 483 |
assertEquals(5, numberOfTaxa); |
484 |
numberOfTaxa = taxonDao.countTaxaByName(true, false, false, false, "Smerinthus kindermannii", null, MatchMode.EXACT, null); |
|
484 |
numberOfTaxa = taxonDao.countTaxaByName(true, false, false, false, false,"Smerinthus kindermannii", null, MatchMode.EXACT, null);
|
|
485 | 485 |
assertEquals(1, numberOfTaxa); |
486 |
numberOfTaxa = taxonDao.countTaxaByName(false, true, false, false, "A", null, MatchMode.BEGINNING, null); |
|
486 |
numberOfTaxa = taxonDao.countTaxaByName(false, true, false, false, false,"A", null, MatchMode.BEGINNING, null);
|
|
487 | 487 |
assertEquals(2, numberOfTaxa); |
488 |
numberOfTaxa = taxonDao.countTaxaByName(true, true, false, false, "A", null, MatchMode.BEGINNING, null); |
|
488 |
numberOfTaxa = taxonDao.countTaxaByName(true, true, false, false, false,"A", null, MatchMode.BEGINNING, null);
|
|
489 | 489 |
assertEquals(7, numberOfTaxa); |
490 |
numberOfTaxa = taxonDao.countTaxaByName(true, true, false, false, "Aasfwerfwf fffe", null, MatchMode.BEGINNING, null); |
|
490 |
numberOfTaxa = taxonDao.countTaxaByName(true, true, false, false,false, "Aasfwerfwf fffe", null, MatchMode.BEGINNING, null);
|
|
491 | 491 |
assertEquals(0, numberOfTaxa); |
492 | 492 |
// FIXME implement test for search in specific classification |
493 | 493 |
// Reference reference = referenceDao.findByUuid(UUID.fromString("596b1325-be50-4b0a-9aa2-3ecd610215f2")); |
... | ... | |
1093 | 1093 |
assertFalse("the list should not be empty", commonNameResults.isEmpty()); |
1094 | 1094 |
assertEquals("There should be one Taxon with common name", 1,commonNameResults.size()); |
1095 | 1095 |
assertEquals(" sec. ???", ((TaxonBase)commonNameResults.get(0)).getTitleCache()); |
1096 |
|
|
1097 |
List<UuidAndTitleCache<IdentifiableEntity>> list = taxonDao.getTaxaByCommonNameForEditor("common%", null, MatchMode.BEGINNING, null); |
|
1098 |
|
|
1099 |
assertNotNull("getTaxaByCommonName should return a list", commonNameResults); |
|
1100 |
assertFalse("the list should not be empty", commonNameResults.isEmpty()); |
|
1101 |
assertEquals("There should be one Taxon with common name", 1,commonNameResults.size()); |
|
1102 |
assertEquals(" sec. ???", ((TaxonBase)commonNameResults.get(0)).getTitleCache()); |
|
1096 | 1103 |
} |
1097 | 1104 |
|
1098 | 1105 |
@Test |
Also available in: Unified diff
fix #6296: include the common name search into the search query of taxa and synonyms