diff options
Diffstat (limited to 'container-search/src/test/java/com/yahoo/prelude/query/ItemHelperTestCase.java')
-rw-r--r-- | container-search/src/test/java/com/yahoo/prelude/query/ItemHelperTestCase.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/container-search/src/test/java/com/yahoo/prelude/query/ItemHelperTestCase.java b/container-search/src/test/java/com/yahoo/prelude/query/ItemHelperTestCase.java new file mode 100644 index 00000000000..35adc50a556 --- /dev/null +++ b/container-search/src/test/java/com/yahoo/prelude/query/ItemHelperTestCase.java @@ -0,0 +1,67 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.prelude.query; + +import static org.junit.Assert.*; + +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.List; + +import com.yahoo.search.test.QueryTestCase; +import org.junit.Test; + +import com.yahoo.search.Query; + + +/** + * Unit test for the helper methods placed in + * com.yahoo.prelude.query.ItemHelper. + * + * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a> + */ +public class ItemHelperTestCase { + + @Test + public final void testGetNumTerms() { + ItemHelper helper = new ItemHelper(); + Query q = new Query("/?query=" + enc("a b c")); + assertEquals(3, helper.getNumTerms(q.getModel().getQueryTree().getRoot())); + } + + @Test + public final void testGetPositiveTerms() { + ItemHelper helper = new ItemHelper(); + Query q = new Query("/?query=" + enc("a b c \"d e\" -f")); + List<IndexedItem> l = new ArrayList<>(); + System.out.println(q.getModel()); + helper.getPositiveTerms(q.getModel().getQueryTree().getRoot(), l); + assertEquals(4, l.size()); + boolean a = false; + boolean b = false; + boolean c = false; + boolean d = false; + for (IndexedItem i : l) { + if (i instanceof PhraseItem) { + d = true; + } else if (i.getIndexedString().equals("a")) { + a = true; + } else if (i.getIndexedString().equals("b")) { + b = true; + } else if (i.getIndexedString().equals("c")) { + c = true; + } + } + assertFalse("An item is missing.", (a & b & c & d) == false); + } + + private String enc(String s) { + try { + return URLEncoder.encode(s, "utf-8"); + } + catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + } + +} |