package org.jabref.logic.autocompleter; import org.jabref.logic.journals.JournalAbbreviationLoader; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import static org.mockito.Mockito.mock; public class AutoCompleterFactoryTest { private AutoCompleterFactory autoCompleterFactory; private JournalAbbreviationLoader abbreviationLoader; @Before public void setUp() throws Exception { AutoCompletePreferences preferences = mock(AutoCompletePreferences.class); abbreviationLoader = mock(JournalAbbreviationLoader.class); autoCompleterFactory = new AutoCompleterFactory(preferences, abbreviationLoader); } @Test(expected = NullPointerException.class) public void initFactoryWithNullPreferenceThrowsException() { new AutoCompleterFactory(null, abbreviationLoader); } @Test public void getForUnknownFieldReturnsDefaultAutoCompleter() { AutoCompleter<String> autoCompleter = autoCompleterFactory.getFor("unknownField"); Assert.assertTrue(autoCompleter instanceof DefaultAutoCompleter); } @Test(expected = NullPointerException.class) public void getForNullThrowsException() { autoCompleterFactory.getFor(null); } @Test public void getForAuthorReturnsNameFieldAutoCompleter() { AutoCompleter<String> autoCompleter = autoCompleterFactory.getFor("author"); Assert.assertTrue(autoCompleter instanceof NameFieldAutoCompleter); } @Test public void getForEditorReturnsNameFieldAutoCompleter() { AutoCompleter<String> autoCompleter = autoCompleterFactory.getFor("editor"); Assert.assertTrue(autoCompleter instanceof NameFieldAutoCompleter); } @Test public void getForCrossrefReturnsBibtexKeyAutoCompleter() { AutoCompleter<String> autoCompleter = autoCompleterFactory.getFor("crossref"); Assert.assertTrue(autoCompleter instanceof BibtexKeyAutoCompleter); } @Test public void getForJournalReturnsEntireFieldAutoCompleter() { AutoCompleter<String> autoCompleter = autoCompleterFactory.getFor("journal"); Assert.assertTrue(autoCompleter instanceof EntireFieldAutoCompleter); } @Test public void getForPublisherReturnsEntireFieldAutoCompleter() { AutoCompleter<String> autoCompleter = autoCompleterFactory.getFor("publisher"); Assert.assertTrue(autoCompleter instanceof EntireFieldAutoCompleter); } @Test public void getPersonAutoCompleterReturnsNameFieldAutoCompleter() { AutoCompleter<String> autoCompleter = autoCompleterFactory.getPersonAutoCompleter(); Assert.assertTrue(autoCompleter instanceof NameFieldAutoCompleter); } }