1 package com.atlassian.bonnie.search;
2
3 import junit.framework.Assert;
4 import junit.framework.TestCase;
5
6 public class TestSearchWordsLister extends TestCase
7 {
8 public void testSearcherWithoutIgnoreWords() throws Exception
9 {
10 SearchWordsLister lister = getLister("meeting notes");
11
12 Assert.assertEquals(0, lister.getIgnoredWords().size());
13 Assert.assertEquals(2, lister.getSearchWords().size());
14 }
15
16 public void testSearcherWithIgnoreWords() throws Exception
17 {
18
19
20 SearchWordsLister lister = getLister("what the? oh my god!");
21
22 Assert.assertEquals(1, lister.getIgnoredWords().size());
23 Assert.assertEquals(4, lister.getSearchWords().size());
24 Assert.assertEquals("the", lister.getIgnoredWordsAsString());
25 Assert.assertEquals("what, oh, my, god", lister.getSearchWordsAsString());
26
27
28
29 }
30
31 public void testSearcherWithDuplicateIgnoreWords() throws Exception
32 {
33 SearchWordsLister lister = getLister("this is a big elephant and not a banana you idiot");
34
35 Assert.assertEquals(5, lister.getIgnoredWords().size());
36 Assert.assertEquals(5, lister.getSearchWords().size());
37 Assert.assertEquals("this, is, a, and, not", lister.getIgnoredWordsAsString());
38 Assert.assertEquals("big, elephant, banana, you, idiot", lister.getSearchWordsAsString());
39 }
40
41 public void testSearcherWithKeywords() throws Exception
42 {
43 SearchWordsLister lister = getLister("Apples AND oranges AND NOT kiwis OR bananas");
44
45 Assert.assertEquals(0, lister.getIgnoredWords().size());
46 Assert.assertEquals(4, lister.getSearchWords().size());
47 Assert.assertEquals("", lister.getIgnoredWordsAsString());
48 Assert.assertEquals("apples, oranges, kiwis, bananas", lister.getSearchWordsAsString());
49 }
50
51 public void testSearcherWithKeywordsAndIgnoreWords() throws Exception
52 {
53 SearchWordsLister lister = getLister("Apples and oranges AND kiwis OR bananas but Not kumquats");
54
55 Assert.assertEquals(3, lister.getIgnoredWords().size());
56 Assert.assertEquals(5, lister.getSearchWords().size());
57 Assert.assertEquals("and, but, not", lister.getIgnoredWordsAsString());
58
59 Assert.assertEquals("apples, oranges, kiwis, bananas, kumquats", lister.getSearchWordsAsString());
60 }
61
62 private SearchWordsLister getLister(String query) throws Exception
63 {
64 SearchWordsLister lister = new SearchWordsLister();
65 lister.parseQuery(query);
66 return lister;
67 }
68 }