svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.lib / org.gvsig.expressionevaluator.lib.impl / src / test / java / org / gvsig / expresionevaluator / impl / TestExpressionBuilder.java @ 46104
History | View | Annotate | Download (19.4 KB)
1 | 44006 | jjdelcerro | package org.gvsig.expresionevaluator.impl; |
---|---|---|---|
2 | 43128 | jjdelcerro | |
3 | 44006 | jjdelcerro | import junit.framework.TestCase; |
4 | 44644 | jjdelcerro | import static junit.framework.TestCase.assertEquals; |
5 | 43128 | jjdelcerro | import org.apache.commons.lang3.ArrayUtils; |
6 | 44006 | jjdelcerro | import org.gvsig.expressionevaluator.ExpressionBuilder; |
7 | 44644 | jjdelcerro | import org.gvsig.expressionevaluator.ExpressionUtils; |
8 | 44797 | jjdelcerro | import org.gvsig.tools.dataTypes.DataTypes; |
9 | 44006 | jjdelcerro | import org.gvsig.tools.library.impl.DefaultLibrariesInitializer; |
10 | 43128 | jjdelcerro | |
11 | 44006 | jjdelcerro | public class TestExpressionBuilder extends TestCase { |
12 | |||
13 | public TestExpressionBuilder(String testName) { |
||
14 | super(testName);
|
||
15 | } |
||
16 | |||
17 | 43128 | jjdelcerro | @Override
|
18 | 44006 | jjdelcerro | protected void setUp() throws Exception { |
19 | super.setUp();
|
||
20 | new DefaultLibrariesInitializer().fullInitialize();
|
||
21 | } |
||
22 | 43128 | jjdelcerro | |
23 | 44006 | jjdelcerro | @Override
|
24 | protected void tearDown() throws Exception { |
||
25 | super.tearDown();
|
||
26 | 43128 | jjdelcerro | } |
27 | 44006 | jjdelcerro | |
28 | 44644 | jjdelcerro | protected ExpressionBuilder createExpressionBuilder() {
|
29 | ExpressionBuilder builder = ExpressionUtils.createExpressionBuilder(); |
||
30 | return builder;
|
||
31 | } |
||
32 | |||
33 | 44006 | jjdelcerro | // TODO add test methods here. The name must begin with 'test'. For example:
|
34 | // public void testHello() {}
|
||
35 | 44644 | jjdelcerro | |
36 | |||
37 | public void testIdentifier1() { |
||
38 | ExpressionBuilder builder = createExpressionBuilder(); |
||
39 | builder.set( |
||
40 | builder.variable("precio")
|
||
41 | ); |
||
42 | 43128 | jjdelcerro | |
43 | 44644 | jjdelcerro | assertEquals( |
44 | "\"precio\"",
|
||
45 | builder.toString() |
||
46 | 43128 | jjdelcerro | ); |
47 | 44644 | jjdelcerro | assertEquals( |
48 | "[precio]",
|
||
49 | ArrayUtils.toString(builder.variables_names()) |
||
50 | 43128 | jjdelcerro | ); |
51 | 44644 | jjdelcerro | assertEquals( |
52 | "[]",
|
||
53 | ArrayUtils.toString(builder.parameters_names()) |
||
54 | 43128 | jjdelcerro | ); |
55 | 44644 | jjdelcerro | } |
56 | |||
57 | public void testTrue() { |
||
58 | ExpressionBuilder builder = createExpressionBuilder(); |
||
59 | builder.set( |
||
60 | builder.constant(true)
|
||
61 | 43128 | jjdelcerro | ); |
62 | 44644 | jjdelcerro | |
63 | 43128 | jjdelcerro | assertEquals( |
64 | 44644 | jjdelcerro | "TRUE",
|
65 | 43128 | jjdelcerro | builder.toString() |
66 | ); |
||
67 | assertEquals( |
||
68 | 44644 | jjdelcerro | "[]",
|
69 | 44198 | jjdelcerro | ArrayUtils.toString(builder.variables_names()) |
70 | 43128 | jjdelcerro | ); |
71 | assertEquals( |
||
72 | 44644 | jjdelcerro | "[]",
|
73 | 44198 | jjdelcerro | ArrayUtils.toString(builder.parameters_names()) |
74 | 43128 | jjdelcerro | ); |
75 | } |
||
76 | 44644 | jjdelcerro | |
77 | public void testFalse() { |
||
78 | ExpressionBuilder builder = createExpressionBuilder(); |
||
79 | builder.set( |
||
80 | builder.constant(false)
|
||
81 | 43128 | jjdelcerro | ); |
82 | 44644 | jjdelcerro | |
83 | 43128 | jjdelcerro | assertEquals( |
84 | 44644 | jjdelcerro | "FALSE",
|
85 | 43128 | jjdelcerro | builder.toString() |
86 | ); |
||
87 | assertEquals( |
||
88 | 44644 | jjdelcerro | "[]",
|
89 | ArrayUtils.toString(builder.variables_names()) |
||
90 | ); |
||
91 | assertEquals( |
||
92 | "[]",
|
||
93 | ArrayUtils.toString(builder.parameters_names()) |
||
94 | ); |
||
95 | } |
||
96 | |||
97 | public void testNull() { |
||
98 | ExpressionBuilder builder = createExpressionBuilder(); |
||
99 | builder.set( |
||
100 | builder.constant(null)
|
||
101 | ); |
||
102 | |||
103 | assertEquals( |
||
104 | "NULL",
|
||
105 | 43128 | jjdelcerro | builder.toString() |
106 | ); |
||
107 | assertEquals( |
||
108 | 44644 | jjdelcerro | "[]",
|
109 | 44198 | jjdelcerro | ArrayUtils.toString(builder.variables_names()) |
110 | 43128 | jjdelcerro | ); |
111 | assertEquals( |
||
112 | "[]",
|
||
113 | 44198 | jjdelcerro | ArrayUtils.toString(builder.parameters_names()) |
114 | 43128 | jjdelcerro | ); |
115 | } |
||
116 | 44644 | jjdelcerro | |
117 | public void testIsNull() { |
||
118 | ExpressionBuilder builder = createExpressionBuilder(); |
||
119 | builder.set( |
||
120 | builder.is_null( builder.constant(10) )
|
||
121 | 44198 | jjdelcerro | ); |
122 | 44644 | jjdelcerro | |
123 | 44198 | jjdelcerro | assertEquals( |
124 | 44644 | jjdelcerro | "( (10) IS NULL )",
|
125 | 44198 | jjdelcerro | builder.toString() |
126 | ); |
||
127 | assertEquals( |
||
128 | 44644 | jjdelcerro | "[]",
|
129 | ArrayUtils.toString(builder.variables_names()) |
||
130 | ); |
||
131 | assertEquals( |
||
132 | "[]",
|
||
133 | ArrayUtils.toString(builder.parameters_names()) |
||
134 | ); |
||
135 | } |
||
136 | |||
137 | public void testIsNotNull() { |
||
138 | ExpressionBuilder builder = createExpressionBuilder(); |
||
139 | builder.set( |
||
140 | builder.not_is_null( builder.constant(10) )
|
||
141 | ); |
||
142 | |||
143 | assertEquals( |
||
144 | "( (10) IS NOT NULL )",
|
||
145 | 44198 | jjdelcerro | builder.toString() |
146 | ); |
||
147 | assertEquals( |
||
148 | "[]",
|
||
149 | ArrayUtils.toString(builder.variables_names()) |
||
150 | ); |
||
151 | assertEquals( |
||
152 | 44644 | jjdelcerro | "[]",
|
153 | 44198 | jjdelcerro | ArrayUtils.toString(builder.parameters_names()) |
154 | ); |
||
155 | } |
||
156 | 44644 | jjdelcerro | |
157 | public void testNotTrue() { |
||
158 | ExpressionBuilder builder = createExpressionBuilder(); |
||
159 | builder.set( |
||
160 | builder.not( builder.constant(true) )
|
||
161 | ); |
||
162 | |||
163 | assertEquals( |
||
164 | "( NOT (TRUE) )",
|
||
165 | builder.toString() |
||
166 | ); |
||
167 | assertEquals( |
||
168 | "[]",
|
||
169 | ArrayUtils.toString(builder.variables_names()) |
||
170 | ); |
||
171 | assertEquals( |
||
172 | "[]",
|
||
173 | ArrayUtils.toString(builder.parameters_names()) |
||
174 | ); |
||
175 | } |
||
176 | |||
177 | public void testInteger() { |
||
178 | ExpressionBuilder builder = createExpressionBuilder(); |
||
179 | builder.set( |
||
180 | builder.constant(23)
|
||
181 | ); |
||
182 | |||
183 | assertEquals( |
||
184 | "23",
|
||
185 | builder.toString() |
||
186 | ); |
||
187 | assertEquals( |
||
188 | "[]",
|
||
189 | ArrayUtils.toString(builder.variables_names()) |
||
190 | ); |
||
191 | assertEquals( |
||
192 | "[]",
|
||
193 | ArrayUtils.toString(builder.parameters_names()) |
||
194 | ); |
||
195 | } |
||
196 | |||
197 | public void testAddMul() { |
||
198 | // precio + 10 * 2 + 20 + 30
|
||
199 | ExpressionBuilder builder = createExpressionBuilder(); |
||
200 | builder.set( |
||
201 | builder.add( |
||
202 | builder.add( |
||
203 | builder.add( |
||
204 | builder.variable("precio"),
|
||
205 | builder.mult( |
||
206 | builder.constant(10),
|
||
207 | builder.constant(2)
|
||
208 | ) |
||
209 | ), |
||
210 | builder.constant(20)
|
||
211 | ), |
||
212 | builder.constant(30)
|
||
213 | ) |
||
214 | ); |
||
215 | |||
216 | assertEquals( |
||
217 | "\"precio\" + (10 * 2) + 20 + 30",
|
||
218 | builder.toString() |
||
219 | ); |
||
220 | assertEquals( |
||
221 | "[precio]",
|
||
222 | ArrayUtils.toString(builder.variables_names()) |
||
223 | ); |
||
224 | assertEquals( |
||
225 | "[]",
|
||
226 | ArrayUtils.toString(builder.parameters_names()) |
||
227 | ); |
||
228 | } |
||
229 | 44198 | jjdelcerro | |
230 | 44644 | jjdelcerro | public void testAddMulPar() { |
231 | // (precio + 10) * 2 + 20 + 30
|
||
232 | ExpressionBuilder builder = createExpressionBuilder(); |
||
233 | builder.set( |
||
234 | builder.add( |
||
235 | builder.add( |
||
236 | builder.mult( |
||
237 | builder.add( |
||
238 | builder.variable("precio"),
|
||
239 | builder.constant(10)
|
||
240 | ), |
||
241 | builder.constant(2)
|
||
242 | ), |
||
243 | builder.constant(20)
|
||
244 | ), |
||
245 | builder.constant(30)
|
||
246 | 44198 | jjdelcerro | ) |
247 | ); |
||
248 | 44644 | jjdelcerro | |
249 | assertEquals( |
||
250 | "(\"precio\" + 10 * 2) + 20 + 30",
|
||
251 | builder.toString() |
||
252 | ); |
||
253 | assertEquals( |
||
254 | "[precio]",
|
||
255 | ArrayUtils.toString(builder.variables_names()) |
||
256 | ); |
||
257 | assertEquals( |
||
258 | "[]",
|
||
259 | ArrayUtils.toString(builder.parameters_names()) |
||
260 | ); |
||
261 | 44198 | jjdelcerro | } |
262 | |||
263 | 44644 | jjdelcerro | public void testAbs() { |
264 | // precio + abs(10)
|
||
265 | ExpressionBuilder builder = createExpressionBuilder(); |
||
266 | builder.set( |
||
267 | builder.add( |
||
268 | builder.variable("precio"),
|
||
269 | builder.abs( builder.constant(10) )
|
||
270 | 44198 | jjdelcerro | ) |
271 | ); |
||
272 | 44644 | jjdelcerro | |
273 | 44198 | jjdelcerro | assertEquals( |
274 | 44644 | jjdelcerro | "\"precio\" + ABS(10)",
|
275 | 44198 | jjdelcerro | builder.toString() |
276 | ); |
||
277 | assertEquals( |
||
278 | 44644 | jjdelcerro | "[precio]",
|
279 | ArrayUtils.toString(builder.variables_names()) |
||
280 | ); |
||
281 | assertEquals( |
||
282 | "[]",
|
||
283 | ArrayUtils.toString(builder.parameters_names()) |
||
284 | ); |
||
285 | } |
||
286 | |||
287 | 46104 | omartinez | public void testLet() { |
288 | //
|
||
289 | ExpressionBuilder builder = createExpressionBuilder(); |
||
290 | builder.set( |
||
291 | builder.let( |
||
292 | "precio",
|
||
293 | builder.constant(10)
|
||
294 | ) |
||
295 | ); |
||
296 | |||
297 | assertEquals( |
||
298 | "LET(\"precio\", 10)",
|
||
299 | builder.toString() |
||
300 | ); |
||
301 | assertEquals( |
||
302 | "[precio]",
|
||
303 | ArrayUtils.toString(builder.variables_names()) |
||
304 | ); |
||
305 | assertEquals( |
||
306 | "[]",
|
||
307 | ArrayUtils.toString(builder.parameters_names()) |
||
308 | ); |
||
309 | } |
||
310 | |||
311 | 44644 | jjdelcerro | public void testAbs2() { |
312 | // precio + abs(-10)
|
||
313 | ExpressionBuilder builder = createExpressionBuilder(); |
||
314 | builder.set( |
||
315 | builder.add( |
||
316 | builder.variable("precio"),
|
||
317 | builder.abs( builder.constant(-10) )
|
||
318 | ) |
||
319 | ); |
||
320 | |||
321 | assertEquals( |
||
322 | "\"precio\" + ABS(-10)",
|
||
323 | 44198 | jjdelcerro | builder.toString() |
324 | ); |
||
325 | assertEquals( |
||
326 | 44644 | jjdelcerro | "[precio]",
|
327 | 44198 | jjdelcerro | ArrayUtils.toString(builder.variables_names()) |
328 | ); |
||
329 | assertEquals( |
||
330 | 44644 | jjdelcerro | "[]",
|
331 | 44198 | jjdelcerro | ArrayUtils.toString(builder.parameters_names()) |
332 | ); |
||
333 | } |
||
334 | |||
335 | 44644 | jjdelcerro | public void testPI() { |
336 | // precio + PI()
|
||
337 | ExpressionBuilder builder = createExpressionBuilder(); |
||
338 | builder.set( |
||
339 | builder.add( |
||
340 | builder.variable("precio"),
|
||
341 | builder.pi() |
||
342 | 44198 | jjdelcerro | ) |
343 | ); |
||
344 | 44644 | jjdelcerro | |
345 | 44198 | jjdelcerro | assertEquals( |
346 | 44644 | jjdelcerro | "\"precio\" + PI()",
|
347 | 44198 | jjdelcerro | builder.toString() |
348 | ); |
||
349 | assertEquals( |
||
350 | 44644 | jjdelcerro | "[precio]",
|
351 | ArrayUtils.toString(builder.variables_names()) |
||
352 | ); |
||
353 | assertEquals( |
||
354 | "[]",
|
||
355 | ArrayUtils.toString(builder.parameters_names()) |
||
356 | ); |
||
357 | } |
||
358 | |||
359 | public void testCeil() { |
||
360 | // precio + CEIL(PI())
|
||
361 | ExpressionBuilder builder = createExpressionBuilder(); |
||
362 | builder.set( |
||
363 | builder.add( |
||
364 | builder.variable("precio"),
|
||
365 | builder.ceil(builder.pi()) |
||
366 | ) |
||
367 | ); |
||
368 | |||
369 | assertEquals( |
||
370 | "\"precio\" + CEIL(PI())",
|
||
371 | 44198 | jjdelcerro | builder.toString() |
372 | ); |
||
373 | assertEquals( |
||
374 | 44644 | jjdelcerro | "[precio]",
|
375 | 44198 | jjdelcerro | ArrayUtils.toString(builder.variables_names()) |
376 | ); |
||
377 | assertEquals( |
||
378 | 44644 | jjdelcerro | "[]",
|
379 | 44198 | jjdelcerro | ArrayUtils.toString(builder.parameters_names()) |
380 | ); |
||
381 | } |
||
382 | |||
383 | 44644 | jjdelcerro | public void testGetitem1() { |
384 | // // LIST('uno','dos','tres')[1]
|
||
385 | // ExpressionBuilder builder = createExpressionBuilder();
|
||
386 | // builder.getitem(
|
||
387 | // builder.list(
|
||
388 | // builder.constant("uno"),
|
||
389 | // builder.constant("dos"),
|
||
390 | // builder.constant("tres")
|
||
391 | // ),
|
||
392 | // builder.constant(1)
|
||
393 | // );
|
||
394 | //
|
||
395 | // assertEquals(
|
||
396 | // "GETITEM(LIST('uno', 'dos', 'tres'), 1)",
|
||
397 | // builder.toString()
|
||
398 | // );
|
||
399 | // assertEquals(
|
||
400 | // "[]",
|
||
401 | // ArrayUtils.toString(builder.variables_names())
|
||
402 | // );
|
||
403 | // assertEquals(
|
||
404 | // "[]",
|
||
405 | // ArrayUtils.toString(builder.parameters_names())
|
||
406 | // );
|
||
407 | } |
||
408 | |||
409 | 45164 | jjdelcerro | public void testConcat1() { |
410 | 44644 | jjdelcerro | ExpressionBuilder builder = createExpressionBuilder(); |
411 | builder.set( |
||
412 | builder.concat( |
||
413 | 45164 | jjdelcerro | builder.constant("Total "),
|
414 | 44644 | jjdelcerro | builder.variable("precio"),
|
415 | builder.constant(" euros")
|
||
416 | 44198 | jjdelcerro | ) |
417 | ); |
||
418 | 44644 | jjdelcerro | |
419 | 44198 | jjdelcerro | assertEquals( |
420 | 45164 | jjdelcerro | "CONCAT('Total ', \"precio\", ' euros')",
|
421 | builder.toString() |
||
422 | ); |
||
423 | assertEquals( |
||
424 | "[precio]",
|
||
425 | ArrayUtils.toString(builder.variables_names()) |
||
426 | ); |
||
427 | assertEquals( |
||
428 | "[]",
|
||
429 | ArrayUtils.toString(builder.parameters_names()) |
||
430 | ); |
||
431 | } |
||
432 | |||
433 | public void testConcat2() { |
||
434 | ExpressionBuilder builder = createExpressionBuilder(); |
||
435 | builder.set( |
||
436 | builder.concat( |
||
437 | builder.variable("precio"),
|
||
438 | builder.constant(" euros")
|
||
439 | ) |
||
440 | ); |
||
441 | |||
442 | assertEquals( |
||
443 | 44644 | jjdelcerro | "\"precio\" || ' euros'",
|
444 | 44198 | jjdelcerro | builder.toString() |
445 | ); |
||
446 | assertEquals( |
||
447 | 44644 | jjdelcerro | "[precio]",
|
448 | ArrayUtils.toString(builder.variables_names()) |
||
449 | ); |
||
450 | assertEquals( |
||
451 | "[]",
|
||
452 | ArrayUtils.toString(builder.parameters_names()) |
||
453 | ); |
||
454 | } |
||
455 | |||
456 | public void test1() { |
||
457 | // NOMBRE03 = 'Torre d''En Besora (la)'
|
||
458 | ExpressionBuilder builder = createExpressionBuilder(); |
||
459 | builder.set( |
||
460 | builder.eq( |
||
461 | builder.variable("NOMBRE03"),
|
||
462 | builder.constant("Torre d'En Besora (la)")
|
||
463 | ) |
||
464 | ); |
||
465 | |||
466 | assertEquals( |
||
467 | "( (\"NOMBRE03\") = ('Torre d''En Besora (la)') )",
|
||
468 | 44198 | jjdelcerro | builder.toString() |
469 | ); |
||
470 | assertEquals( |
||
471 | 44644 | jjdelcerro | "[NOMBRE03]",
|
472 | 44198 | jjdelcerro | ArrayUtils.toString(builder.variables_names()) |
473 | ); |
||
474 | assertEquals( |
||
475 | 44644 | jjdelcerro | "[]",
|
476 | 44198 | jjdelcerro | ArrayUtils.toString(builder.parameters_names()) |
477 | ); |
||
478 | } |
||
479 | |||
480 | 44644 | jjdelcerro | public void test2() { |
481 | // [1990] = 0.168873933773767
|
||
482 | ExpressionBuilder builder = createExpressionBuilder(); |
||
483 | builder.set( |
||
484 | builder.eq( |
||
485 | builder.variable("1990"),
|
||
486 | builder.constant(0.168873933773767)
|
||
487 | 44198 | jjdelcerro | ) |
488 | ); |
||
489 | 44644 | jjdelcerro | |
490 | 44198 | jjdelcerro | assertEquals( |
491 | 44644 | jjdelcerro | "( (\"1990\") = (0.168873933773767) )",
|
492 | 44198 | jjdelcerro | builder.toString() |
493 | ); |
||
494 | assertEquals( |
||
495 | 44644 | jjdelcerro | "[1990]",
|
496 | ArrayUtils.toString(builder.variables_names()) |
||
497 | ); |
||
498 | assertEquals( |
||
499 | "[]",
|
||
500 | ArrayUtils.toString(builder.parameters_names()) |
||
501 | ); |
||
502 | } |
||
503 | |||
504 | public void test2fields() { |
||
505 | // [1990] = [precio]
|
||
506 | ExpressionBuilder builder = createExpressionBuilder(); |
||
507 | builder.set( |
||
508 | builder.eq( |
||
509 | builder.variable("1990"),
|
||
510 | builder.variable("precio")
|
||
511 | ) |
||
512 | ); |
||
513 | |||
514 | assertEquals( |
||
515 | "( (\"1990\") = (\"precio\") )",
|
||
516 | 44198 | jjdelcerro | builder.toString() |
517 | ); |
||
518 | assertEquals( |
||
519 | 44644 | jjdelcerro | "[1990, precio]",
|
520 | ArrayUtils.toString(builder.variables_names()) |
||
521 | ); |
||
522 | assertEquals( |
||
523 | 44198 | jjdelcerro | "[]",
|
524 | 44644 | jjdelcerro | ArrayUtils.toString(builder.parameters_names()) |
525 | ); |
||
526 | } |
||
527 | |||
528 | public void testInvokeMethod1() { |
||
529 | // 'hola'.length()
|
||
530 | ExpressionBuilder builder = createExpressionBuilder(); |
||
531 | builder.set( |
||
532 | builder.method( |
||
533 | builder.constant("hola"),
|
||
534 | "length"
|
||
535 | ) |
||
536 | ); |
||
537 | |||
538 | assertEquals( |
||
539 | "'hola'->length()",
|
||
540 | builder.toString() |
||
541 | ); |
||
542 | assertEquals( |
||
543 | "[]",
|
||
544 | 44198 | jjdelcerro | ArrayUtils.toString(builder.variables_names()) |
545 | ); |
||
546 | assertEquals( |
||
547 | 44644 | jjdelcerro | "[]",
|
548 | 44198 | jjdelcerro | ArrayUtils.toString(builder.parameters_names()) |
549 | ); |
||
550 | } |
||
551 | |||
552 | 44644 | jjdelcerro | |
553 | public void testInvokeMethod2() { |
||
554 | // 'hola'.indexOf('l')
|
||
555 | ExpressionBuilder builder = createExpressionBuilder(); |
||
556 | builder.set( |
||
557 | builder.method( |
||
558 | builder.constant("hola"),
|
||
559 | "indexOf",
|
||
560 | builder.constant("l")
|
||
561 | ) |
||
562 | 43128 | jjdelcerro | ); |
563 | 44644 | jjdelcerro | |
564 | 43128 | jjdelcerro | assertEquals( |
565 | 44644 | jjdelcerro | "'hola'->indexOf('l')",
|
566 | 43128 | jjdelcerro | builder.toString() |
567 | ); |
||
568 | assertEquals( |
||
569 | 44644 | jjdelcerro | "[]",
|
570 | 44198 | jjdelcerro | ArrayUtils.toString(builder.variables_names()) |
571 | 43128 | jjdelcerro | ); |
572 | assertEquals( |
||
573 | 44644 | jjdelcerro | "[]",
|
574 | 44198 | jjdelcerro | ArrayUtils.toString(builder.parameters_names()) |
575 | 43128 | jjdelcerro | ); |
576 | } |
||
577 | 44644 | jjdelcerro | |
578 | public void testDecimal1() { |
||
579 | // 23.1
|
||
580 | ExpressionBuilder builder = createExpressionBuilder(); |
||
581 | builder.set( |
||
582 | builder.constant(23.1)
|
||
583 | 43128 | jjdelcerro | ); |
584 | 44644 | jjdelcerro | |
585 | 43128 | jjdelcerro | assertEquals( |
586 | 44644 | jjdelcerro | "23.1",
|
587 | 43128 | jjdelcerro | builder.toString() |
588 | ); |
||
589 | assertEquals( |
||
590 | 44644 | jjdelcerro | "[]",
|
591 | 44198 | jjdelcerro | ArrayUtils.toString(builder.variables_names()) |
592 | 43128 | jjdelcerro | ); |
593 | assertEquals( |
||
594 | "[]",
|
||
595 | 44198 | jjdelcerro | ArrayUtils.toString(builder.parameters_names()) |
596 | 43128 | jjdelcerro | ); |
597 | } |
||
598 | 44364 | jjdelcerro | |
599 | 44644 | jjdelcerro | public void testComplexExpression1() { |
600 | ExpressionBuilder builder = ExpressionUtils.createExpressionBuilder(); |
||
601 | 44364 | jjdelcerro | |
602 | 44644 | jjdelcerro | builder.and( |
603 | builder.eq( |
||
604 | builder.lower(builder.variable("colum_name_c")),
|
||
605 | builder.parameter("colum_name_p")
|
||
606 | ) |
||
607 | ); |
||
608 | builder.and( |
||
609 | builder.group( |
||
610 | builder.or( |
||
611 | builder.like( |
||
612 | builder.lower( builder.variable("uno")),
|
||
613 | builder.constant("%10")
|
||
614 | ), |
||
615 | builder.lt( |
||
616 | builder.variable("dos"),
|
||
617 | builder.constant(-3.5)
|
||
618 | ) |
||
619 | ) |
||
620 | 44376 | jjdelcerro | ) |
621 | ); |
||
622 | 44644 | jjdelcerro | builder.and( |
623 | builder.gt( |
||
624 | builder.variable("tres"),
|
||
625 | builder.constant(123456789)
|
||
626 | 44364 | jjdelcerro | ) |
627 | ); |
||
628 | assertEquals( |
||
629 | 45327 | omartinez | "((( (LOWER(\"colum_name_c\")) = (?) ) AND ( (( (LOWER(\"uno\")) LIKE ('%10') ) OR ( (\"dos\") < (-3.5) )) )) AND ( (\"tres\") > (123456789) ))",
|
630 | 44364 | jjdelcerro | builder.toString() |
631 | ); |
||
632 | assertEquals( |
||
633 | 44644 | jjdelcerro | "[colum_name_c, dos, tres, uno]",
|
634 | 44364 | jjdelcerro | ArrayUtils.toString(builder.variables_names()) |
635 | ); |
||
636 | assertEquals( |
||
637 | 44644 | jjdelcerro | "[\"colum_name_p\"]",
|
638 | 44364 | jjdelcerro | ArrayUtils.toString(builder.parameters_names()) |
639 | ); |
||
640 | } |
||
641 | 44644 | jjdelcerro | |
642 | 44797 | jjdelcerro | public void testConstant() { |
643 | ExpressionBuilder builder = createExpressionBuilder(); |
||
644 | |||
645 | ExpressionBuilder.Value v = builder.constant(10,DataTypes.INT);
|
||
646 | assertEquals("10", v.toString());
|
||
647 | |||
648 | v = builder.constant("10",DataTypes.INT);
|
||
649 | assertEquals("10", v.toString());
|
||
650 | |||
651 | v = builder.constant(10,DataTypes.LONG);
|
||
652 | assertEquals("10", v.toString());
|
||
653 | |||
654 | v = builder.constant("10",DataTypes.LONG);
|
||
655 | assertEquals("10", v.toString());
|
||
656 | |||
657 | v = builder.constant(10.5,DataTypes.DOUBLE);
|
||
658 | assertEquals("10.5", v.toString());
|
||
659 | |||
660 | v = builder.constant("10.5",DataTypes.DOUBLE);
|
||
661 | assertEquals("10.5", v.toString());
|
||
662 | |||
663 | v = builder.constant(10,DataTypes.STRING);
|
||
664 | assertEquals("'10'", v.toString());
|
||
665 | |||
666 | v = builder.constant(10.5,DataTypes.STRING);
|
||
667 | assertEquals("'10.5'", v.toString());
|
||
668 | |||
669 | } |
||
670 | 46010 | jjdelcerro | |
671 | public void testGetAttr1() { |
||
672 | ExpressionBuilder builder = createExpressionBuilder(); |
||
673 | builder.set( |
||
674 | builder.getattr("ARENA2_VEHICULOS","ID_ACCIDENTE") |
||
675 | ); |
||
676 | |||
677 | assertEquals( |
||
678 | "\"ARENA2_VEHICULOS\".\"ID_ACCIDENTE\"",
|
||
679 | builder.toString() |
||
680 | ); |
||
681 | assertEquals( |
||
682 | "[ARENA2_VEHICULOS, ID_ACCIDENTE]",
|
||
683 | ArrayUtils.toString(builder.variables_names()) |
||
684 | ); |
||
685 | assertEquals( |
||
686 | "[]",
|
||
687 | ArrayUtils.toString(builder.parameters_names()) |
||
688 | ); |
||
689 | } |
||
690 | 45327 | omartinez | |
691 | 46010 | jjdelcerro | } |