1
2
3
4 package org.marketchangers.prayer.lucene;
5
6 import java.io.IOException;
7 import java.util.Date;
8 import java.util.HashMap;
9 import java.util.Map;
10
11 import junit.framework.TestCase;
12
13 import org.apache.lucene.analysis.Analyzer;
14 import org.apache.lucene.analysis.standard.StandardAnalyzer;
15 import org.apache.lucene.index.IndexWriter;
16 import org.apache.lucene.store.Directory;
17 import org.apache.lucene.store.RAMDirectory;
18 import org.marketchangers.prayer.PrayerCategory;
19 import org.marketchangers.prayer.PrayerRequest;
20 import org.marketchangers.prayer.PrayerRequestQuery;
21 import org.marketchangers.prayer.PrayerRequestSearcher;
22 ;
23
24 /***
25 * @author <a href="mailto:jniu@wc-group.com">Jianshuo Niu</a>
26 */
27 public class LucenePrayerRequestSearchUpdateStatusIntegrationTest
28 extends TestCase {
29
30 private IndexProvider provider;
31 private PrayerRequestSearcher searcher;
32 private PrayerRequest request1;
33 private PrayerRequest request2;
34 private Date startDate;
35 private Date endDate;
36 private PrayerCategory category;
37
38 public void setUp() throws IOException {
39 Directory dir = new RAMDirectory();
40 Analyzer analyzer = new StandardAnalyzer();
41 new IndexWriter(dir, analyzer, true).close();
42 provider = new DefaultIndexProvider(dir, analyzer);
43 searcher = new LucenePrayerRequestSearcher(provider);
44 startDate = new Date();
45 endDate = new Date();
46 request1 = new PrayerRequest();
47 request2 = new PrayerRequest();
48
49 category = new PrayerCategory();
50 category.setId(new Integer(1));
51 category.setName("category");
52
53 request1.setBackground("background");
54 request1.setCategory(category);
55 request1.setContent("this is a test");
56 request1.setStatus("open");
57 request1.setEndDate(endDate);
58 request1.setStartDate(startDate);
59 request1.setSubject("subject1");
60 request1.setRequestorUserId("jniu@wc-group.com");
61 request1.setId(new Integer(12));
62
63 request2.setBackground("background");
64 request2.setCategory(category);
65 request2.setContent("this is another test");
66 request2.setStatus("open");
67 request2.setEndDate(endDate);
68 request2.setStartDate(startDate);
69 request2.setSubject("subject2");
70 request2.setRequestorUserId("mttod@wc-group.com");
71 request2.setId(new Integer(25));
72 }
73
74 public void testAddAndUpdate() {
75 PrayerRequest request = new PrayerRequest();
76
77 request.setBackground("background");
78 request.setCategory(category);
79 request.setContent("this is a test");
80 request.setStatus("close");
81 request.setEndDate(endDate);
82 request.setStartDate(startDate);
83 request.setSubject("subject1");
84 request.setId(new Integer(12));
85 request.setRequestorUserId("jniu@wc-group.com");
86
87 searcher.index(request1);
88 searcher.index(request2);
89 Map map = new HashMap();
90
91 map.put("categoryName", new String[] { "category" });
92 map.put("endDate", new String[] { endDate.toString()});
93 map.put("requestorUserId", new String[] { "jniu@wc-group.com" });
94 map.put("searchTerm", new String[] { "test" });
95 map.put("startDate", new String[] { startDate.toString()});
96 map.put("status", new String[] { "open" });
97
98 PrayerRequestQuery query = new PrayerRequestQuery(map);
99 assertEquals(1, searcher.search(query).size());
100 searcher.updateStatus(request);
101 assertEquals(0, searcher.search(query).size());
102 }
103 }