Revision 26ab7583
Added by Andreas Müller over 5 years ago
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonDaoHibernateImplTest.java | ||
---|---|---|
234 | 234 |
public void testGetTaxaByNameWithMisappliedNames(){ |
235 | 235 |
|
236 | 236 |
Classification classification = classificationDao.load(classificationUuid); |
237 |
|
|
237 |
TaxonNode subtree = null; |
|
238 | 238 |
/* NOTE: |
239 | 239 |
* The testdata contains 3 misapplied names (1. nameCache = Aus, 2. nameCache = Rethera, 3. nameCache = Daphnis), |
240 | 240 |
* two contained in the classification used in this test, |
... | ... | |
243 | 243 |
*/ |
244 | 244 |
//two accepted taxa starting with R in classification "TestBaum" |
245 | 245 |
@SuppressWarnings("rawtypes") |
246 |
List<TaxonBase> results = taxonDao.getTaxaByName(doTaxa, noSynonyms, noMisapplied, noCommonNames, false, "R*", classification, MatchMode.BEGINNING, |
|
246 |
List<TaxonBase> results = taxonDao.getTaxaByName(doTaxa, noSynonyms, noMisapplied, noCommonNames, false, "R*", classification, subtree, MatchMode.BEGINNING,
|
|
247 | 247 |
null, includeUnpublished, null, null, null, null); |
248 | 248 |
Assert.assertEquals("There should be 2 Taxa", 2, results.size()); |
249 | 249 |
|
250 | 250 |
//three taxa, 2 accepted and 1 misapplied name starting with R |
251 |
results = taxonDao.getTaxaByName(doTaxa, noSynonyms, doMisapplied, noCommonNames, false, "R*", null, MatchMode.BEGINNING, |
|
251 |
results = taxonDao.getTaxaByName(doTaxa, noSynonyms, doMisapplied, noCommonNames, false, "R*", null, subtree, MatchMode.BEGINNING,
|
|
252 | 252 |
null, includeUnpublished, null, null, null, null); |
253 | 253 |
Assert.assertEquals("There should be 3 Taxa", 3, results.size()); |
254 | 254 |
|
255 | 255 |
//one synonym has no accepted taxon |
256 |
results = taxonDao.getTaxaByName(doTaxa, doSynonyms, doMisapplied, noCommonNames, false, "A*", null, MatchMode.BEGINNING, |
|
256 |
results = taxonDao.getTaxaByName(doTaxa, doSynonyms, doMisapplied, noCommonNames, false, "A*", null, subtree, MatchMode.BEGINNING,
|
|
257 | 257 |
null, includeUnpublished, null, null, null, null); |
258 | 258 |
Assert.assertEquals("There should be 11 Taxa",11, results.size()); |
259 | 259 |
|
260 | 260 |
//two accepted taxa in classification and 1 misapplied name with accepted name in classification |
261 |
results = taxonDao.getTaxaByName(doTaxa, doSynonyms, doMisapplied, noCommonNames, false, "R*", classification, MatchMode.BEGINNING, |
|
261 |
results = taxonDao.getTaxaByName(doTaxa, doSynonyms, doMisapplied, noCommonNames, false, "R*", classification, subtree, MatchMode.BEGINNING,
|
|
262 | 262 |
null, includeUnpublished, null, null, null, null); |
263 | 263 |
Assert.assertEquals("There should be 3 Taxa", 3, results.size()); |
264 | 264 |
//same with unpublished |
265 | 265 |
includeUnpublished = false; |
266 |
results = taxonDao.getTaxaByName(doTaxa, doSynonyms, doMisapplied, noCommonNames, false, "R*", classification, MatchMode.BEGINNING, |
|
266 |
results = taxonDao.getTaxaByName(doTaxa, doSynonyms, doMisapplied, noCommonNames, false, "R*", classification, subtree, MatchMode.BEGINNING,
|
|
267 | 267 |
null, includeUnpublished, null, null, null, null); |
268 | 268 |
Assert.assertEquals("There should be 3 Taxa", 3, results.size()); |
269 | 269 |
includeUnpublished = true; |
270 | 270 |
|
271 | 271 |
|
272 | 272 |
//same as above because all taxa, synonyms and misapplied names starting with R are in the classification |
273 |
results = taxonDao.getTaxaByName(doTaxa, doSynonyms, doMisapplied, noCommonNames, false, "R*", null, MatchMode.BEGINNING, |
|
273 |
results = taxonDao.getTaxaByName(doTaxa, doSynonyms, doMisapplied, noCommonNames, false, "R*", null, subtree, MatchMode.BEGINNING,
|
|
274 | 274 |
null, includeUnpublished, null, null, null, null); |
275 | 275 |
Assert.assertEquals("There should be 3 Taxa", 3, results.size()); |
276 | 276 |
|
277 | 277 |
//find misapplied names with accepted taxon in the classification, the accepted taxa of two misapplied names are in the classification |
278 |
results = taxonDao.getTaxaByName(noTaxa, noSynonyms, doMisapplied, noCommonNames, false, "*", classification, MatchMode.BEGINNING, |
|
278 |
results = taxonDao.getTaxaByName(noTaxa, noSynonyms, doMisapplied, noCommonNames, false, "*", classification, subtree, MatchMode.BEGINNING,
|
|
279 | 279 |
null, includeUnpublished, null, null, null, null); |
280 | 280 |
Assert.assertEquals("There should be 2 Taxa", 2, results.size()); |
281 | 281 |
|
282 | 282 |
//find misapplied names beginning with R |
283 |
results = taxonDao.getTaxaByName(noTaxa, noSynonyms, doMisapplied, noCommonNames, false, "R*", null, MatchMode.BEGINNING, |
|
283 |
results = taxonDao.getTaxaByName(noTaxa, noSynonyms, doMisapplied, noCommonNames, false, "R*", null, subtree, MatchMode.BEGINNING,
|
|
284 | 284 |
null, includeUnpublished, null, null, null, null); |
285 | 285 |
Assert.assertEquals("There should be 1 Taxa", 1, results.size()); |
286 | 286 |
|
287 | 287 |
//find all three misapplied names |
288 |
results = taxonDao.getTaxaByName(noTaxa, noSynonyms, doMisapplied, noCommonNames, false, "*", null, MatchMode.BEGINNING, |
|
288 |
results = taxonDao.getTaxaByName(noTaxa, noSynonyms, doMisapplied, noCommonNames, false, "*", null, subtree, MatchMode.BEGINNING,
|
|
289 | 289 |
null, includeUnpublished, null, null, null, null); |
290 | 290 |
Assert.assertEquals("There should be 3 Taxa", 3, results.size()); |
291 | 291 |
|
... | ... | |
296 | 296 |
@Test |
297 | 297 |
@DataSet (loadStrategy=CleanSweepInsertLoadStrategy.class, value="TaxonDaoHibernateImplTest.testGetTaxaByNameAndArea.xml") |
298 | 298 |
public void testGetTaxaByNameVariants(){ |
299 |
TaxonNode subtree = null; |
|
299 | 300 |
@SuppressWarnings("rawtypes") |
300 |
List<TaxonBase> results = taxonDao.getTaxaByName(noTaxa, noSynonyms, noMisapplied, doCommonNames, false, "c*", null, MatchMode.BEGINNING, |
|
301 |
List<TaxonBase> results = taxonDao.getTaxaByName(noTaxa, noSynonyms, noMisapplied, doCommonNames, false, "c*", null, subtree, MatchMode.BEGINNING,
|
|
301 | 302 |
null, includeUnpublished, null, null, null, null); |
302 | 303 |
Assert.assertEquals("There should be 2 Taxa",2, results.size()); |
303 | 304 |
|
304 |
results = taxonDao.getTaxaByName(noTaxa, noSynonyms, doMisapplied, doCommonNames, false, "R*", null, MatchMode.BEGINNING, |
|
305 |
results = taxonDao.getTaxaByName(noTaxa, noSynonyms, doMisapplied, doCommonNames, false, "R*", null, subtree, MatchMode.BEGINNING,
|
|
305 | 306 |
null, includeUnpublished, null, null, null, null); |
306 | 307 |
Assert.assertEquals("There should be 1 Taxa", 1, results.size()); |
307 | 308 |
|
308 |
results = taxonDao.getTaxaByName(noTaxa, doSynonyms, doMisapplied, doCommonNames, false, "R*", null, MatchMode.BEGINNING, |
|
309 |
results = taxonDao.getTaxaByName(noTaxa, doSynonyms, doMisapplied, doCommonNames, false, "R*", null, subtree, MatchMode.BEGINNING,
|
|
309 | 310 |
null, includeUnpublished, null, null, null, null); |
310 | 311 |
Assert.assertEquals("There should be 1 Taxa", 1, results.size()); |
311 | 312 |
|
312 |
results = taxonDao.getTaxaByName(noTaxa, doSynonyms, noMisapplied, doCommonNames, false, "c*", null, MatchMode.BEGINNING, |
|
313 |
results = taxonDao.getTaxaByName(noTaxa, doSynonyms, noMisapplied, doCommonNames, false, "c*", null, subtree, MatchMode.BEGINNING,
|
|
313 | 314 |
null, includeUnpublished, null, null, null, null); |
314 | 315 |
Assert.assertEquals("There should be 2 Taxa", 2, results.size()); |
315 | 316 |
|
316 |
results = taxonDao.getTaxaByName(doTaxa, noSynonyms, noMisapplied, doCommonNames, false, "c*", null, MatchMode.BEGINNING, |
|
317 |
results = taxonDao.getTaxaByName(doTaxa, noSynonyms, noMisapplied, doCommonNames, false, "c*", null, subtree, MatchMode.BEGINNING,
|
|
317 | 318 |
null, includeUnpublished, null, null, null, null); |
318 | 319 |
Assert.assertEquals("There should be 2 Taxa", 2, results.size()); |
319 | 320 |
|
320 | 321 |
Classification classification = classificationDao.load(classificationUuid); |
321 |
results = taxonDao.getTaxaByName(noTaxa, noSynonyms, noMisapplied, doCommonNames, false, "c*", classification, MatchMode.BEGINNING, |
|
322 |
results = taxonDao.getTaxaByName(noTaxa, noSynonyms, noMisapplied, doCommonNames, false, "c*", classification, subtree, MatchMode.BEGINNING,
|
|
322 | 323 |
null, includeUnpublished, null, null, null, null); |
323 | 324 |
Assert.assertEquals("There should be 1 Taxa", 1, results.size()); |
324 | 325 |
|
325 | 326 |
Set<NamedArea> namedAreas = new HashSet<>(); |
326 | 327 |
namedAreas.add((NamedArea)definedTermDao.load(southernAmericaUuid)); |
327 |
results = taxonDao.getTaxaByName(noTaxa, noSynonyms, noMisapplied, doCommonNames, false, "c*", null, MatchMode.BEGINNING, |
|
328 |
results = taxonDao.getTaxaByName(noTaxa, noSynonyms, noMisapplied, doCommonNames, false, "c*", null, subtree, MatchMode.BEGINNING,
|
|
328 | 329 |
namedAreas, includeUnpublished, null, null, null, null); |
329 | 330 |
Assert.assertEquals("There should be 1 Taxa", 1, results.size()); |
330 | 331 |
} |
... | ... | |
335 | 336 |
@Test |
336 | 337 |
@DataSet |
337 | 338 |
public void testGetTaxaByNameForEditor() { |
339 |
TaxonNode subtree = null; |
|
338 | 340 |
Reference sec = referenceDao.findById(1); |
339 | 341 |
assert sec != null : "sec must exist"; |
340 | 342 |
|
341 | 343 |
@SuppressWarnings("rawtypes") |
342 | 344 |
List<UuidAndTitleCache<? extends IdentifiableEntity>> results = taxonDao.getTaxaByNameForEditor( |
343 |
doTaxa, doSynonyms, noMisapplied, noCommonNames, false, includeUnpublished, "Acher", null, MatchMode.BEGINNING, null, null); |
|
345 |
doTaxa, doSynonyms, noMisapplied, noCommonNames, false, includeUnpublished, "Acher", null, subtree, MatchMode.BEGINNING, null, null);
|
|
344 | 346 |
assertNotNull("getTaxaByName should return a List", results); |
345 | 347 |
assertFalse("The list should not be empty", results.isEmpty()); |
346 | 348 |
assertEquals(4, results.size()); |
347 | 349 |
|
348 | 350 |
|
349 |
results = taxonDao.getTaxaByNameForEditor(doTaxa, doSynonyms, noMisapplied, noCommonNames, false,includeUnpublished, "A",null, MatchMode.BEGINNING, null, null); |
|
351 |
results = taxonDao.getTaxaByNameForEditor(doTaxa, doSynonyms, noMisapplied, noCommonNames, false,includeUnpublished, "A",null, subtree, MatchMode.BEGINNING, null, null);
|
|
350 | 352 |
assertNotNull("getTaxaByName should return a List", results); |
351 | 353 |
assertEquals(7, results.size()); |
352 | 354 |
|
353 | 355 |
|
354 |
results = taxonDao.getTaxaByNameForEditor(doTaxa, noSynonyms, noMisapplied, noCommonNames, false, includeUnpublished, "A", null, MatchMode.BEGINNING, null, null); |
|
356 |
results = taxonDao.getTaxaByNameForEditor(doTaxa, noSynonyms, noMisapplied, noCommonNames, false, includeUnpublished, "A", null, subtree, MatchMode.BEGINNING, null, null);
|
|
355 | 357 |
assertNotNull("getTaxaByName should return a List", results); |
356 | 358 |
assertEquals(5, results.size()); |
357 | 359 |
assertEquals(results.get(0).getType(), Taxon.class); |
358 | 360 |
|
359 |
results = taxonDao.getTaxaByNameForEditor(noTaxa, doSynonyms, noMisapplied, noCommonNames, false, includeUnpublished, "A", null, MatchMode.BEGINNING, null, null); |
|
361 |
results = taxonDao.getTaxaByNameForEditor(noTaxa, doSynonyms, noMisapplied, noCommonNames, false, includeUnpublished, "A", null, subtree, MatchMode.BEGINNING, null, null);
|
|
360 | 362 |
assertNotNull("getTaxaByName should return a List", results); |
361 | 363 |
assertEquals(2, results.size()); |
362 | 364 |
assertEquals(results.get(0).getType(), Synonym.class); |
363 | 365 |
|
364 |
results = taxonDao.getTaxaByNameForEditor(doTaxa, doSynonyms, noMisapplied, noCommonNames, false,includeUnpublished, "Aus", null, MatchMode.EXACT, null, null); |
|
366 |
results = taxonDao.getTaxaByNameForEditor(doTaxa, doSynonyms, noMisapplied, noCommonNames, false,includeUnpublished, "Aus", null, subtree, MatchMode.EXACT, null, null);
|
|
365 | 367 |
assertNotNull("getTaxaByName should return a List", results); |
366 | 368 |
assertEquals("Results list should contain one entity",1,results.size()); |
367 | 369 |
|
368 |
results = taxonDao.getTaxaByNameForEditor(doTaxa, doSynonyms, doMisapplied, noCommonNames, false, includeUnpublished, "A", null, MatchMode.BEGINNING, null, null); |
|
370 |
results = taxonDao.getTaxaByNameForEditor(doTaxa, doSynonyms, doMisapplied, noCommonNames, false, includeUnpublished, "A", null, subtree, MatchMode.BEGINNING, null, null);
|
|
369 | 371 |
assertNotNull("getTaxaByName should return a List", results); |
370 | 372 |
assertEquals("Results list should contain one entity", 8, results.size()); |
371 | 373 |
|
... | ... | |
381 | 383 |
@Test |
382 | 384 |
@DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class, value="TaxonDaoHibernateImplTest.testGetTaxaByNameAndArea.xml") |
383 | 385 |
public void testGetTaxaByNameAndArea() { |
384 |
|
|
386 |
TaxonNode subtree = null; |
|
385 | 387 |
Set<NamedArea> namedAreas = new HashSet<>(); |
386 | 388 |
namedAreas.add((NamedArea)definedTermDao.load(northernAmericaUuid)); |
387 | 389 |
//namedAreas.add((NamedArea)definedTermDao.load(southernAmericaUuid)); |
388 | 390 |
//namedAreas.add((NamedArea)definedTermDao.load(antarcticaUuid)); |
389 | 391 |
|
390 |
Classification taxonmicTree = classificationDao.findByUuid(classificationUuid);
|
|
392 |
Classification classification = classificationDao.findByUuid(classificationUuid);
|
|
391 | 393 |
|
392 | 394 |
// prepare some synonym relation ships for some tests |
393 | 395 |
Synonym synAtroposAgassiz = (Synonym)taxonDao.findByUuid(atroposAgassiz); |
... | ... | |
406 | 408 |
//long numberOfTaxa = taxonDao.countTaxaByName(Taxon.class, "Rethera", null, MatchMode.BEGINNING, namedAreas); |
407 | 409 |
|
408 | 410 |
@SuppressWarnings("rawtypes") |
409 |
List<TaxonBase> results = taxonDao.getTaxaByName(doTaxa, noSynonyms, noMisapplied, noCommonNames, false, "Rethera", null, MatchMode.BEGINNING, namedAreas, |
|
411 |
List<TaxonBase> results = taxonDao.getTaxaByName(doTaxa, noSynonyms, noMisapplied, noCommonNames, false, "Rethera", null, subtree, MatchMode.BEGINNING, namedAreas,
|
|
410 | 412 |
includeUnpublished, null, null, null, null); |
411 | 413 |
assertNotNull("getTaxaByName should return a List", results); |
412 | 414 |
assertTrue("expected to find two taxa but found "+results.size(), results.size() == 2); |
413 | 415 |
|
414 |
results = taxonDao.getTaxaByName(noTaxa, noSynonyms, noMisapplied, doCommonNames, false, "com*", null, MatchMode.BEGINNING, namedAreas, |
|
416 |
results = taxonDao.getTaxaByName(noTaxa, noSynonyms, noMisapplied, doCommonNames, false, "com*", null, subtree, MatchMode.BEGINNING, namedAreas,
|
|
415 | 417 |
includeUnpublished, null, null, null, null); |
416 | 418 |
assertNotNull("getTaxaByName should return a List", results); |
417 | 419 |
assertTrue("expected to find one taxon but found "+results.size(), results.size() == 1); |
418 | 420 |
|
419 | 421 |
// 2. searching for a taxon (Rethera) contained in a specific classification |
420 |
results = taxonDao.getTaxaByName(doTaxa, noSynonyms, noMisapplied, noCommonNames, false, "Rethera", taxonmicTree, MatchMode.BEGINNING, namedAreas,
|
|
422 |
results = taxonDao.getTaxaByName(doTaxa, noSynonyms, noMisapplied, noCommonNames, false, "Rethera", classification, subtree, MatchMode.BEGINNING, namedAreas,
|
|
421 | 423 |
includeUnpublished, null, null, null, null); |
422 | 424 |
assertNotNull("getTaxaByName should return a List", results); |
423 | 425 |
assertTrue("expected to find one taxon but found "+results.size(), results.size() == 1); |
424 | 426 |
|
425 | 427 |
|
426 | 428 |
// 3. searching for Synonyms |
427 |
results = taxonDao.getTaxaByName(noTaxa, doSynonyms, noMisapplied, noCommonNames, false, "Atropo", null, MatchMode.ANYWHERE, null, |
|
429 |
results = taxonDao.getTaxaByName(noTaxa, doSynonyms, noMisapplied, noCommonNames, false, "Atropo", null, subtree, MatchMode.ANYWHERE, null,
|
|
428 | 430 |
includeUnpublished, null, null, null, null); |
429 | 431 |
assertNotNull("getTaxaByName should return a List", results); |
430 | 432 |
/*System.err.println(results.get(0).getTitleCache() + " - " +results.get(1).getTitleCache() + " - " +results.get(2).getTitleCache() ); |
... | ... | |
435 | 437 |
assertTrue("expected to find three taxa but found "+results.size(), results.size() == 3); |
436 | 438 |
|
437 | 439 |
// 4. searching for Synonyms |
438 |
results = taxonDao.getTaxaByName(noTaxa, doSynonyms, noMisapplied, noCommonNames, false,"Atropo", null, MatchMode.BEGINNING, null, |
|
440 |
results = taxonDao.getTaxaByName(noTaxa, doSynonyms, noMisapplied, noCommonNames, false,"Atropo", null, subtree, MatchMode.BEGINNING, null,
|
|
439 | 441 |
includeUnpublished, null, null, null, null); |
440 | 442 |
assertNotNull("getTaxaByName should return a List", results); |
441 | 443 |
assertTrue("expected to find three taxa but found "+results.size(), results.size() == 3); |
442 | 444 |
|
443 | 445 |
|
444 | 446 |
// 5. searching for a Synonyms and Taxa |
445 |
results = taxonDao.getTaxaByName(doTaxa, doSynonyms, noMisapplied, noCommonNames, false,"A", null, MatchMode.BEGINNING, namedAreas, |
|
447 |
results = taxonDao.getTaxaByName(doTaxa, doSynonyms, noMisapplied, noCommonNames, false,"A", null, subtree, MatchMode.BEGINNING, namedAreas,
|
|
446 | 448 |
includeUnpublished, null, null, null, null); |
447 | 449 |
//only five taxa have a distribution |
448 | 450 |
assertNotNull("getTaxaByName should return a List", results); |
... | ... | |
451 | 453 |
|
452 | 454 |
|
453 | 455 |
/** |
454 |
* Test method for {@link eu.etaxonomy.cdm.persistence.dao.hibernate.taxon.TaxonDaoHibernateImpl#findByNameTitleCache(Class<? extends TaxonBase>clazz, String queryString, Classification classification, MatchMode matchMode, Set<NamedArea> namedAreas, Integer pageNumber, Integer pageSize, List<String> propertyPaths)} |
|
456 |
* Test method for {@link eu.etaxonomy.cdm.persistence.dao.hibernate.taxon.TaxonDaoHibernateImpl#findByNameTitleCache(Class<? extends TaxonBase>clazz, String queryString, Classification classification, TaxonNode subtree, MatchMode matchMode, Set<NamedArea> namedAreas, Integer pageNumber, Integer pageSize, List<String> propertyPaths)}
|
|
455 | 457 |
* restricting the search by a set of Areas. |
456 | 458 |
*/ |
457 | 459 |
@Test |
458 | 460 |
@DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class, value="TaxonDaoHibernateImplTest.testGetTaxaByNameAndArea.xml") |
459 | 461 |
public void testFindByNameTitleCache() { |
462 |
TaxonNode subtree = null; |
|
460 | 463 |
|
461 | 464 |
Set<NamedArea> namedAreas = new HashSet<>(); |
462 | 465 |
namedAreas.add((NamedArea)definedTermDao.load(northernAmericaUuid)); |
... | ... | |
479 | 482 |
//long numberOfTaxa = taxonDao.countTaxaByName(Taxon.class, "Rethera", null, MatchMode.BEGINNING, namedAreas); |
480 | 483 |
|
481 | 484 |
@SuppressWarnings("rawtypes") |
482 |
List<TaxonBase> results = taxonDao.findByNameTitleCache(true, false, includeUnpublished, "Rethera Rothschild & Jordan, 1903", null, MatchMode.EXACT, namedAreas, |
|
485 |
List<TaxonBase> results = taxonDao.findByNameTitleCache(true, false, includeUnpublished, "Rethera Rothschild & Jordan, 1903", null, subtree, MatchMode.EXACT, namedAreas,
|
|
483 | 486 |
null, null, null, null); |
484 | 487 |
assertNotNull("getTaxaByName should return a List", results); |
485 | 488 |
assertTrue("expected to find two taxa but found "+results.size(), results.size() == 2); |
486 | 489 |
|
487 | 490 |
// 2. searching for a taxon (Rethera) contained in a specific classification |
488 |
results = taxonDao.findByNameTitleCache(true, false, includeUnpublished, "Rethera Rothschild & Jordan, 1903", classification, MatchMode.EXACT, namedAreas, |
|
491 |
results = taxonDao.findByNameTitleCache(true, false, includeUnpublished, "Rethera Rothschild & Jordan, 1903", classification, subtree, MatchMode.EXACT, namedAreas,
|
|
489 | 492 |
null, null, null, null); |
490 | 493 |
assertNotNull("getTaxaByName should return a List", results); |
491 | 494 |
assertTrue("expected to find one taxon but found "+results.size(), results.size() == 1); |
492 | 495 |
|
493 | 496 |
|
494 | 497 |
// 3. searching for Synonyms |
495 |
results = taxonDao.findByNameTitleCache(false, true, includeUnpublished, "*Atropo", null, MatchMode.ANYWHERE, null, |
|
498 |
results = taxonDao.findByNameTitleCache(false, true, includeUnpublished, "*Atropo", null, subtree, MatchMode.ANYWHERE, null,
|
|
496 | 499 |
null, null, null, null); |
497 | 500 |
assertNotNull("getTaxaByName should return a List", results); |
498 | 501 |
assertTrue("expected to find two taxa but found "+results.size(), results.size() == 2); |
499 | 502 |
|
500 | 503 |
// 4. searching for Synonyms |
501 |
results = taxonDao.findByNameTitleCache(false, true, includeUnpublished, "Atropo", null, MatchMode.BEGINNING, null, |
|
504 |
results = taxonDao.findByNameTitleCache(false, true, includeUnpublished, "Atropo", null, subtree, MatchMode.BEGINNING, null,
|
|
502 | 505 |
null, null, null, null); |
503 | 506 |
assertNotNull("getTaxaByName should return a List", results); |
504 | 507 |
assertTrue("expected to find two taxa but found "+results.size(), results.size() == 2); |
... | ... | |
511 | 514 |
tax.addSynonym(syn, SynonymType.HETEROTYPIC_SYNONYM_OF()); |
512 | 515 |
|
513 | 516 |
taxonDao.save(tax); |
514 |
results = taxonDao.findByNameTitleCache(true, true, includeUnpublished, "A", null, MatchMode.BEGINNING, namedAreas, |
|
517 |
results = taxonDao.findByNameTitleCache(true, true, includeUnpublished, "A", null, subtree, MatchMode.BEGINNING, namedAreas,
|
|
515 | 518 |
null, null, null, null); |
516 | 519 |
assertNotNull("getTaxaByName should return a List", results); |
517 | 520 |
assertTrue("expected to find 8 taxa but found "+results.size(), results.size() == 8); |
... | ... | |
520 | 523 |
@Test |
521 | 524 |
@DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class, value="TaxonDaoHibernateImplTest.testGetTaxaByNameAndArea.xml") |
522 | 525 |
public void testTaxonNameInTwoClassifications(){ |
526 |
TaxonNode subtree = null; |
|
523 | 527 |
List<String> propertyPaths = new ArrayList<>(); |
524 | 528 |
propertyPaths.add("taxonNodes"); |
525 | 529 |
@SuppressWarnings("rawtypes") |
526 |
List<TaxonBase> taxa = taxonDao.getTaxaByName(doTaxa, doSynonyms, noMisapplied, noCommonNames, false,"P", null, MatchMode.BEGINNING, |
|
530 |
List<TaxonBase> taxa = taxonDao.getTaxaByName(doTaxa, doSynonyms, noMisapplied, noCommonNames, false,"P", null, subtree, MatchMode.BEGINNING,
|
|
527 | 531 |
null, includeUnpublished, null, null, null, null); |
528 | 532 |
Taxon taxon = (Taxon)taxa.get(0); |
529 | 533 |
Set<TaxonNode> nodes = taxon.getTaxonNodes(); |
... | ... | |
535 | 539 |
@Test |
536 | 540 |
@DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class, value="TaxonDaoHibernateImplTest.testGetTaxaByNameAndArea.xml") |
537 | 541 |
public void testGetTaxaByNameProParteSynonym(){ |
538 |
|
|
542 |
TaxonNode subtree = null; |
|
539 | 543 |
@SuppressWarnings("rawtypes") |
540 |
List<TaxonBase> taxa = taxonDao.getTaxaByName(noTaxa, doSynonyms, noMisapplied, noCommonNames, false, "A", null, |
|
544 |
List<TaxonBase> taxa = taxonDao.getTaxaByName(noTaxa, doSynonyms, noMisapplied, noCommonNames, false, "A", null,subtree,
|
|
541 | 545 |
MatchMode.BEGINNING, null, includeUnpublished, null, null, null, null); |
542 | 546 |
Assert.assertEquals("2 synonyms and 1 pro parte synonym should be returned.", 3, taxa.size()); |
543 | 547 |
assertTrue("Pro parte should exist", existsInCollection(taxa, acherontiaLachesis)); |
... | ... | |
545 | 549 |
assertTrue("2. normal synonym should exist", existsInCollection(taxa, atroposOken)); |
546 | 550 |
//TODO shouldn't we also find orphaned synonyms (without accepted taxon) like Atropos Leach? |
547 | 551 |
|
548 |
taxa = taxonDao.getTaxaByName(noTaxa, doSynonyms, noMisapplied, noCommonNames, false, "A", null, |
|
552 |
taxa = taxonDao.getTaxaByName(noTaxa, doSynonyms, noMisapplied, noCommonNames, false, "A", null,subtree,
|
|
549 | 553 |
MatchMode.BEGINNING, null, NO_UNPUBLISHED, null, null, null, null); |
550 | 554 |
Assert.assertEquals("2 synonyms and no pro parte synonym should be returned.", 2, taxa.size()); |
551 | 555 |
assertTrue("Normal synonym should exist", existsInCollection(taxa, atroposAgassiz)); |
552 | 556 |
assertTrue("2. normal synonym should exist", existsInCollection(taxa, atroposOken)); |
553 | 557 |
|
554 |
taxa = taxonDao.getTaxaByName(noTaxa, noSynonyms, doMisapplied, noCommonNames, false, "A", null, |
|
558 |
taxa = taxonDao.getTaxaByName(noTaxa, noSynonyms, doMisapplied, noCommonNames, false, "A", null,subtree,
|
|
555 | 559 |
MatchMode.BEGINNING, null, includeUnpublished, null, null, null, null); |
556 | 560 |
Assert.assertEquals("1 misapplied name, no pro parte synonym should be returned.", 1, taxa.size()); |
557 | 561 |
assertTrue("Pro parte should exist", existsInCollection(taxa, aus)); |
... | ... | |
592 | 596 |
@Test |
593 | 597 |
@DataSet |
594 | 598 |
public void testCountTaxaByName() { |
595 |
long numberOfTaxa = taxonDao.countTaxaByName(true, false, false, false,false, "A", null, MatchMode.BEGINNING, null, includeUnpublished); |
|
599 |
TaxonNode subtree = null; |
|
600 |
long numberOfTaxa = taxonDao.countTaxaByName(true, false, false, false,false, "A", null, subtree, MatchMode.BEGINNING, null, includeUnpublished); |
|
596 | 601 |
assertEquals(5, numberOfTaxa); |
597 |
numberOfTaxa = taxonDao.countTaxaByName(true, false, false, false, false,"Smerinthus kindermannii", null, MatchMode.EXACT, null, includeUnpublished); |
|
602 |
numberOfTaxa = taxonDao.countTaxaByName(true, false, false, false, false,"Smerinthus kindermannii", null, subtree, MatchMode.EXACT, null, includeUnpublished);
|
|
598 | 603 |
assertEquals(1, numberOfTaxa); |
599 |
numberOfTaxa = taxonDao.countTaxaByName(false, true, false, false, false,"A", null, MatchMode.BEGINNING, null, includeUnpublished); |
|
604 |
numberOfTaxa = taxonDao.countTaxaByName(false, true, false, false, false,"A", null, subtree, MatchMode.BEGINNING, null, includeUnpublished);
|
|
600 | 605 |
assertEquals(2, numberOfTaxa); |
601 |
numberOfTaxa = taxonDao.countTaxaByName(true, true, false, false, false,"A", null, MatchMode.BEGINNING, null, includeUnpublished); |
|
606 |
numberOfTaxa = taxonDao.countTaxaByName(true, true, false, false, false,"A", null, subtree, MatchMode.BEGINNING, null, includeUnpublished);
|
|
602 | 607 |
assertEquals(7, numberOfTaxa); |
603 |
numberOfTaxa = taxonDao.countTaxaByName(true, true, false, false,false, "Aasfwerfwf fffe", null, MatchMode.BEGINNING, null, includeUnpublished); |
|
608 |
numberOfTaxa = taxonDao.countTaxaByName(true, true, false, false,false, "Aasfwerfwf fffe", null, subtree, MatchMode.BEGINNING, null, includeUnpublished);
|
|
604 | 609 |
assertEquals(0, numberOfTaxa); |
605 | 610 |
// FIXME implement test for search in specific classification |
606 | 611 |
// Reference reference = referenceDao.findByUuid(UUID.fromString("596b1325-be50-4b0a-9aa2-3ecd610215f2")); |
Also available in: Unified diff
ref #7745 add subtree filter to taxon search (not yet tested for subtree != null)