aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/search/query/test/ModelTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/test/java/com/yahoo/search/query/test/ModelTestCase.java')
-rw-r--r--container-search/src/test/java/com/yahoo/search/query/test/ModelTestCase.java112
1 files changed, 112 insertions, 0 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/query/test/ModelTestCase.java b/container-search/src/test/java/com/yahoo/search/query/test/ModelTestCase.java
new file mode 100644
index 00000000000..301438a5e41
--- /dev/null
+++ b/container-search/src/test/java/com/yahoo/search/query/test/ModelTestCase.java
@@ -0,0 +1,112 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.search.query.test;
+
+import com.yahoo.prelude.query.Item;
+import com.yahoo.search.Query;
+import com.yahoo.search.query.Model;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.Arrays;
+import java.util.LinkedHashSet;
+
+
+/**
+ * @author <a href="mailto:arnebef@yahoo-inc.com">Arne Bergene Fossaa</a>
+ */
+public class ModelTestCase extends junit.framework.TestCase {
+
+ String oldConfigId;
+
+ public void setUp() {
+ oldConfigId = System.getProperty("config.id");
+ System.setProperty("config.id", "file:src/test/java/com/yahoo/prelude/test/fieldtypes/field-info.cfg");
+ }
+
+
+ public void tearDown() {
+ if (oldConfigId == null)
+ System.getProperties().remove("config.id");
+ else
+ System.setProperty("config.id", oldConfigId);
+ }
+
+ public void testCopyParameters() {
+ Query q1 = new Query("?query=test1&filter=test2&defidx=content&default-index=lala&encoding=iso8859-1");
+ Query q2 = q1.clone();
+ Model r1 = q1.getModel();
+ Model r2 = q2.getModel();
+ assertTrue(r1 != r2);
+ assertEquals(r1,r2);
+ assertEquals("test1",r2.getQueryString());
+ }
+
+ public void testSetQuery() {
+ Query q1 = new Query("?query=test1");
+ Item r1 = q1.getModel().getQueryTree();
+ q1.properties().set("query","test2");
+ q1.getModel().setQueryString(q1.getModel().getQueryString()); // Force reparse
+ assertNotSame(r1,q1.getModel().getQueryTree());
+ q1.properties().set("query","test1");
+ q1.getModel().setQueryString(q1.getModel().getQueryString()); // Force reparse
+ assertEquals(r1,q1.getModel().getQueryTree());
+ }
+
+
+ public void testSetofSetters() {
+ Query q1 = new Query("?query=test1&encoding=iso-8859-1&language=en&default-index=subject&filter=" + enc("\u00C5"));
+ Model r1 = q1.getModel();
+ assertEquals(r1.getQueryString(), "test1");
+ assertEquals("iso-8859-1", r1.getEncoding());
+ assertEquals("\u00C5", r1.getFilter());
+ assertEquals("subject", r1.getDefaultIndex());
+ }
+
+ private String enc(String s) {
+ try {
+ return URLEncoder.encode(s, "utf-8");
+ }
+ catch (UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public void testSearchPath() {
+ assertEquals("c6/r8",new Query("?query=test1&model.searchPath=c6/r8").getModel().getSearchPath());
+ assertEquals("c6/r8",new Query("?query=test1&searchpath=c6/r8").getModel().getSearchPath());
+ }
+
+ public void testClone() {
+ Query q= new Query();
+ Model sr = new Model(q);
+ sr.setRestrict("music, cheese,other");
+ sr.setSources("cluster1");
+ assertEquals(sr.getSources(), new LinkedHashSet<>(Arrays.asList(new String[]{"cluster1"})));
+ assertEquals(sr.getRestrict(),new LinkedHashSet<>(Arrays.asList(new String[]{"cheese","music","other"})));
+ }
+
+ public void testEquals() {
+ Query q = new Query();
+ Model sra = new Model(q);
+ sra.setRestrict("music,cheese");
+ sra.setSources("cluster1,cluster2");
+
+ Model srb = new Model(q);
+ srb.setRestrict(" cheese , music");
+ srb.setSources("cluster1,cluster2");
+ assertEquals(sra,srb);
+ srb.setRestrict("music,cheese");
+ assertNotSame(sra,srb);
+ }
+
+ public void testSearchRestrictQueryParameters() {
+ Query query=new Query("?query=test&search=news,archive&restrict=fish,bird");
+ assertTrue(query.getModel().getSources().contains("news"));
+ assertTrue(query.getModel().getSources().contains("archive"));
+ assertEquals(2,query.getModel().getSources().size());
+ assertTrue(query.getModel().getRestrict().contains("fish"));
+ assertTrue(query.getModel().getRestrict().contains("bird"));
+ assertEquals(2,query.getModel().getRestrict().size());
+ }
+
+}