1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package net.smartlab.web;
24
25 import java.util.ArrayList;
26 import java.util.Collection;
27
28 import junit.framework.TestCase;
29 import net.smartlab.web.DataAccessObject.SearchInfo;
30
31
32
33
34
35
36
37 public class DataAccessObjectSearchInfoTest extends TestCase {
38
39 SearchInfo info;
40
41
42
43
44 protected void setUp() throws Exception {
45 super.setUp();
46 info = new SearchInfo();
47 }
48
49
50
51
52 protected void tearDown() throws Exception {
53 super.tearDown();
54 }
55
56
57
58
59 public void testAddFilterNoValues() {
60 SearchInfo.Filter filter = null;
61 info.addFilter("property!\\");
62 filter = (SearchInfo.Filter)info.getFilters().toArray()[0];
63 super.assertEquals(1, filter.getValues().length);
64 super.assertEquals("", filter.getValues()[0]);
65 info.getFilters().clear();
66
67 info.addFilter("property=");
68 super.assertEquals(0, info.getFilters().size());
69 info.getFilters().clear();
70
71 info.addFilter("property", SearchInfo.EQUALS, (String)null);
72 super.assertEquals(0, info.getFilters().size());
73 info.getFilters().clear();
74 }
75
76
77
78
79 public void testSetFiltersStringArray() {
80 Collection filters = new ArrayList();
81 filters.add("property=name");
82 filters.add("property!surname");
83 filters.add("number>1");
84 filters.add("number>=1");
85 filters.add("number<100");
86 filters.add("number<=100");
87 filters.add("number<100");
88 filters.add("property%something");
89 filters.add("property%%something");
90 filters.add("date|now,end-of-life");
91 filters.add("property!myname,yourname");
92 filters.add("property!anyname,");
93 filters.add("property=NULL");
94 filters.add("property!NULL,");
95 info.setFilters((String[])filters.toArray(new String[0]));
96 super.assertEquals(14, info.getFilters().size());
97 }
98
99
100
101
102 public void testAddFilterString() {
103 SearchInfo.Filter filter = null;
104 info.addFilter("property!myname ,your name, ");
105 filter = (SearchInfo.Filter)info.getFilters().toArray()[0];
106 super.assertEquals("property", filter.getProperty());
107 super.assertEquals(SearchInfo.NOT_EQUALS, filter.getCondition());
108 super.assertEquals(3, filter.getValues().length);
109 super.assertEquals("myname ", filter.getValues()[0]);
110 super.assertEquals("your name", filter.getValues()[1]);
111 super.assertEquals(" ", filter.getValues()[2]);
112 info.getFilters().clear();
113
114 info.addFilter("property%\\%myname% ,%yourname%, %");
115 filter = (SearchInfo.Filter)info.getFilters().toArray()[0];
116 super.assertEquals("property", filter.getProperty());
117 super.assertEquals(SearchInfo.LIKE, filter.getCondition());
118 super.assertEquals(3, filter.getValues().length);
119 super.assertEquals("%myname% ", filter.getValues()[0]);
120 super.assertEquals("%yourname%", filter.getValues()[1]);
121 super.assertEquals(" %", filter.getValues()[2]);
122 info.getFilters().clear();
123
124 info.addFilter("property>!=myname\t \r");
125 filter = (SearchInfo.Filter)info.getFilters().toArray()[0];
126 super.assertEquals("property", filter.getProperty());
127 super.assertEquals(SearchInfo.GREATER, filter.getCondition());
128 super.assertEquals(1, filter.getValues().length);
129 super.assertEquals("!=myname\t \r", filter.getValues()[0]);
130 info.getFilters().clear();
131
132 info.addFilter("property>=%!myname%,%yourname%,1");
133 filter = (SearchInfo.Filter)info.getFilters().toArray()[0];
134 super.assertEquals("property", filter.getProperty());
135 super.assertEquals(SearchInfo.GREATER_EQUALS, filter.getCondition());
136 super.assertEquals(3, filter.getValues().length);
137 super.assertEquals("%!myname%", filter.getValues()[0]);
138 super.assertEquals("%yourname%", filter.getValues()[1]);
139 super.assertEquals("1", filter.getValues()[2]);
140 info.getFilters().clear();
141
142
143 info.addFilter("property^myname,yourname,1");
144 super.assertEquals(0, info.getFilters().size());
145
146 info.addFilter("property=NULL");
147 filter = (SearchInfo.Filter)info.getFilters().toArray()[0];
148 super.assertEquals("property", filter.getProperty());
149 super.assertEquals(SearchInfo.NULL, filter.getCondition());
150 super.assertNull(filter.getValues());
151 info.getFilters().clear();
152
153 info.addFilter("property!NULL");
154 filter = (SearchInfo.Filter)info.getFilters().toArray()[0];
155 super.assertEquals("property", filter.getProperty());
156 super.assertEquals(SearchInfo.NOT_NULL, filter.getCondition());
157 super.assertNull(filter.getValues());
158 info.getFilters().clear();
159
160 info.addFilter("property%%myname% ,%yourname%, %");
161 filter = (SearchInfo.Filter)info.getFilters().toArray()[0];
162 super.assertEquals("property", filter.getProperty());
163 super.assertEquals(SearchInfo.ILIKE, filter.getCondition());
164 super.assertEquals(3, filter.getValues().length);
165 super.assertEquals("myname% ", filter.getValues()[0]);
166 super.assertEquals("%yourname%", filter.getValues()[1]);
167 super.assertEquals(" %", filter.getValues()[2]);
168 info.getFilters().clear();
169
170 info.addFilter("property>\\=%!\\myname\\%,%your\\\\name%,1");
171 filter = (SearchInfo.Filter)info.getFilters().toArray()[0];
172 super.assertEquals(SearchInfo.GREATER, filter.getCondition());
173 super.assertEquals(3, filter.getValues().length);
174 super.assertEquals("=%!myname%", filter.getValues()[0]);
175 super.assertEquals("%your\\name%", filter.getValues()[1]);
176 super.assertEquals("1", filter.getValues()[2]);
177 info.getFilters().clear();
178
179 }
180
181
182
183
184 public void testSetOrder() {
185 info.setOrder("property");
186 super.assertEquals("property", info.getOrder());
187 super.assertFalse(info.isDescendant());
188
189 info.setOrder("!property");
190 super.assertEquals("property", info.getOrder());
191 super.assertTrue(info.isDescendant());
192
193 info.setOrder("");
194 super.assertEquals(null, info.getOrder());
195 }
196
197
198
199
200 public void testSetUnion() {
201 info.setUnion("AND");
202 super.assertFalse(info.isUnion());
203
204 info.setUnion("OR");
205 super.assertTrue(info.isUnion());
206
207 info.setUnion("Or");
208 super.assertTrue(info.isUnion());
209
210 info.setUnion("or");
211 super.assertTrue(info.isUnion());
212
213 info.setUnion("true");
214 super.assertTrue(info.isUnion());
215
216 info.setUnion("x");
217 super.assertFalse(info.isUnion());
218 }
219 }