org.gbif.checklistbank.service.mybatis.MultimediaServiceMyBatisIT.java Source code

Java tutorial

Introduction

Here is the source code for org.gbif.checklistbank.service.mybatis.MultimediaServiceMyBatisIT.java

Source

package org.gbif.checklistbank.service.mybatis;

import org.gbif.api.model.checklistbank.NameUsageMediaObject;
import org.gbif.api.model.common.paging.Pageable;
import org.gbif.api.model.common.paging.PagingRequest;
import org.gbif.api.service.checklistbank.MultimediaService;
import org.gbif.api.vocabulary.MediaType;
import org.gbif.checklistbank.service.mybatis.postgres.DatabaseDrivenChecklistBankTestRule;

import java.net.URI;
import java.util.List;

import org.apache.commons.lang3.time.DateFormatUtils;
import org.junit.Rule;
import org.junit.Test;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;

public class MultimediaServiceMyBatisIT {

    private final Integer USAGE_ID = 100000025;

    @Rule
    public DatabaseDrivenChecklistBankTestRule<MultimediaService> ddt = new DatabaseDrivenChecklistBankTestRule<MultimediaService>(
            MultimediaService.class);

    @Test
    public void testListByChecklistUsage() {
        List<NameUsageMediaObject> images = ddt.getService().listByUsage(USAGE_ID, null).getResults();
        assertEquals(8, images.size());
        for (NameUsageMediaObject m : images) {
            assertNotNull(m.getIdentifier());
            assertNotNull(m.getType());
        }
        NameUsageMediaObject image = images.get(0); // 100010
        assertNull(image.getSourceTaxonKey());
        assertEquals("2008-01-01", DateFormatUtils.ISO_DATE_FORMAT.format(image.getCreated()));
        assertEquals("Prashanthns", image.getCreator());
        assertEquals("Eurasian Red Squirrel", image.getTitle());
        assertEquals("A Eurasian Red Squirrel seen from below. Photographed in Wagenigen, Nederlands.",
                image.getDescription());
        assertEquals(URI.create("http://upload.wikimedia.org/wikipedia/commons/e/e2/Eurasian_Red_Squirrel.jpg"),
                image.getIdentifier());
        assertEquals("Creative Commons Attribution 3.0 Unported", image.getLicense());
        assertNull(image.getPublisher());
        assertEquals(URI.create("http://en.wikipedia.org/wiki/File:Eurasian_Red_Squirrel.jpg"),
                image.getReferences());

        // TEST PAGING
        Pageable page = new PagingRequest(0, 1);
        NameUsageMediaObject d1 = ddt.getService().listByUsage(USAGE_ID, page).getResults().get(0);

        page = new PagingRequest(1, 1);
        NameUsageMediaObject d2 = ddt.getService().listByUsage(USAGE_ID, page).getResults().get(0);
        assertEquals(d1, images.get(0));
        assertEquals(d2, images.get(1));
    }

    @Test
    public void testBadUri() {
        List<NameUsageMediaObject> media = ddt.getService().listByUsage(100000030, null).getResults();
        assertEquals(2, media.size());
        // http less URL, should work
        NameUsageMediaObject img = media.get(0);
        assertNotNull(img);
        assertEquals(89, img.getCreated().getYear());
        assertEquals(10, img.getCreated().getMonth());
        assertEquals(URI.create(
                "http://www.wikimedia.org/wikipedia/commons/thumb/d/d8/Sciurus_anomalus_-_Jeita_Grotto.jpg/724px-Sciurus_anomalus_-_Jeita_Grotto.jpg"),
                img.getIdentifier());
        assertEquals(URI.create("http://www.gbif.org"), img.getReferences());
        assertEquals("Persian Squirrel in a cage", img.getDescription());
        assertEquals(MediaType.StillImage, img.getType());
        // citation instead of URI, should be ignored
        img = media.get(1);
        assertNotNull(img);
        assertEquals(89, img.getCreated().getYear());
        assertEquals(10, img.getCreated().getMonth());
        assertEquals("Persian Squirrel in a cage", img.getDescription());
        assertNull(img.getIdentifier());
        assertNull(img.getReferences());
        assertNull(img.getType());
    }

}