package org.gbif.checklistbank.service.mybatis;
import org.gbif.api.model.checklistbank.DatasetMetrics;
import org.gbif.api.service.checklistbank.DatasetMetricsService;
import org.gbif.api.vocabulary.Kingdom;
import org.gbif.api.vocabulary.Language;
import org.gbif.api.vocabulary.NameUsageIssue;
import org.gbif.api.vocabulary.Origin;
import org.gbif.api.vocabulary.Rank;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import org.gbif.checklistbank.service.mybatis.postgres.ClbDbTestRule;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class DatasetMetricsServiceMyBatisIT extends MyBatisServiceITBase<DatasetMetricsService> {
public DatasetMetricsServiceMyBatisIT() {
super(DatasetMetricsService.class);
}
@Test
public void testInsert() {
DatasetMetricsServiceMyBatis srv = (DatasetMetricsServiceMyBatis) service;
srv.create(ClbDbTestRule.SQUIRRELS_DATASET_KEY, new Date());
DatasetMetrics d = service.get(ClbDbTestRule.SQUIRRELS_DATASET_KEY);
assertEquals(ClbDbTestRule.SQUIRRELS_DATASET_KEY, d.getDatasetKey());
assertEquals(44, d.getUsagesCount());
assertEquals(16, d.getSynonymsCount());
assertEquals(44, d.getDistinctNamesCount());
assertEquals(2, d.getNubMatchingCount());
assertEquals(0, d.getColMatchingCount());
assertEquals(0, d.getColCoveragePct());
assertEquals(44, d.getCountByOrigin(Origin.SOURCE));
assertEquals(2, d.getCountByKingdom(Kingdom.ANIMALIA));
assertEquals(0, d.getCountByKingdom(Kingdom.FUNGI));
assertEquals(2, d.getCountByRank(Rank.GENUS));
assertEquals(1, d.getCountByRank(Rank.PHYLUM));
assertEquals(10, d.getCountByRank(Rank.SUBSPECIES));
assertEquals(1, d.getCountByRank(Rank.FAMILY));
assertEquals(0, d.getCountNamesByLanguage(Language.DANISH));
assertEquals(2, d.getCountNamesByLanguage(Language.GERMAN));
assertEquals(1, d.getCountByIssue(NameUsageIssue.RANK_INVALID));
assertEquals(0, d.getCountByIssue(NameUsageIssue.BACKBONE_MATCH_NONE));
assertEquals(0, d.getCountByIssue(NameUsageIssue.CLASSIFICATION_NOT_APPLIED));
}
@Test
public void testGet() {
DatasetMetrics d = service.get(ClbDbTestRule.SQUIRRELS_DATASET_KEY);
assertEquals(ClbDbTestRule.SQUIRRELS_DATASET_KEY, d.getDatasetKey());
assertEquals(1000, d.getUsagesCount());
assertEquals(25, d.getColCoveragePct());
assertEquals(250, d.getColMatchingCount());
assertEquals(100, d.getCountByKingdom(Kingdom.ANIMALIA));
assertEquals(700, d.getCountByKingdom(Kingdom.PLANTAE));
assertEquals(0, d.getCountByKingdom(Kingdom.FUNGI));
assertEquals(120, d.getCountByRank(Rank.GENUS));
assertEquals(10, d.getCountByRank(Rank.PHYLUM));
assertEquals(4, d.getCountNamesByLanguage(Language.DANISH));
assertEquals(132, d.getCountNamesByLanguage(Language.GERMAN));
}
@Test
public void testList() {
List<DatasetMetrics> ds = service.list(ClbDbTestRule.SQUIRRELS_DATASET_KEY);
assertEquals(3, ds.size());
for (DatasetMetrics d : ds) {
assertEquals(ClbDbTestRule.SQUIRRELS_DATASET_KEY, d.getDatasetKey());
}
assertEquals(1000, ds.get(0).getUsagesCount());
assertEquals(200, ds.get(1).getUsagesCount());
assertEquals(100, ds.get(2).getUsagesCount());
}
}