@Test
public void shouldInvokeLuceneFunctionWithCorrectArguments() throws Exception {
addValueToResults();
PageableLuceneQueryResults<Object, Object> results = query.findPages();
verify(execution).execute(eq(LuceneQueryFunction.ID));
ArgumentCaptor<LuceneFunctionContext> captor =
ArgumentCaptor.forClass(LuceneFunctionContext.class);
verify(execution).setArguments(captor.capture());
LuceneFunctionContext context = captor.getValue();
assertEquals(LIMIT, context.getLimit());
assertEquals(provider, context.getQueryProvider());
assertEquals("index", context.getIndexName());
assertEquals(5, results.getMaxScore(), 0.01);
assertEquals(1, results.size());
final List<LuceneResultStruct<Object, Object>> page = results.next();
assertEquals(1, page.size());
LuceneResultStruct element = page.iterator().next();
assertEquals("hi", element.getKey());
assertEquals("value", element.getValue());
assertEquals(5, element.getScore(), 0.01);
}