Revision 47099 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
import java.util.List;
4 3
import java.util.Map;
5 4
import junit.framework.TestCase;
6 5
import org.apache.commons.lang3.StringUtils;
6
import org.apache.commons.lang3.tuple.ImmutablePair;
7
import org.apache.commons.lang3.tuple.Pair;
7 8
import org.gvsig.expressionevaluator.AttributeHandler;
8 9
import org.gvsig.expressionevaluator.LexicalAnalyzer;
9 10
import org.gvsig.expressionevaluator.Compiler;
......
729 730
        assertEquals( 2, v);
730 731
    }    
731 732
    
733
    public void testLike() {
734
        Pair<String, Boolean>[] sources = new Pair[] {
735
//            new ImmutablePair<>("'\\110?' LIKE '\\\\%?'", Boolean.TRUE), 
736
            new ImmutablePair<>("'1.3'   LIKE '%||%'", Boolean.FALSE),
737
            new ImmutablePair<>("'1.3||' LIKE '%||%'", Boolean.TRUE),
738
            new ImmutablePair<>("'1.3'   LIKE '%.%'", Boolean.TRUE),
739
            new ImmutablePair<>("'123'   LIKE '%.%'", Boolean.FALSE),
740
            new ImmutablePair<>("'123'   LIKE '%[%'", Boolean.FALSE),
741
            new ImmutablePair<>("'12[3]' LIKE '%[%'", Boolean.TRUE),
742
            new ImmutablePair<>("'12[3]' LIKE '%]%'", Boolean.TRUE),
743
            new ImmutablePair<>("'123]'  LIKE '%[%'", Boolean.FALSE),
744
            new ImmutablePair<>("'(1{3}|3)' LIKE '(%{%}|%)'", Boolean.TRUE),
745
            new ImmutablePair<>("'(1{3}|3' LIKE '(%{%}|%)'", Boolean.FALSE),
746
            new ImmutablePair<>("'1*?' LIKE '%*&%?'", Boolean.FALSE),
747
            new ImmutablePair<>("'1*&10?' LIKE '%*&%?'", Boolean.TRUE),
748
        };
749

  
750
        MutableSymbolTable symbolTable = createSymbolTable();
751
        Compiler compiler = createCompiler();
752
        Interpreter interpreter = createInterpreter(symbolTable);
753
        
754
        for (Pair<String, Boolean> source : sources) {
755
            Code code = compiler.compileExpression(source.getLeft());
756
            Object v = interpreter.run(code);
757
            assertEquals(source.getLeft(), source.getRight(), v);
758
        }
759
    }    
760

  
761
    public void testNotLike1() {
762
        String source =  "NOT ( FIELD LIKE '%||%' )";
763

  
764
        MutableSymbolTable symbolTable = createSymbolTable();
765
        symbolTable.setVar("FIELD", "1.3");
766
        Compiler compiler = createCompiler();
767
        Interpreter interpreter = createInterpreter(symbolTable);
768
        
769
        Code code = compiler.compileExpression(source);
770
        Object v = interpreter.run(code);
771
        assertEquals( true, v);
772
    }    
732 773
}

Also available in: Unified diff