View Javadoc

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