/** * 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); }
private InternalLuceneService getMockLuceneService(String resultKey, String resultValue, String resultScore) throws LuceneQueryException { InternalLuceneService service = mock(InternalLuceneService.class); LuceneQueryFactory mockQueryFactory = spy(LuceneQueryFactory.class); LuceneQuery mockQuery = mock(LuceneQuery.class); PageableLuceneQueryResults pageableLuceneQueryResults = mock(PageableLuceneQueryResults.class); LuceneResultStruct<String, String> resultStruct = new LuceneResultStructImpl(resultKey, resultValue, Float.valueOf(resultScore)); List<LuceneResultStruct<String, String>> queryResults = new ArrayList<>(); queryResults.add(resultStruct); doReturn(mock(LuceneIndex.class)).when(service).getIndex(anyString(), anyString()); doReturn(mockQueryFactory).when(service).createLuceneQueryFactory(); doReturn(mockQueryFactory).when(mockQueryFactory).setLimit(anyInt()); doReturn(mockQuery).when(mockQueryFactory).create(any(), any(), any(), any()); when(mockQuery.findPages()).thenReturn(pageableLuceneQueryResults); when(pageableLuceneQueryResults.hasNext()).thenReturn(true).thenReturn(false); when(pageableLuceneQueryResults.next()).thenReturn(queryResults); return service; }
query.findKeys().forEach(key -> result.add(new LuceneSearchResults(key.toString()))); } else { PageableLuceneQueryResults pageableLuceneQueryResults = query.findPages(); while (pageableLuceneQueryResults.hasNext()) { List<LuceneResultStruct> page = pageableLuceneQueryResults.next();
private static LuceneQuery mockLuceneQuery(int limit, int pageSize) { LuceneQuery mockLuceneQuery = mock(LuceneQuery.class); when(mockLuceneQuery.getLimit()).thenReturn(limit); when(mockLuceneQuery.getPageSize()).thenReturn(pageSize); ObjectUtils.doOperationSafely(() -> when(mockLuceneQuery.findKeys()) .thenReturn(Collections.emptySet()), Collections.emptySet()); rethrowAsRuntimeException(() -> when(mockLuceneQuery.findPages()) .thenThrow(newUnsupportedOperationException("Operation Not Supported!"))); ObjectUtils.doOperationSafely(() -> when(mockLuceneQuery.findResults()) .thenReturn(Collections.emptyList()), Collections.emptyList()); ObjectUtils.doOperationSafely(() -> when(mockLuceneQuery.findValues()) .thenReturn(Collections.emptyList()), Collections.emptyList()); return mockLuceneQuery; }