Project

General

Profile

« Previous | Next » 

Revision 8311a989

Added by Katja Luther over 7 years ago

fix #6296: include the common name search into the search query of taxa and synonyms

View differences:

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