Project

General

Profile

« Previous | Next » 

Revision 26ab7583

Added by Andreas Müller over 5 years ago

ref #7745 add subtree filter to taxon search (not yet tested for subtree != null)

View differences:

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