Statistics
| Revision:

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 @ 44761

History | View | Annotate | Download (4.66 KB)

1
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
public class TestDateCompiler extends TestCase {
19

    
20
    public TestDateCompiler(String testName) {
21
        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
    
66
    private void link(Code code) {
67
      code.link(createSymbolTable());
68
    }
69

    
70
    public void testDate() {
71
        String source = "DATE '2020-02-18'";
72

    
73
        Compiler compiler = createCompiler();
74

    
75
        Code code = compiler.compileExpression(source);
76
        assertEquals("DATE('2020-02-18')", code.toString());
77
    }
78

    
79
    public void testTime() {
80
        String source = "TIME '19:01:00'";
81

    
82
        Compiler compiler = createCompiler();
83

    
84
        Code code = compiler.compileExpression(source);
85
        assertEquals("TIME('19:01:00')", code.toString());
86
    }
87

    
88
    public void testTimestamp() {
89
        String source = "TIMESTAMP '2020-02-18 19:01:00'";
90

    
91
        Compiler compiler = createCompiler();
92

    
93
        Code code = compiler.compileExpression(source);
94
        assertEquals("TIMESTAMP('2020-02-18 19:01:00')", code.toString());
95
    }
96

    
97
    public void testCurrentDate() {
98
        String source = "CURRENT_DATE()";
99

    
100
        Compiler compiler = createCompiler();
101

    
102
        Code code = compiler.compileExpression(source);
103
        assertEquals("CURRENT_DATE()", code.toString());
104
    }
105

    
106
    public void testCurrentTime() {
107
        String source = "CURRENT_TIME()";
108

    
109
        Compiler compiler = createCompiler();
110

    
111
        Code code = compiler.compileExpression(source);
112
        assertEquals("CURRENT_TIME()", code.toString());
113
    }
114

    
115
    public void testCurrentTimestamp() {
116
        String source = "CURRENT_TIMESTAMP()";
117

    
118
        Compiler compiler = createCompiler();
119

    
120
        Code code = compiler.compileExpression(source);
121
        assertEquals("CURRENT_TIMESTAMP()", code.toString());
122
    }
123

    
124
    public void testExtractDay() {
125
        String source = "EXTRACT(DAY FROM DATE '2020-02-18')";
126

    
127
        Compiler compiler = createCompiler();
128

    
129
        Code code = compiler.compileExpression(source);
130
        assertEquals("EXTRACT('DAY', DATE('2020-02-18'))", code.toString());
131
    }
132

    
133
    public void testToDate() {
134
        String source = "to_date('05 Dec 2000', 'DD Mon YYYY')";
135

    
136
        Compiler compiler = createCompiler();
137

    
138
        Code code = compiler.compileExpression(source);
139
        assertEquals("to_date('05 Dec 2000', 'DD Mon YYYY')", code.toString());
140
    }
141

    
142
    public void testToTimestamp() {
143
        String source = "to_timestamp('05 Dec 2000', 'DD Mon YYYY')";
144

    
145
        Compiler compiler = createCompiler();
146

    
147
        Code code = compiler.compileExpression(source);
148
        assertEquals("to_timestamp('05 Dec 2000', 'DD Mon YYYY')", code.toString());
149
    }
150

    
151

    
152

    
153
}