String classString;
if (doTaxa && doSynonyms){
classString = "TaxonBase";
- } else if (doTaxa){
+ } else if (doTaxa || doCommonNames){
classString = "Taxon";
} else if (doSynonyms){
classString = "Synonym";
}
if(!doCount){
String orderBy = " ORDER BY ";
- // String alphabeticBase = " case when t.name.genusOrUninomial like '\"%\"' then 1 else 0 end, t.name.genusOrUninomial , case when t.name.specificEpithet like '\"%\"' then 1 else 0 end, t.name.specificEpithet, t.name.rank desc, t.name.nameCache";
- String alphabeticBase = " t.name.nameCache";
+ String alphabeticBase = " t.name.genusOrUninomial, case when t.name.specificEpithet like '\"%\"' then 1 else 0 end, t.name.specificEpithet, t.name.rank desc, t.name.nameCache";
if (order == NameSearchOrder.LENGTH_ALPHA_NAME){
orderBy += " length(t.name.nameCache), " + alphabeticBase;
if (taxa.size()== 0 && synonyms.size() == 0){
return null;
}
- }else if(doTaxa){
+ }else if(doTaxa || doCommonNames || doIncludeMisappliedNames){
//find taxa
if (taxa.size()>0){
query.setParameterList("taxa", taxa );
results = taxonDao.getTaxaByName(false, false, true, false, false, "*", null, MatchMode.BEGINNING, null, null, null, null, null);
Assert.assertEquals("There should be 3 Taxa", 3, results.size());
+ }
+ /**
+ * Test for all not covered possibilities of searches
+ */
+ @Test
+ @DataSet (loadStrategy=CleanSweepInsertLoadStrategy.class, value="TaxonDaoHibernateImplTest.testGetTaxaByNameAndArea.xml")
+ public void testGetTaxaByNameVariants(){
+ List<TaxonBase> results = taxonDao.getTaxaByName(false, false, false, true, false, "c*", null, MatchMode.BEGINNING, null, null, null, null, null);
+ Assert.assertEquals("There should be 1 Taxa", 1, results.size());
+
+ results = taxonDao.getTaxaByName(false, false, true, true, false, "R*", null, MatchMode.BEGINNING, null, null, null, null, null);
+ Assert.assertEquals("There should be 1 Taxa", 1, results.size());
+
+ results = taxonDao.getTaxaByName(false, true, true, true, false, "R*", null, MatchMode.BEGINNING, null, null, null, null, null);
+ Assert.assertEquals("There should be 1 Taxa", 1, results.size());
+
+ results = taxonDao.getTaxaByName(false, true, false, true, false, "c*", null, MatchMode.BEGINNING, null, null, null, null, null);
+ Assert.assertEquals("There should be 1 Taxa", 1, results.size());
+
+ results = taxonDao.getTaxaByName(true, false, false, true, false, "c*", null, MatchMode.BEGINNING, null, null, null, null, null);
+ Assert.assertEquals("There should be 1 Taxa", 1, results.size());
+
}
/**