package org.gbif.occurrence.parsing.xml; import org.gbif.occurrence.model.RawOccurrenceRecord; import org.junit.Test; import static org.junit.Assert.assertEquals; public class Dwc14RecordParserTest extends ParserTestCase { @Test public void testParseBasicFields() { String fileName = getClass().getResource("/responses/dwc14/dwc14_all_simple_fields.gz").getFile(); RawOccurrenceRecord ror = setupRor(fileName).get(0); // System.out.println(ror.debugDump()); // common to all schemas assertEquals("UGENT", ror.getInstitutionCode()); assertEquals("vertebrata", ror.getCollectionCode()); assertEquals("PreservedSpecimen", ror.getBasisOfRecord()); assertEquals("200", ror.getMinAltitude()); assertEquals("400", ror.getMaxAltitude()); assertEquals("25", ror.getLatLongPrecision()); // common to dwc assertEquals("Alouatta villosa Gray, 1845", ror.getScientificName()); assertEquals("Gray, 1845", ror.getAuthor()); assertEquals("Animalia", ror.getKingdom()); assertEquals("Chordata", ror.getPhylum()); assertEquals("Mammalia", ror.getKlass()); assertEquals("Primates", ror.getOrder()); assertEquals("Atelidae", ror.getFamily()); assertEquals("Alouatta", ror.getGenus()); assertEquals("villosa", ror.getSpecies()); // dwc 1.4 only assertEquals("50058", ror.getCatalogueNumber()); assertEquals("UGENT:vertebrata:50058", ror.getId()); /** TODO: more complete sample */ } @Test public void testParseIdentifiers() { String fileName = getClass().getResource("/responses/dwc14/dwc14_idtype.gz").getFile(); RawOccurrenceRecord ror = setupRor(fileName).get(0); // showIdentifiers(ror); assertEquals(2, ror.getIdentifierRecords().size()); } @Test public void testParseTypification() { String fileName = getClass().getResource("/responses/dwc14/dwc14_typification.gz").getFile(); RawOccurrenceRecord ror = setupRor(fileName).get(0); /** TODO: find test record with types */ // showTypifications(ror); assertEquals(0, ror.getTypificationRecords().size()); // TypificationRecord typRecord = ror.getTypificationRecords().iterator().next(); // assertEquals("Fake species Linnaeus, 1771", typRecord.getScientificName()); // assertEquals("Fake title citation.", typRecord.getPublication()); // assertEquals("Holotype", typRecord.getTypeStatus()); // assertEquals("Some fake notes.", typRecord.getNotes()); } /** TODO: find test record with image(s) */ @Test public void testParseImages() { String fileName = getClass().getResource("/responses/dwc14/dwc14_images.gz").getFile(); RawOccurrenceRecord ror = setupRor(fileName).get(0); // showImages(ror); assertEquals(0, ror.getImageRecords().size()); // ImageRecord image = ror.getImageRecords().get(0); // assertEquals("http://biology.africamuseum.be/STERNAImages/Ornithology/SternaRMCADetails.php?image=_PHM7832", // image.getUrl()); // assertEquals("zoomable image", image.getDescription()); } /** TODO: find test record with links */ @Test public void testParseLinks() { String fileName = getClass().getResource("/responses/dwc14/dwc14_links.gz").getFile(); RawOccurrenceRecord ror = setupRor(fileName).get(0); // showLinks(ror); assertEquals(0, ror.getLinkRecords().size()); } }