package org.gbif.checklistbank.service.mybatis;
import org.gbif.api.model.common.Identifier;
import org.gbif.api.model.common.paging.Pageable;
import org.gbif.api.model.common.paging.PagingRequest;
import org.gbif.api.service.checklistbank.IdentifierService;
import org.gbif.api.vocabulary.IdentifierType;
import java.util.List;
import java.util.Set;
import com.google.common.collect.Sets;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
public class IdentifierServiceMyBatisIT extends MyBatisServiceITBase<IdentifierService> {
public IdentifierServiceMyBatisIT() {
super(IdentifierService.class);
}
private final Integer USAGE_ID = 100000007;
@Test
public void testListByUsage() {
List<Identifier> ids = service.listByUsage(USAGE_ID, null).getResults();
assertEquals(3, ids.size());
Set<IdentifierType> types = Sets.newHashSet(IdentifierType.DOI, IdentifierType.URL, IdentifierType.LSID);
for (Identifier id : ids) {
switch (id.getType()) {
case LSID:
assertEquals("urn:lsid:catalogueoflife.org:taxon:df0a319c-29c1-102b-9a4a-00304854f820:col20120721",
id.getIdentifier());
assertNull(id.getTitle());
break;
case DOI:
assertEquals("doi:10.1038/6905528", id.getIdentifier());
assertNull(id.getTitle());
break;
case URL:
assertEquals("http://www.itis.gov/servlet/SingleRpt/SingleRpt?search_topic=TSN&search_value=632417",
id.getIdentifier());
assertNull(id.getTitle());
break;
default:
fail("Unkown Identifier");
}
types.remove(id.getType());
}
assertTrue(types.isEmpty());
// TEST PAGING
Pageable page = new PagingRequest(0, 1);
Identifier d1 = service.listByUsage(USAGE_ID, page).getResults().get(0);
page = new PagingRequest(1, 1);
Identifier d2 = service.listByUsage(USAGE_ID, page).getResults().get(0);
assertEquals(d1, ids.get(0));
assertEquals(d2, ids.get(1));
}
}