Revision 47734 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/TestGrammarCompiler.java

View differences:

TestGrammarCompiler.java
153 153

  
154 154
        Code code = compiler.compileExpression(source);
155 155
        link(code);
156
        checkEquals("BEGIN \"V1\" := 11; \"V2\" := 22; EXCEPTION -1 END ", code.toString());
156
        checkEquals("BEGIN \"V1\" := 11; \"V2\" := 22; EXCEPT -1 END ", code.toString());
157 157
    }
158 158

  
159 159
    public void testBlock3() {
......
187 187

  
188 188
        Code code = compiler.compileExpression(source);
189 189
        link(code);
190
        checkEquals("IF (\"V1\" = 11) THEN \"V2\" := 11 ELSE \"V2\" := 22 END IF", code.toString());
190
        checkEquals("IF (\"V1\" = 11) THEN \"V2\" := 11; ELSE \"V2\" := 22; END IF", code.toString());
191 191
    }
192 192

  
193 193
    public void testIfThenPassElsePass() {
......
197 197

  
198 198
        Code code = compiler.compileExpression(source);
199 199
        link(code);
200
        checkEquals("IF (\"V1\" = 11) THEN PASS ELSE PASS END IF", code.toString());
200
        checkEquals("IF (\"V1\" = 11) THEN PASS; ELSE PASS; END IF", code.toString());
201 201
    }
202 202

  
203 203
    public void testIfThenBlock() {
......
207 207

  
208 208
        Code code = compiler.compileExpression(source);
209 209
        link(code);
210
        checkEquals("IF (\"V1\" = 11) THEN BEGIN \"V2\" := 22; \"V1\" := 10; END  END IF", code.toString());
210
        checkEquals("IF (\"V1\" = 11) THEN \"V2\" := 22; \"V1\" := 10; END IF", code.toString());
211 211
    }
212 212

  
213 213
    public void testWhile() {
......
217 217

  
218 218
        Code code = compiler.compileExpression(source);
219 219
        link(code);
220
        checkEquals("WHILE \"(\"n\" < 10) LOOP \"n\" := (\"n\" + 1) END LOOP", code.toString());
220
        checkEquals("WHILE (\"n\" < 10) LOOP \"n\" := (\"n\" + 1) END LOOP ", code.toString());
221 221
    }
222 222

  
223 223
    public void testWhileBlock() {
......
227 227

  
228 228
        Code code = compiler.compileExpression(source);
229 229
        link(code);
230
        checkEquals("WHILE \"(\"n\" < 10) LOOP BEGIN \"n\" := (\"n\" + 1); print(\"n\"); END  END LOOP", code.toString());
230
        checkEquals("WHILE (\"n\" < 10) LOOP \"n\" := (\"n\" + 1); print(\"n\"); END LOOP ", code.toString());
231 231
    }
232 232

  
233 233
    public void testWhileBreak() {
......
237 237

  
238 238
        Code code = compiler.compileExpression(source);
239 239
        link(code);
240
        checkEquals("WHILE \"(\"n\" < 10) LOOP BEGIN \"n\" := (\"n\" + 1); print(\"n\"); BREAK; END  END LOOP", code.toString());
240
        checkEquals("WHILE (\"n\" < 10) LOOP \"n\" := (\"n\" + 1); print(\"n\"); BREAK; END LOOP ", code.toString());
241 241
    }
242 242

  
243 243
    public void testCast() {
......
298 298

  
299 299
        Code code = compiler.compileExpression(source);
300 300
        link(code);
301
        checkEquals("FOR \"n\" IN RANGE(10) LOOP BEGIN print(\"n\"); BREAK; END  END LOOP", code.toString());
301
        checkEquals("FOR \"n\" IN RANGE(10) LOOP print(\"n\"); BREAK; END LOOP", code.toString());
302 302
        Code code2  = compiler.compileExpression(code.toString());
303 303
        link(code2);
304
        checkEquals("FOR \"n\" IN RANGE(10) LOOP BEGIN print(\"n\"); BREAK; END  END LOOP", code2.toString());
304
        checkEquals("FOR \"n\" IN RANGE(10) LOOP print(\"n\"); BREAK; END LOOP", code2.toString());
305 305
    }
