package org.gbif.dwca.io;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import org.apache.commons.io.FilenameUtils;
import org.gbif.api.model.registry.Dataset;
import org.gbif.dwc.terms.DwcTerm;
import org.gbif.dwc.terms.Term;
import org.gbif.utils.file.FileUtils;
import org.junit.Test;
import java.io.File;
import java.util.Map;
import static org.junit.Assert.*;
/**
* Created by markus on 17/02/2017.
*/
public class DwcaStreamWriterTest {
@Test(expected = IllegalStateException.class)
public void writeEmpty() throws Exception {
File dwca = FileUtils.createTempDir();
try (DwcaStreamWriter dwcaWriter = new DwcaStreamWriter(dwca, DwcTerm.Taxon, DwcTerm.taxonID, true)){
} finally {
org.apache.commons.io.FileUtils.deleteQuietly(dwca);
}
}
@Test
public void write() throws Exception {
File dwca = FileUtils.createTempDir();
Map<Term, Integer> mapping = ImmutableMap.of(
DwcTerm.taxonID, 0,
DwcTerm.scientificName, 1,
DwcTerm.taxonRank, 2);
try (DwcaStreamWriter dwcaWriter = new DwcaStreamWriter(dwca, DwcTerm.Taxon, DwcTerm.taxonID, true)){
Dataset d = new Dataset();
d.setTitle("Abies of the Alps");
d.setDescription("Abies of the Alps excl Switzerland.");
dwcaWriter.setMetadata(d);
dwcaWriter.write(DwcTerm.Taxon, 0, mapping, ImmutableList.<String[]>builder()
.add(new String[] { "tax-1", "Abies Mill.", "genus" })
.add(new String[] { "tax-2", "Abies alba Mill.", "species" })
.add(new String[] { "tax-3", "Piceae abies L.", "species" })
.add(new String[] { "tax-4", "Piceae abies subsp. helvetica L.", "subspecies" })
.build()
);
} finally {
org.apache.commons.io.FileUtils.deleteQuietly(dwca);
}
}
}