package org.jabref.logic.importer.fetcher; import java.util.Optional; import org.jabref.logic.importer.FetcherException; import org.jabref.logic.importer.ImportFormatPreferences; import org.jabref.model.entry.BibEntry; import org.jabref.model.entry.BiblatexEntryTypes; import org.jabref.testutils.category.FetcherTests; import org.junit.Before; import org.junit.Test; import org.junit.experimental.categories.Category; import org.mockito.Answers; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import static org.mockito.Mockito.mock; @Category(FetcherTests.class) public class DoiFetcherTest { private DoiFetcher fetcher; private BibEntry bibEntryBurd2011, bibEntryDecker2007; @Before public void setUp() { fetcher = new DoiFetcher(mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS)); bibEntryBurd2011 = new BibEntry(); bibEntryBurd2011.setType(BiblatexEntryTypes.BOOK); bibEntryBurd2011.setField("bibtexkey", "Burd_2011"); bibEntryBurd2011.setField("title", "Java{\\textregistered} For Dummies{\\textregistered}"); bibEntryBurd2011.setField("publisher", "Wiley Publishing, Inc."); bibEntryBurd2011.setField("year", "2011"); bibEntryBurd2011.setField("author", "Barry Burd"); bibEntryBurd2011.setField("month", "jul"); bibEntryBurd2011.setField("doi", "10.1002/9781118257517"); bibEntryDecker2007 = new BibEntry(); bibEntryDecker2007.setType(BiblatexEntryTypes.INPROCEEDINGS); bibEntryDecker2007.setField("bibtexkey", "Decker_2007"); bibEntryDecker2007.setField("author", "Gero Decker and Oliver Kopp and Frank Leymann and Mathias Weske"); bibEntryDecker2007.setField("booktitle", "{IEEE} International Conference on Web Services ({ICWS} 2007)"); bibEntryDecker2007.setField("month", "jul"); bibEntryDecker2007.setField("publisher", "{IEEE}"); bibEntryDecker2007.setField("title", "{BPEL}4Chor: Extending {BPEL} for Modeling Choreographies"); bibEntryDecker2007.setField("year", "2007"); bibEntryDecker2007.setField("doi", "10.1109/icws.2007.59"); } @Test public void testGetName() { assertEquals("DOI", fetcher.getName()); } @Test public void testGetHelpPage() { assertEquals("DOItoBibTeX", fetcher.getHelpPage().getPageName()); } @Test public void testPerformSearchBurd2011() throws FetcherException { Optional<BibEntry> fetchedEntry = fetcher.performSearchById("10.1002/9781118257517"); assertEquals(Optional.of(bibEntryBurd2011), fetchedEntry); } @Test public void testPerformSearchDecker2007() throws FetcherException { Optional<BibEntry> fetchedEntry = fetcher.performSearchById("10.1109/ICWS.2007.59"); assertEquals(Optional.of(bibEntryDecker2007), fetchedEntry); } @Test(expected = FetcherException.class) public void testPerformSearchEmptyDOI() throws FetcherException { Optional<BibEntry> fetchedEntry = fetcher.performSearchById(""); assertEquals(Optional.empty(), fetchedEntry); } @Test(expected = FetcherException.class) public void testPerformSearchInvalidDOI() throws FetcherException { fetcher.performSearchById("10.1002/9781118257517F"); fail(); } }