package org.gbif.checklistbank.service.mybatis; import org.gbif.api.model.checklistbank.Distribution; import org.gbif.api.model.common.paging.Pageable; import org.gbif.api.model.common.paging.PagingRequest; import org.gbif.api.service.checklistbank.DistributionService; import org.gbif.api.vocabulary.Country; import org.gbif.api.vocabulary.EstablishmentMeans; import org.gbif.api.vocabulary.OccurrenceStatus; import org.gbif.api.vocabulary.ThreatStatus; import java.util.List; import java.util.Map; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; public class DistributionServiceMyBatisIT extends MyBatisServiceITBase<DistributionService> { public DistributionServiceMyBatisIT() { super(DistributionService.class); } private final Integer USAGE_ID = 100000007; @Test public void testListByChecklistUsage() { List<Distribution> distributions = service.listByUsage(USAGE_ID, null).getResults(); assertEquals(4, distributions.size()); // #15 Distribution distribution = distributions.get(0); // this is a checklist record, sourceTaxonKey should only exist for nub records assertNull(distribution.getSourceTaxonKey()); assertEquals("no notes", distribution.getRemarks()); assertEquals(Country.BRAZIL, distribution.getCountry()); assertEquals("iso:br", distribution.getLocationId()); assertEquals("brazil", distribution.getLocality()); assertEquals(EstablishmentMeans.INVASIVE, distribution.getEstablishmentMeans()); assertEquals(OccurrenceStatus.PRESENT, distribution.getStatus()); assertEquals(ThreatStatus.NEAR_THREATENED, distribution.getThreatStatus()); assertEquals("Hecht-Markou, 1995", distribution.getSource()); assertNull(distribution.getAppendixCites()); assertNull(distribution.getStartDayOfYear()); assertNull(distribution.getLifeStage()); assertNull(distribution.getTemporal()); for (Distribution d : distributions) { assertNull(d.getSourceTaxonKey()); assertNotNull(d.getCountry()); assertEquals(OccurrenceStatus.PRESENT, d.getStatus()); } assertEquals(Country.BRAZIL, distributions.get(0).getCountry()); // #15 assertEquals(Country.FRANCE, distributions.get(1).getCountry()); // #16 assertEquals(Country.PERU, distributions.get(2).getCountry()); // #17 assertEquals(Country.SURINAME, distributions.get(3).getCountry()); // #18 // TEST PAGING Pageable page = new PagingRequest(0, 1); Distribution d1 = service.listByUsage(USAGE_ID, page).getResults().get(0); page = new PagingRequest(1, 1); Distribution d2 = service.listByUsage(USAGE_ID, page).getResults().get(0); assertEquals(d1, distributions.get(0)); assertEquals(d2, distributions.get(1)); } @Test public void testListByRange() { Map<Integer, List<Distribution>> map = ((DistributionServiceMyBatis) service).listRange(1, 100000020); assertEquals(1, map.size()); List<Distribution> records = map.get(100000007); assertEquals(4, records.size()); for (Distribution v : records) { assertNull(v.getSourceTaxonKey()); } } }