diff --git a/src/main/java/net/sf/jabref/importer/CustomImporter.java b/src/main/java/net/sf/jabref/importer/CustomImporter.java index e4668770216..b74a6756e7d 100644 --- a/src/main/java/net/sf/jabref/importer/CustomImporter.java +++ b/src/main/java/net/sf/jabref/importer/CustomImporter.java @@ -60,13 +60,17 @@ public CustomImporter(List data) { } public CustomImporter(String name, String cliId, String className, String basePath) { - super(); + this(); this.name = name; this.cliId = cliId; this.className = className; this.basePath = basePath; } + public CustomImporter(ImportFormat importer) { + this(importer.getFormatName(), importer.getId(), importer.getClass().getName(), "src/main/java/net/sf/jabref/importer/fileformat/" + importer.getFormatName() + "Importer.java"); + } + public String getName() { return this.name; } @@ -113,7 +117,12 @@ public List getAsStringList() { @Override public boolean equals(Object o) { - return (o instanceof CustomImporter) && this.getName().equals(((CustomImporter) o).getName()); + boolean equalName = this.getName().equals(((CustomImporter) o).getName()); + boolean equalCliId = this.getClidId().equals(((CustomImporter) o).getClidId()); + boolean equalClassName = this.getClassName().equals(((CustomImporter) o).getClassName()); + boolean equalBasePath = this.getBasePath().equals(((CustomImporter) o).getBasePath()); + + return (o instanceof CustomImporter) && equalName && equalCliId && equalClassName && equalBasePath; } @Override diff --git a/src/test/java/net/sf/jabref/importer/CustomImporterTest.java b/src/test/java/net/sf/jabref/importer/CustomImporterTest.java new file mode 100644 index 00000000000..478817d7f3d --- /dev/null +++ b/src/test/java/net/sf/jabref/importer/CustomImporterTest.java @@ -0,0 +1,136 @@ +package net.sf.jabref.importer; + +import java.io.File; +import java.util.Arrays; +import java.util.List; + +import net.sf.jabref.Globals; +import net.sf.jabref.JabRefPreferences; +import net.sf.jabref.importer.fileformat.BibTeXMLImporter; +import net.sf.jabref.importer.fileformat.CopacImporter; +import net.sf.jabref.importer.fileformat.OvidImporter; + +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; + +public class CustomImporterTest { + + private CustomImporter importer; + + @Before + public void setUp() { + Globals.prefs = JabRefPreferences.getInstance(); + importer = new CustomImporter(new CopacImporter()); + } + + @Test + public void testGetName() { + assertEquals("Copac", importer.getName()); + } + + @Test + public void testGetCliId() { + assertEquals("cpc", importer.getClidId()); + } + + @Test + public void testGetClassName() { + assertEquals("net.sf.jabref.importer.fileformat.CopacImporter", importer.getClassName()); + } + + @Test + public void testGetBasePath() { + assertEquals("src/main/java/net/sf/jabref/importer/fileformat/CopacImporter.java", importer.getBasePath()); + } + + @Test + public void testGetInstance() throws Exception { + assertEquals(new CopacImporter(), importer.getInstance()); + } + + @Test + public void testGetFileFromBasePath() { + assertEquals(new File("src/main/java/net/sf/jabref/importer/fileformat/CopacImporter.java"), importer.getFileFromBasePath()); + } + + @Test + public void testGetBasePathUrl() throws Exception { + assertEquals(new File("src/main/java/net/sf/jabref/importer/fileformat/CopacImporter.java").toURI().toURL(), importer.getBasePathUrl()); + } + + @Test + public void testGetAsStringList() { + assertEquals("Copac", importer.getAsStringList().get(0)); + assertEquals("cpc", importer.getAsStringList().get(1)); + assertEquals("net.sf.jabref.importer.fileformat.CopacImporter", importer.getAsStringList().get(2)); + assertEquals("src/main/java/net/sf/jabref/importer/fileformat/CopacImporter.java", importer.getAsStringList().get(3)); + } + + @Test + public void testEqualsTrue() { + assertEquals(importer, importer); + } + + @Test + public void testEqualsFalse() { + assertNotEquals(new CopacImporter(), importer); + } + + @Test + public void testCompareToSmaller() { + CustomImporter ovidImporter = new CustomImporter(new OvidImporter()); + + assertTrue(importer.compareTo(ovidImporter) < 0); + } + + @Test + public void testCompareToGreater() { + CustomImporter bibtexmlImporter = new CustomImporter(new BibTeXMLImporter()); + CustomImporter ovidImporter = new CustomImporter(new OvidImporter()); + + assertTrue(ovidImporter.compareTo(bibtexmlImporter) > 0); + } + + @Test + public void testCompareToEven() { + assertEquals(0, importer.compareTo(importer)); + } + + @Test + public void testToString() { + assertEquals("Copac", importer.toString()); + } + + @Test + public void testClassicConstructor() { + CustomImporter customImporter = new CustomImporter("Copac", "cpc", "net.sf.jabref.importer.fileformat.CopacImporter", "src/main/java/net/sf/jabref/importer/fileformat/CopacImporter.java"); + + assertEquals(importer, customImporter); + } + + @Test + public void testListConstructor() { + List dataTest = Arrays.asList("Ovid", "ovid", "net.sf.jabref.importer.fileformat.OvidImporter", "src/main/java/net/sf/jabref/importer/fileformat/OvidImporter.java"); + CustomImporter customImporter = new CustomImporter(dataTest); + CustomImporter customOvidImporter = new CustomImporter(new OvidImporter()); + + assertEquals(customImporter, customOvidImporter); + } + + @Test + public void testEmptyConstructor() { + CustomImporter customImporter = new CustomImporter(); + customImporter.setName("Ovid"); + customImporter.setCliId("ovid"); + customImporter.setClassName("net.sf.jabref.importer.fileformat.OvidImporter"); + customImporter.setBasePath("src/main/java/net/sf/jabref/importer/fileformat/OvidImporter.java"); + + CustomImporter customOvidImporter = new CustomImporter(new OvidImporter()); + + assertEquals(customImporter, customOvidImporter); + } +}