@PostConstruct public void initialize() { setSearchHint(getDefaultSearchHintI18nMessage()); setDropDownText(getDefaultSelectorHintI18nMessage()); setNewInstanceEnabled(false); setNewEntryI18nMessage(getDefaultNewEntryI18nMessage()); liveSearchFooter.init(this::showNewItem, this::clearSelection); }
@Override public void setClearSelectionMessage(boolean multipleSelection) { String message = multipleSelection ? getDefaultClearSelectionI18nMessage() : getDefaultResetSelectionI18nMessage(); liveSearchFooter.setResetLabel(message); }
@Test public void testEmptySearch() { presenter.setSearchHint("s"); presenter.setNotFoundMessage("n"); presenter.setMaxItems(15); presenter.search(""); assertEquals(presenter.getLastSearch(), ""); verify(view).searchInProgress("s"); verify(view).clearItems(); verify(view).noItems("n"); verify(view).searchFinished(); verify(searchService).search(eq(""), eq(15), any()); }
@Test public void testInit() { presenter.setWidth(200); presenter.setMaxItems(10); presenter.setSearchHint("a"); presenter.setSelectorHint("b"); assertEquals(presenter.getMaxItems(), 10); verify(view).setWidth(200); verify(view).setSearchHint("a"); verify(view).setDropDownText("b"); }
@Test public void testRepeatedSearch() { presenter.search("a"); presenter.search("a"); // 2nd search is ignored as it's a repetition verify(view).clearItems(); verify(view).addItem(any()); verify(view).searchFinished(); verify(searchService).search(eq("a"), anyInt(), any()); }
@Test public void testClear() { presenter.clear(); assertNull(presenter.getLastSearch()); verify(view).clearItems(); verify(view).clearSearch(); }
protected void startTest() { dropDown.init(searchService, searchSelectionHandler); verify(view).setNewInstanceEnabled(true); ArgumentCaptor<ParameterizedCommand> onAddCommandCaptor = ArgumentCaptor.forClass(ParameterizedCommand.class); ArgumentCaptor<Command> onCancelCommandCaptor = ArgumentCaptor.forClass(Command.class); verify(editor).init(onAddCommandCaptor.capture(), onCancelCommandCaptor.capture()); onAddCommand = onAddCommandCaptor.getValue(); onCancelCommand = onCancelCommandCaptor.getValue(); assertNotNull(onAddCommand); assertNotNull(onCancelCommand); dropDown.showNewItem(); }
@Test public void testItemSelected() { doAnswer(invocationOnMock -> { LiveSearchResults results = new LiveSearchResults(1); results.add("1", "a"); LiveSearchCallback callback = (LiveSearchCallback) invocationOnMock.getArguments()[1]; callback.afterSearch(results); return null; }).when(searchService).searchEntry(anyString(), any()); presenter.setSelectedItem("1"); assertEquals("1", selectionHandler.getSelectedKey()); verify(view).setDropDownText("a"); verify(onChangeCommand, never()).execute(); }
@Test public void testSearchCache() { presenter.search("a"); presenter.search(""); presenter.search("a"); presenter.search(""); presenter.search("a"); presenter.search(""); assertTrue(presenter.isSearchCacheEnabled()); assertEquals(presenter.getLastSearch(), ""); verify(view, times(2)).searchInProgress(anyString()); verify(searchService).search(eq("a"), anyInt(), any()); verify(searchService).search(eq(""), anyInt(), any()); verify(view, times(2)).searchFinished(); verify(view, times(6)).clearItems(); verify(view, times(3)).addItem(any()); verify(view, times(3)).noItems(anyString()); }
@Test public void testSearch() { presenter.search("a"); assertEquals(presenter.getLastSearch(), "a"); verify(view).clearItems(); verify(view).addItem(any()); verify(view).searchFinished(); verify(searchService).search(eq("a"), anyInt(), any()); }
@PostConstruct public void initialize() { setSearchHint(getDefaultSearchHintI18nMessage()); setDropDownText(getDefaultSelectorHintI18nMessage()); setNewInstanceEnabled(false); setNewEntryI18nMessage(getDefaultNewEntryI18nMessage()); liveSearchFooter.init(this::showNewItem, this::clearSelection); }
times(6)).searchInProgress(anyString()); verify(searchService, times(3)).search(eq("a"), any()); verify(view, times(6)).searchFinished(); times(6)).clearItems(); verify(view, times(3)).addItem(any()); verify(view, times(3)).noItems(anyString());
@Override public void setClearSelectionMessage(boolean multipleSelection) { String message = multipleSelection ? getDefaultClearSelectionI18nMessage() : getDefaultResetSelectionI18nMessage(); liveSearchFooter.setResetLabel(message); }