package org.gbif.checklistbank.service.mybatis.mapper; import org.gbif.api.model.checklistbank.VernacularName; import org.gbif.api.model.common.paging.PagingRequest; import org.gbif.api.vocabulary.Country; import org.gbif.api.vocabulary.Language; import org.gbif.api.vocabulary.LifeStage; import org.gbif.api.vocabulary.Sex; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; public class VernacularNameMapperTest extends MapperITBase<VernacularNameMapper> { public VernacularNameMapperTest() { super(VernacularNameMapper.class, true); } @Test public void testMapper() throws Exception { assertNull(mapper.getByChecklistUsage(usageKey, Language.ENGLISH.getIso2LetterCode())); assertNull(mapper.getByNubUsage(usageKey, Language.ENGLISH.getIso2LetterCode())); assertTrue(mapper.listByChecklistUsage(usageKey, new PagingRequest()).isEmpty()); assertTrue(mapper.listByNubUsage(usageKey, new PagingRequest()).isEmpty()); VernacularName v = new VernacularName(); v.setCountry(Country.AFGHANISTAN); v.setArea("kundus"); v.setLanguage(Language.AFAR); v.setLifeStage(LifeStage.EMRYO); v.setPlural(false); v.setPreferred(true); v.setSex(Sex.FEMALE); v.setVernacularName("Afghanische Gans"); // these should get ignored v.setSource("sourcy s"); v.setSourceTaxonKey(123); mapper.insert(usageKey, v, citationKey1); VernacularName v2 = mapper.getByChecklistUsage(usageKey, Language.AFAR.getIso2LetterCode()); assertEquals(v.getVernacularName(), v2.getVernacularName()); assertEquals(v.getLanguage(), v2.getLanguage()); assertEquals(v.getSex(), v2.getSex()); assertEquals(v.getLifeStage(), v2.getLifeStage()); assertEquals(v.isPlural(), v2.isPlural()); assertEquals(v.isPreferred(), v2.isPreferred()); assertEquals(v.getArea(), v2.getArea()); assertEquals(v.getCountry(), v2.getCountry()); // these are handled special assertEquals(citation1, v2.getSource()); assertNull(v2.getSourceTaxonKey()); VernacularName v3 = mapper.getByNubUsage(nubKey, Language.AFAR.getIso2LetterCode()); assertEquals(v.getVernacularName(), v3.getVernacularName()); assertEquals(v.getLanguage(), v3.getLanguage()); assertEquals(v.getSex(), v3.getSex()); assertEquals(v.getLifeStage(), v3.getLifeStage()); assertEquals(v.isPlural(), v3.isPlural()); assertEquals(v.isPreferred(), v3.isPreferred()); assertEquals(v.getArea(), v3.getArea()); assertEquals(v.getCountry(), v3.getCountry()); // these are now nub source usage values assertEquals(datasetTitle, v3.getSource()); assertEquals((Integer)usageKey, v3.getSourceTaxonKey()); } }