Skip to content

Commit d8603c1

Browse files
ahornaceVladimir Kotal
authored andcommitted
Add more suggester tests
1 parent ce791df commit d8603c1

File tree

1 file changed

+65
-1
lines changed

1 file changed

+65
-1
lines changed

suggester/src/test/java/org/opengrok/suggest/SuggesterTest.java

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,35 @@
3030
import org.apache.lucene.index.IndexWriter;
3131
import org.apache.lucene.index.IndexWriterConfig;
3232
import org.apache.lucene.index.Term;
33+
import org.apache.lucene.search.BooleanClause;
34+
import org.apache.lucene.search.BooleanQuery;
35+
import org.apache.lucene.search.Query;
36+
import org.apache.lucene.search.TermQuery;
3337
import org.apache.lucene.store.Directory;
3438
import org.apache.lucene.store.FSDirectory;
39+
import org.apache.lucene.util.BytesRef;
3540
import org.junit.Test;
3641
import org.opengrok.suggest.query.SuggesterPrefixQuery;
42+
import org.opengrok.suggest.query.SuggesterWildcardQuery;
3743

3844
import java.io.IOException;
3945
import java.nio.file.Files;
4046
import java.nio.file.Path;
4147
import java.time.Duration;
48+
import java.util.AbstractMap.SimpleEntry;
4249
import java.util.Collections;
4350
import java.util.List;
4451
import java.util.Map;
52+
import java.util.Map.Entry;
4553
import java.util.concurrent.TimeUnit;
4654
import java.util.stream.Collectors;
4755

4856
import static org.awaitility.Awaitility.await;
4957
import static org.hamcrest.MatcherAssert.assertThat;
5058
import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder;
59+
import static org.hamcrest.collection.IsIterableContainingInOrder.contains;
5160
import static org.junit.Assert.assertFalse;
61+
import static org.junit.Assert.assertTrue;
5262

5363
public class SuggesterTest {
5464

@@ -114,7 +124,7 @@ private SuggesterTestData initSuggester() throws IOException {
114124

115125
Path tempSuggesterDir = Files.createTempDirectory("opengrok");
116126

117-
Suggester s = new Suggester(tempSuggesterDir.toFile(), 10, Duration.ofMinutes(1), false,
127+
Suggester s = new Suggester(tempSuggesterDir.toFile(), 10, Duration.ofMinutes(1), true,
118128
true, Collections.singleton("test"));
119129

120130
s.init(Collections.singleton(new Suggester.NamedIndexDir("test", tempIndexDir)));
@@ -216,4 +226,58 @@ public void testRemove() throws IOException {
216226
FileUtils.deleteDirectory(t.indexDir.toFile());
217227
}
218228

229+
@Test
230+
public void testComplexQuerySearch() throws IOException {
231+
SuggesterTestData t = initSuggester();
232+
233+
List<LookupResultItem> res = t.s.search(Collections.singletonList(t.getNamedIndexReader()),
234+
new SuggesterWildcardQuery(new Term("test", "*1")), null);
235+
236+
assertThat(res.stream().map(LookupResultItem::getPhrase).collect(Collectors.toList()),
237+
contains("term1"));
238+
239+
t.close();
240+
}
241+
242+
@Test
243+
public void testOnSearch() throws IOException {
244+
SuggesterTestData t = initSuggester();
245+
246+
Query q = new BooleanQuery.Builder()
247+
.add(new TermQuery(new Term("test", "term1")), BooleanClause.Occur.MUST)
248+
.add(new TermQuery(new Term("test", "term3")), BooleanClause.Occur.MUST)
249+
.build();
250+
251+
t.s.onSearch(Collections.singleton("test"), q);
252+
253+
List<Entry<BytesRef, Integer>> res = t.s.getSearchCounts("test", "test", 0, 10);
254+
255+
assertThat(res, containsInAnyOrder(new SimpleEntry<>(new BytesRef("term1"), 1),
256+
new SimpleEntry<>(new BytesRef("term3"), 1)));
257+
258+
t.close();
259+
}
260+
261+
@Test
262+
public void testGetSearchCountsForUnknown() throws IOException {
263+
SuggesterTestData t = initSuggester();
264+
265+
assertTrue(t.s.getSearchCounts("unknown", "unknown", 0, 10).isEmpty());
266+
267+
t.close();
268+
}
269+
270+
@Test
271+
public void testIncreaseSearchCount() throws IOException {
272+
SuggesterTestData t = initSuggester();
273+
274+
t.s.increaseSearchCount("test", new Term("test", "term2"), 100);
275+
276+
List<Entry<BytesRef, Integer>> res = t.s.getSearchCounts("test", "test", 0, 10);
277+
278+
assertThat(res, contains(new SimpleEntry<>(new BytesRef("term2"), 100)));
279+
280+
t.close();
281+
}
282+
219283
}

0 commit comments

Comments
 (0)