@Test public void shouldReturnTokensFromSearch() throws CoreTokenException { // Given final Collection<Entry> entries = new LinkedList<Entry>(); entries.add(new LinkedHashMapEntry()); entries.add(new LinkedHashMapEntry()); // Slightly more fiddly mocking to provide behaviour when the mock is called. given( searchHandler.performSearch( any(Connection.class), any(SearchRequest.class), any(Collection.class))) .will( new Answer() { public Object answer(InvocationOnMock invocationOnMock) throws Throwable { Collection<Entry> list = (Collection<Entry>) invocationOnMock.getArguments()[2]; list.addAll(entries); return null; } }); // Ensure that the Token Conversion returns a Token given(tokenEntryConverter.convert(any(Entry.class), any(String[].class))) .willReturn(new Token(Long.toString(System.currentTimeMillis()), TokenType.SESSION)); // When Iterator<Collection<Token>> results = builder.execute(mockConnection); // Then verifyZeroInteractions(tokenEntryConverter); assertThat(results.next().size()).isEqualTo(entries.size()); verify(tokenEntryConverter, times(2)).convert(any(Entry.class), any(String[].class)); }
@Test public void shouldUseHandlerToPerformSearch() throws CoreTokenException, IOException { // Given Result mockResult = mock(Result.class); given( searchHandler.performSearch( any(Connection.class), any(SearchRequest.class), any(Collection.class))) .willReturn(mockResult); // When Iterator iterator = builder.executeRawResults(mockConnection, PartialToken.class); // Then verifyZeroInteractions(searchHandler); iterator.next(); verify(searchHandler) .performSearch(eq(mockConnection), any(SearchRequest.class), any(Collection.class)); }