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%21%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 }