package org.datacite.conres;
import org.datacite.conres.model.Model;
import org.datacite.conres.service.impl.MockSearchServiceImpl;
import org.junit.Test;
import javax.ws.rs.core.MediaType;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
import static org.junit.Assert.*;
public class ModelTest {
@Test
public void parsingTest1(){
byte[] xml = TestUtil.loadData(getClass(), "/test1.xml");
assertNotNull(xml);
assertTrue(xml.length != 0);
Map<MediaType,URI> media = new HashMap<MediaType, URI>();
Model m = new Model(MockSearchServiceImpl.TEST_DOI, xml, media, null, null, null, null, null, null);
assertEquals(3, m.getCreators().size());
assertEquals(1, m.getTitles().size());
assertEquals("Radiolaria abundance of Hole 24-232A", m.getTitles().get(0).getValue());
assertTrue(m.getPublisher().startsWith("PANGAEA"));
assertEquals("2005", m.getPublicationYear());
assertEquals(32, m.getSubjects().size());
assertEquals("Leg24", m.getSubjects().get(29).getValue());
assertEquals("eng", m.getLanguage());
assertEquals(1, m.getResourceTypes().size());
assertEquals("Dataset", m.getResourceTypes().get(0).getKey());
assertEquals("Dataset", m.getResourceTypes().get(0).getValue());
assertEquals("Cites", m.getRelatedIdentifiers().get(0).getKey());
assertEquals("doi:10.2973/dsdp.proc.24.1974", m.getRelatedIdentifiers().get(0).getValue());
assertTrue(m.getSizes().get(0).startsWith("204"));
assertEquals("text/tab-separated-values", m.getFormats().get(0));
}
@Test
public void parsingTest2(){
byte[] xml = TestUtil.loadData(getClass(), "/test2.xml");
assertNotNull(xml);
assertTrue(xml.length != 0);
Map<MediaType,URI> media = new HashMap<MediaType, URI>();
Model m = new Model(MockSearchServiceImpl.TEST_DOI, xml, media, null, null, null, null, null, null);
assertEquals(1, m.getResourceTypes().size());
assertEquals("Text", m.getResourceTypes().get(0).getKey());
assertEquals("Report", m.getResourceTypes().get(0).getValue());
assertEquals("IsPartOf", m.getRelatedIdentifiers().get(0).getKey());
assertEquals("doi:10.5284/1000328", m.getRelatedIdentifiers().get(0).getValue());
assertEquals("ADS Grey Lit ID", m.getAlternateIdentifiers().get(0).getKey());
assertEquals("12824", m.getAlternateIdentifiers().get(0).getValue());
assertEquals("OASIS ID", m.getAlternateIdentifiers().get(1).getKey());
assertEquals("universi1-17791", m.getAlternateIdentifiers().get(1).getValue());
assertTrue(m.getSizes().get(0).startsWith("1"));
assertEquals("PDF", m.getFormats().get(0));
assertTrue(m.getRights().get(0).startsWith("http"));
assertEquals("Other", m.getDescriptions().get(0).getKey());
assertTrue(m.getDescriptions().get(0).getValue().startsWith("A4"));
}
@Test
public void parsingTest3(){
byte[] xml = TestUtil.loadData(getClass(), "/test3.xml");
assertNotNull(xml);
assertTrue(xml.length != 0);
Map<MediaType,URI> media = new HashMap<MediaType, URI>();
Model m = new Model(MockSearchServiceImpl.TEST_DOI, xml, media, null, null, null, null, null, null);
assertTrue(m.getTitles().get(0).getValue().startsWith("Diabetes"));
assertEquals(2, m.getDescriptions().size());
assertTrue(m.getDescriptions().get(0).getValue().length() != 0);
assertTrue(m.getDescriptions().get(1).getValue().length() != 0);
assertEquals("Chapter 1<br />Chapter 2", m.getDescriptions().get(1).getValue());
assertEquals("Available", m.getDates().get(0).getKey());
assertEquals("2011-11-09", m.getDates().get(0).getValue());
}
@Test
public void parsingTest4(){
byte[] xml = TestUtil.loadData(getClass(), "/test4.xml");
assertNotNull(xml);
assertTrue(xml.length != 0);
Map<MediaType,URI> media = new HashMap<MediaType, URI>();
Model m = new Model(MockSearchServiceImpl.TEST_DOI, xml, media, null, null, null, null, null, null);
assertEquals("HostingInstitution", m.getContributors().get(0).getKey());
assertTrue(m.getContributors().get(0).getValue().startsWith("Institute"));
assertEquals("1.0", m.getVersion());
}
}