View Javadoc

1   package com.atlassian.sal.core.search.query;
2   
3   import com.atlassian.sal.api.search.parameter.SearchParameter;
4   import com.atlassian.sal.api.search.query.SearchQuery;
5   import junit.framework.TestCase;
6   
7   /**
8    */
9   public class TestSearchQuery extends TestCase {
10      public void testCreateQuery() {
11          SearchQuery query = new DefaultSearchQueryParser().parse("test%20Query");
12          query.setParameter(SearchParameter.MAXHITS, "12").
13                  setParameter("app", "Fisheye");
14          assertEquals("test%20Query&maxhits=12&app=Fisheye", query.buildQueryString());
15      }
16  
17      public void testCreateQueryNoParams() {
18          SearchQuery query = new DefaultSearchQueryParser().parse("testQuery");
19          assertEquals("testQuery", query.buildQueryString());
20      }
21  
22      public void testCreateQuerySpecialChars() {
23          SearchQuery query = new DefaultSearchQueryParser().parse("test%25%5E%23Query");
24          query.setParameter(SearchParameter.MAXHITS, "12").
25                  setParameter("ap!@#p", "Fis%^#heye");
26          assertEquals("test%25%5E%23Query&maxhits=12&ap%21%40%23p=Fis%25%5E%23heye", query.buildQueryString());
27      }
28  
29      public void testAppendCreateQuerySpecialChars() {
30          SearchQuery query = new DefaultSearchQueryParser().parse("test%20Query&maxhits=12&app=Fisheye&a=b");
31          query.setParameter(SearchParameter.MAXHITS, "10").
32                  setParameter("a", "c").append("%20and%20some%20more&app=Crucible");
33          assertEquals("test%20Query%20and%20some%20more&maxhits=10&app=Crucible&a=c", query.buildQueryString());
34      }
35  
36  
37      public void testParseComplexQuery() {
38          SearchQuery query = new DefaultSearchQueryParser().parse("simpleQuery&maxhits=12&app=fisheye&");
39          assertEquals("fisheye", query.getParameter("app"));
40          assertNull(query.getParameter("nonexistent"));
41      }
42  
43      public void testParseQuerySpecialCharacters() {
44          SearchQuery query = new DefaultSearchQueryParser().parse("test%25%5E%23Query&maxhits=12&ap!%40%23p=Fis%25%5E%23heye");
45          assertEquals("test%^#Query", query.getSearchString());
46          assertEquals("12", query.getParameter(SearchParameter.MAXHITS));
47          assertEquals("Fis%^#heye", query.getParameter("ap!@#p"));
48      }
49  
50  }