package org.jabref.logic.importer.fileformat;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import org.jabref.logic.bibtex.BibEntryAssert;
import org.jabref.logic.util.FileExtensions;
import org.jabref.model.entry.BibEntry;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameter;
import org.junit.runners.Parameterized.Parameters;
import static org.junit.Assert.assertEquals;
@RunWith(Parameterized.class)
public class SilverPlatterImporterTest {
private SilverPlatterImporter testImporter;
@Parameter
public String filename;
public Path txtFile;
public String bibName;
@Before
public void setUp() throws Exception {
testImporter = new SilverPlatterImporter();
txtFile = Paths.get(SilverPlatterImporterTest.class.getResource(filename + ".txt").toURI());
bibName = filename + ".bib";
}
@Test
public void testsGetExtensions() {
assertEquals(FileExtensions.SILVER_PLATTER, testImporter.getExtensions());
}
@Test
public void testGetDescription() {
assertEquals("Imports a SilverPlatter exported file.", testImporter.getDescription());
}
@Parameters(name = "{index}: {0}")
public static Collection<Object[]> fileNames() {
Object[][] data = new Object[][] {{"SilverPlatterImporterTest1"}, {"SilverPlatterImporterTest2"}};
return Arrays.asList(data);
}
@Test
public final void testIsRecognizedFormat() throws Exception {
Assert.assertTrue(testImporter.isRecognizedFormat(txtFile, StandardCharsets.UTF_8));
}
@Test
public final void testImportEntries() throws Exception {
try (InputStream bibIn = SilverPlatterImporterTest.class.getResourceAsStream(bibName)) {
List<BibEntry> entries = testImporter.importDatabase(txtFile, StandardCharsets.UTF_8).getDatabase()
.getEntries();
BibEntryAssert.assertEquals(bibIn, entries);
}
}
}