package org.jabref.gui.importer; import java.io.File; import java.util.Optional; import org.jabref.JabRefGUI; import org.jabref.gui.JabRefFrame; import org.jabref.logic.importer.ImportDataTest; import org.jabref.model.entry.BibEntry; import org.jabref.testutils.category.GUITests; import org.junit.Assert; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.junit.experimental.categories.Category; import static org.mockito.Mockito.mock; @Category(GUITests.class) public class EntryFromPDFCreatorTest { private EntryFromPDFCreator entryCreator; @Before public void setUp() { // Needed to initialize ExternalFileTypes entryCreator = new EntryFromPDFCreator(); // Needed for PdfImporter - still not enough JabRefGUI.setMainFrame(mock(JabRefFrame.class)); } @Test public void testPDFFileFilter() { Assert.assertTrue(entryCreator.accept(new File("aPDF.pdf"))); Assert.assertTrue(entryCreator.accept(new File("aPDF.PDF"))); Assert.assertFalse(entryCreator.accept(new File("foo.jpg"))); } @Test public void testCreationOfEntryNoPDF() { Optional<BibEntry> entry = entryCreator.createEntry(ImportDataTest.NOT_EXISTING_PDF, false); Assert.assertFalse(entry.isPresent()); } @Test @Ignore //Can't mock basepanel and maintable public void testCreationOfEntryNotInDatabase() { Optional<BibEntry> entry = entryCreator.createEntry(ImportDataTest.FILE_NOT_IN_DATABASE, false); Assert.assertTrue(entry.isPresent()); Assert.assertTrue(entry.get().getField("file").get().endsWith(":PDF")); Assert.assertEquals(Optional.of(ImportDataTest.FILE_NOT_IN_DATABASE.getName()), entry.get().getField("title")); } }