/** * Verify that a query returns the expected map of key-value. Ordering is ignored. */ public static <K> void verifyQueryKeyAndValues(LuceneQuery<K, Object> query, HashMap expectedResults) throws LuceneQueryException { HashMap actualResults = new HashMap<>(); final PageableLuceneQueryResults<K, Object> results = query.findPages(); while (results.hasNext()) { results.next().stream().forEach(struct -> { Object value = struct.getValue(); actualResults.put(struct.getKey(), value); }); } assertEquals(expectedResults, actualResults); }
page.stream() .forEach(searchResult -> result .add(new LuceneSearchResults<K, V>(searchResult.getKey().toString(), searchResult.getValue().toString(), searchResult.getScore())));
@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); }