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 / TestDateCompiler.java @ 45213
History | View | Annotate | Download (4.66 KB)
1 | 44139 | jjdelcerro | package org.gvsig.expresionevaluator.impl; |
---|---|---|---|
2 | |||
3 | import junit.framework.TestCase; |
||
4 | import org.gvsig.expressionevaluator.Code; |
||
5 | import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
||
6 | import org.gvsig.expressionevaluator.ExpressionEvaluatorManager; |
||
7 | import org.gvsig.expressionevaluator.Interpreter; |
||
8 | import org.gvsig.expressionevaluator.LexicalAnalyzer; |
||
9 | import org.gvsig.expressionevaluator.SymbolTable; |
||
10 | import org.gvsig.expressionevaluator.Compiler; |
||
11 | import org.gvsig.expressionevaluator.MutableSymbolTable; |
||
12 | import org.gvsig.tools.library.impl.DefaultLibrariesInitializer; |
||
13 | |||
14 | /**
|
||
15 | *
|
||
16 | * @author jjdelcerro
|
||
17 | */
|
||
18 | 44761 | jjdelcerro | public class TestDateCompiler extends TestCase { |
19 | 44139 | jjdelcerro | |
20 | 44761 | jjdelcerro | public TestDateCompiler(String testName) { |
21 | 44139 | jjdelcerro | super(testName);
|
22 | } |
||
23 | |||
24 | @Override
|
||
25 | protected void setUp() throws Exception { |
||
26 | super.setUp();
|
||
27 | new DefaultLibrariesInitializer().fullInitialize();
|
||
28 | } |
||
29 | |||
30 | @Override
|
||
31 | protected void tearDown() throws Exception { |
||
32 | super.tearDown();
|
||
33 | } |
||
34 | |||
35 | // TODO add test methods here. The name must begin with 'test'. For example:
|
||
36 | // public void testHello() {}
|
||
37 | |||
38 | protected LexicalAnalyzer createLexicalAnalyzer() {
|
||
39 | ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager(); |
||
40 | LexicalAnalyzer lexer = manager.createLexicalAnalyzer(); |
||
41 | return lexer;
|
||
42 | } |
||
43 | |||
44 | protected org.gvsig.expressionevaluator.Compiler createCompiler() {
|
||
45 | ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager(); |
||
46 | Compiler compiler = manager.createCompiler();
|
||
47 | compiler.setLexicalAnalyzer(createLexicalAnalyzer()); |
||
48 | return compiler;
|
||
49 | } |
||
50 | |||
51 | protected SymbolTable createSymbolTable() {
|
||
52 | ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager(); |
||
53 | MutableSymbolTable symbolTable = manager.createSymbolTable(); |
||
54 | symbolTable.setVar("precio", 200); |
||
55 | symbolTable.setVar("1990", 0.168873933773767); |
||
56 | return symbolTable;
|
||
57 | } |
||
58 | |||
59 | protected Interpreter createInterpreter(SymbolTable symbolTable) {
|
||
60 | ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager(); |
||
61 | Interpreter interpreter = manager.createInterpreter(); |
||
62 | interpreter.setSymbolTable(symbolTable); |
||
63 | return interpreter;
|
||
64 | } |
||
65 | 44738 | jjdelcerro | |
66 | private void link(Code code) { |
||
67 | code.link(createSymbolTable()); |
||
68 | } |
||
69 | 44139 | jjdelcerro | |
70 | 44761 | jjdelcerro | public void testDate() { |
71 | String source = "DATE '2020-02-18'"; |
||
72 | 44139 | jjdelcerro | |
73 | Compiler compiler = createCompiler();
|
||
74 | |||
75 | Code code = compiler.compileExpression(source); |
||
76 | 44761 | jjdelcerro | assertEquals("DATE('2020-02-18')", code.toString());
|
77 | 44139 | jjdelcerro | } |
78 | |||
79 | 44761 | jjdelcerro | public void testTime() { |
80 | String source = "TIME '19:01:00'"; |
||
81 | 44139 | jjdelcerro | |
82 | Compiler compiler = createCompiler();
|
||
83 | |||
84 | Code code = compiler.compileExpression(source); |
||
85 | 44761 | jjdelcerro | assertEquals("TIME('19:01:00')", code.toString());
|
86 | 44139 | jjdelcerro | } |
87 | |||
88 | 44761 | jjdelcerro | public void testTimestamp() { |
89 | String source = "TIMESTAMP '2020-02-18 19:01:00'"; |
||
90 | 44384 | jjdelcerro | |
91 | Compiler compiler = createCompiler();
|
||
92 | |||
93 | Code code = compiler.compileExpression(source); |
||
94 | 44761 | jjdelcerro | assertEquals("TIMESTAMP('2020-02-18 19:01:00')", code.toString());
|
95 | 44384 | jjdelcerro | } |
96 | |||
97 | 44761 | jjdelcerro | public void testCurrentDate() { |
98 | String source = "CURRENT_DATE()"; |
||
99 | 44139 | jjdelcerro | |
100 | Compiler compiler = createCompiler();
|
||
101 | |||
102 | Code code = compiler.compileExpression(source); |
||
103 | 44761 | jjdelcerro | assertEquals("CURRENT_DATE()", code.toString());
|
104 | 44139 | jjdelcerro | } |
105 | |||
106 | 44761 | jjdelcerro | public void testCurrentTime() { |
107 | String source = "CURRENT_TIME()"; |
||
108 | 44384 | jjdelcerro | |
109 | Compiler compiler = createCompiler();
|
||
110 | |||
111 | Code code = compiler.compileExpression(source); |
||
112 | 44761 | jjdelcerro | assertEquals("CURRENT_TIME()", code.toString());
|
113 | 44384 | jjdelcerro | } |
114 | |||
115 | 44761 | jjdelcerro | public void testCurrentTimestamp() { |
116 | String source = "CURRENT_TIMESTAMP()"; |
||
117 | 44139 | jjdelcerro | |
118 | Compiler compiler = createCompiler();
|
||
119 | |||
120 | Code code = compiler.compileExpression(source); |
||
121 | 44761 | jjdelcerro | assertEquals("CURRENT_TIMESTAMP()", code.toString());
|
122 | 44139 | jjdelcerro | } |
123 | |||
124 | 44761 | jjdelcerro | public void testExtractDay() { |
125 | String source = "EXTRACT(DAY FROM DATE '2020-02-18')"; |
||
126 | 44139 | jjdelcerro | |
127 | Compiler compiler = createCompiler();
|
||
128 | |||
129 | Code code = compiler.compileExpression(source); |
||
130 | 44761 | jjdelcerro | assertEquals("EXTRACT('DAY', DATE('2020-02-18'))", code.toString());
|
131 | 44139 | jjdelcerro | } |
132 | |||
133 | 44761 | jjdelcerro | public void testToDate() { |
134 | String source = "to_date('05 Dec 2000', 'DD Mon YYYY')"; |
||
135 | 44139 | jjdelcerro | |
136 | Compiler compiler = createCompiler();
|
||
137 | |||
138 | Code code = compiler.compileExpression(source); |
||
139 | 44761 | jjdelcerro | assertEquals("to_date('05 Dec 2000', 'DD Mon YYYY')", code.toString());
|
140 | 44139 | jjdelcerro | } |
141 | |||
142 | 44761 | jjdelcerro | public void testToTimestamp() { |
143 | String source = "to_timestamp('05 Dec 2000', 'DD Mon YYYY')"; |
||
144 | 44139 | jjdelcerro | |
145 | Compiler compiler = createCompiler();
|
||
146 | |||
147 | Code code = compiler.compileExpression(source); |
||
148 | 44761 | jjdelcerro | assertEquals("to_timestamp('05 Dec 2000', 'DD Mon YYYY')", code.toString());
|
149 | 44139 | jjdelcerro | } |
150 | |||
151 | |||
152 | |||
153 | } |