306 306

  
307 307
    public void testForEach2() {
......
330 330

  
331 331
        Code code = compiler.compileExpression(source);
332 332
        link(code);
333
        checkEquals("CASE WHEN (\"software\" LIKE '%gvSIG%') THEN 'gvSIG' ELSE 'Other' END", code.toString());
333
        checkEquals("CASE WHEN (\"software\" LIKE '%gvSIG%') THEN 'gvSIG'; ELSE 'Other'; END", code.toString());
334 334
    }
335 335

  
336 336
    public void testCase1() {
337
        String source = "CASE WHEN software LIKE '%gvSIG%' THEN 'gvSIG'; ELSE 'Other'; END CASE"; // ;)
337
        String source = "CASE WHEN software LIKE '%gvSIG%' THEN 10; 'gvSIG'; ELSE 20;'Other'; END CASE"; // ;)
338 338

  
339 339
        Compiler compiler = createCompiler();
340 340

  
341 341
        Code code = compiler.compileExpression(source);
342 342
        link(code);
343
        checkEquals("CASE WHEN (\"software\" LIKE '%gvSIG%') THEN 'gvSIG' ELSE 'Other' END", code.toString());
343
        checkEquals("CASE WHEN (\"software\" LIKE '%gvSIG%') THEN 10; 'gvSIG'; ELSE 20; 'Other'; END", code.toString());
344 344
    }
345 345

  
346 346
    public void testCase2() {
......
350 350

  
351 351
        Code code = compiler.compileExpression(source);
352 352
        link(code);
353
        checkEquals("CASE WHEN ((\"Field_1\" >= 75) AND (\"Field_1\" <= 79)) THEN 100 WHEN ((\"Field_1\" >= 80) AND (\"Field_1\" <= 84)) THEN 110 END", code.toString());
353
        checkEquals("CASE WHEN ((\"Field_1\" >= 75) AND (\"Field_1\" <= 79)) THEN 100; WHEN ((\"Field_1\" >= 80) AND (\"Field_1\" <= 84)) THEN 110; END", code.toString());
354 354
    }
355 355
    
356 356
    public void testCase3() {
......
360 360

  
361 361
        Code code = compiler.compileExpression(source);
362 362
        link(code);
363
        checkEquals("CASE WHEN ((\"Field_1\" >= 75) AND (\"Field_1\" <= 79)) THEN 100 WHEN ((\"Field_1\" >= 80) AND (\"Field_1\" <= 84)) THEN 110 ELSE 120 END", code.toString());
363
        checkEquals("CASE WHEN ((\"Field_1\" >= 75) AND (\"Field_1\" <= 79)) THEN 100; WHEN ((\"Field_1\" >= 80) AND (\"Field_1\" <= 84)) THEN 110; ELSE 120; END", code.toString());
364 364
    }
365 365
    
366 366
    public void testCase3b() {
......
369 369
        Compiler compiler = createCompiler();
370 370
        Code code = compiler.compileExpression(source);
371 371
        link(code);
372
        checkEquals("CASE WHEN ((\"Field_1\" >= 75) AND (\"Field_1\" <= 79)) THEN 100 WHEN ((\"Field_1\" >= 80) AND (\"Field_1\" <= 84)) THEN 110 ELSE 120 END", code.toString());
372
        checkEquals("CASE WHEN ((\"Field_1\" >= 75) AND (\"Field_1\" <= 79)) THEN 100; WHEN ((\"Field_1\" >= 80) AND (\"Field_1\" <= 84)) THEN 110; ELSE 120; END", code.toString());
373 373
        code = compiler.compileExpression(code.toString());
374 374
        link(code);
375
        checkEquals("CASE WHEN ((\"Field_1\" >= 75) AND (\"Field_1\" <= 79)) THEN 100 WHEN ((\"Field_1\" >= 80) AND (\"Field_1\" <= 84)) THEN 110 ELSE 120 END", code.toString());
375
        checkEquals("CASE WHEN ((\"Field_1\" >= 75) AND (\"Field_1\" <= 79)) THEN 100; WHEN ((\"Field_1\" >= 80) AND (\"Field_1\" <= 84)) THEN 110; ELSE 120; END", code.toString());
376 376
    }
377 377
    
378 378
    public void testDef1() {

Also available in: Unified diff