Revision 44139 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/TestCompiler.java

View differences:

TestCompiler.java
1 1
package org.gvsig.expresionevaluator.impl;
2 2

  
3
import org.gvsig.expressionevaluator.impl.SQLLexicalAnalyzer;
4
import org.gvsig.expressionevaluator.impl.DefaultCompiler;
5 3
import junit.framework.TestCase;
6 4
import org.gvsig.expressionevaluator.LexicalAnalyzer;
7 5
import org.gvsig.expressionevaluator.Compiler;
8 6
import org.gvsig.expressionevaluator.Code;
7
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
8
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
9 9
import org.gvsig.expressionevaluator.ExpressionSyntaxException;
10 10
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
11 11

  
......
30 30
    // TODO add test methods here. The name must begin with 'test'. For example:
31 31
    // public void testHello() {}
32 32

  
33
    
33 34
    protected LexicalAnalyzer createLexicalAnalyzer() {
34
        SQLLexicalAnalyzer lexer = new SQLLexicalAnalyzer();
35
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
36
        LexicalAnalyzer lexer = manager.createLexicalAnalyzer();
35 37
        return lexer;
36 38
    }
37
    
38
    protected Compiler createCompiler() {
39
        Compiler compiler = new DefaultCompiler();
39

  
40
    protected org.gvsig.expressionevaluator.Compiler createCompiler() {
41
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
42
        Compiler compiler = manager.createCompiler();
40 43
        compiler.setLexicalAnalyzer(createLexicalAnalyzer());
41 44
        return compiler;
42 45
    }
43 46
    
44
    
45 47
    public void testIdentifier1() {
46 48
        String source = "precio";
47 49

  
......
51 53
    }
52 54

  
53 55
    public void testIdentifier2() {
56
        Compiler compiler = createCompiler();
57
        compiler.getLexicalAnalyzer().setUseBracketsForIdentifiers(true);
58

  
54 59
        String source = "[precio]";
55 60

  
56
        Compiler compiler = createCompiler();
57 61
        Code code = compiler.compileExpression(source);
58 62
        assertEquals("\"precio\"", code.toString());
59 63
    }
60 64

  
61 65
    public void testIdentifier3() {
66
        Compiler compiler = createCompiler();
67

  
62 68
        String source = "\"precio\"";
63 69

  
64
        Compiler compiler = createCompiler();
65 70
        Code code = compiler.compileExpression(source);
66 71
        assertEquals("\"precio\"", code.toString());
67 72
    }
......
72 77

  
73 78
        Compiler compiler = createCompiler();
74 79
        Code code = compiler.compileExpression(source);
75
        assertEquals("true", code.toString());
80
        assertEquals("TRUE", code.toString());
76 81
    }
77 82

  
78 83
    public void testFalse() {
......
80 85

  
81 86
        Compiler compiler = createCompiler();
82 87
        Code code = compiler.compileExpression(source);
83
        assertEquals("false", code.toString());
88
        assertEquals("FALSE", code.toString());
84 89
    }
85 90

  
86 91
    public void testNull() {
......
88 93

  
89 94
        Compiler compiler = createCompiler();
90 95
        Code code = compiler.compileExpression(source);
91
        assertEquals("null", code.toString());
96
        assertEquals("NULL", code.toString());
92 97
    }
93 98

  
94 99
    public void testNotTrue() {
......
96 101

  
97 102
        Compiler compiler = createCompiler();
98 103
        Code code = compiler.compileExpression(source);
99
        assertEquals("not(true)", code.toString());
104
        assertEquals("NOT(TRUE)", code.toString());
100 105
    }
101 106

  
102 107
    public void testInteger() {
......
123 128
        operator(">=");
124 129
        operator("<");
125 130
        operator("<=");
126
        operator("like");
127
        operator("ilike");
131
        operator("LIKE");
132
        operator("ILIKE");
133
        operator("||");
128 134
        operator("+");
129 135
        operator("-");
130 136
        operator("*");
131
//        operator("^");
132
        operator("or");
133
        operator("and");
137
        operator("OR");
138
        operator("AND");
134 139
        operator("%");
135
        operator("is");
140
        operator("IS");
141

  
142
        operator("~");
136 143
    }
137 144

  
138 145
    public void testAddMul() {
......
168 175
        Compiler compiler = createCompiler();
169 176
        
170 177
        Code code = compiler.compileExpression(source);
171
        assertEquals("+(\"precio\", abs(negate(10)))", code.toString());
178
        assertEquals("+(\"precio\", abs(NEGATE(10)))", code.toString());
172 179
    }
173 180
    
174 181
    public void testPI() {
......
189 196
        assertEquals("+(\"precio\", CEIL(PI()))", code.toString());
190 197
    }
191 198
    
199
    public void testGetitem1() {
200
        String source = "LIST('uno','dos','tres')[1]" ;
201

  
202
        Compiler compiler = createCompiler();
203
        
204
        Code code = compiler.compileExpression(source);
205
        assertEquals("GETITEM(LIST('uno', 'dos', 'tres'), 1)", code.toString());
206
    }
207
    
192 208
    public void testConcat() {
193 209
        String source = "CONCAT(precio,' euros')";
194 210

  
......
208 224
    }
209 225
    
210 226
    public void test2() {
227
        Compiler compiler = createCompiler();
228
        compiler.getLexicalAnalyzer().setUseBracketsForIdentifiers(true);
229

  
211 230
        String source = "[1990] = 0.168873933773767";
212 231

  
213
        Compiler compiler = createCompiler();
214
        
215 232
        Code code = compiler.compileExpression(source);
216 233
        assertEquals("=(\"1990\", 0.168873933773767)", code.toString());
217 234
    }
218 235

  
219 236
    public void test2fields() {
237
        Compiler compiler = createCompiler();
238
        compiler.getLexicalAnalyzer().setUseBracketsForIdentifiers(true);
239

  
220 240
        String source = "[1990] = [precio]";
221 241

  
222
        Compiler compiler = createCompiler();
223
        
224 242
        Code code = compiler.compileExpression(source);
225 243
        assertEquals("=(\"1990\", \"precio\")", code.toString());
226 244
    }

Also available in: Unified diff