Revision 44855 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/TestInterpreter.java

View differences:

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

  
3 3
import junit.framework.TestCase;
4
import org.apache.commons.lang3.StringUtils;
5
import org.gvsig.expressionevaluator.AttributeHandler;
4 6
import org.gvsig.expressionevaluator.LexicalAnalyzer;
5 7
import org.gvsig.expressionevaluator.Compiler;
6 8
import org.gvsig.expressionevaluator.SymbolTable;
......
46 48
    }
47 49

  
48 50
    
49
    protected SymbolTable createSymbolTable() {
51
    protected MutableSymbolTable createSymbolTable() {
50 52
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
51 53
        MutableSymbolTable symbolTable = manager.createSymbolTable();
52 54
        symbolTable.setVar("precio", 200);
......
512 514
        assertEquals("dos", (String)v);
513 515
    }
514 516

  
517
    public void testGetattr1() {
518
        MutableSymbolTable symbolTable = createSymbolTable();
519
        Compiler compiler = createCompiler();
520
        Interpreter interpreter = createInterpreter(symbolTable);
521
        compiler.getLexicalAnalyzer().setUseBracketsForIdentifiers(false);
522

  
523
        symbolTable.setVar(
524
          "PARCELA", 
525
          (AttributeHandler) (String key) -> StringUtils.equalsIgnoreCase(key, "MASA")? "100":null
526
        );
527
        String source = "PARCELA.MASA" ;
528
        
529
        Code code = compiler.compileExpression(source);
530
        assertEquals("GETATTR(\"PARCELA\", 'MASA')", code.toString());
531
        
532
        Object v = interpreter.run(code);
533
        assertEquals("100", (String)v);
534
    }
515 535
}

Also available in: Unified diff