Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.geometry / org.gvsig.expressionevaluator.geometry.lib / org.gvsig.expressionevaluator.geometry.lib.impl / src / test / java / org / gvsig / expresionevaluator / impl / TestCodeToValue.java @ 44644

History | View | Annotate | Download (3.48 KB)

1
package org.gvsig.expresionevaluator.impl;
2

    
3
import junit.framework.TestCase;
4
import org.cresques.cts.IProjection;
5
import org.gvsig.expressionevaluator.Code;
6
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
7
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
8
import org.gvsig.expressionevaluator.GeometryExpressionBuilder;
9
import org.gvsig.expressionevaluator.GeometryExpressionUtils;
10
import org.gvsig.expressionevaluator.LexicalAnalyzer;
11
import org.gvsig.fmap.crs.CRSFactory;
12
import org.gvsig.fmap.geom.GeometryUtils;
13
import org.gvsig.fmap.geom.exception.CreateGeometryException;
14
import org.gvsig.fmap.geom.primitive.Point;
15
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
16

    
17
public class TestCodeToValue extends TestCase {
18
    
19
    public TestCodeToValue(String testName) {
20
        super(testName);
21
    }
22

    
23
    @Override
24
    protected void setUp() throws Exception {
25
        super.setUp();
26
        new DefaultLibrariesInitializer().fullInitialize();
27
    }
28

    
29
    @Override
30
    protected void tearDown() throws Exception {
31
        super.tearDown();
32
    }
33

    
34
    // TODO add test methods here. The name must begin with 'test'. For example:
35
    // public void testHello() {}
36
    
37
    protected LexicalAnalyzer createLexicalAnalyzer() {
38
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
39
        LexicalAnalyzer lexer = manager.createLexicalAnalyzer();
40
        return lexer;
41
    }
42

    
43
    protected org.gvsig.expressionevaluator.Compiler createCompiler() {
44
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
45
        org.gvsig.expressionevaluator.Compiler compiler = manager.createCompiler();
46
        compiler.setLexicalAnalyzer(createLexicalAnalyzer());
47
        return compiler;
48
    }
49
    
50
    public Code compileExpression(String source) {
51
        org.gvsig.expressionevaluator.Compiler compiler = createCompiler();
52
        Code code = compiler.compileExpression(source);
53
        return code;
54
    }
55
    
56
    public void test3() throws CreateGeometryException {
57
        GeometryExpressionBuilder builder = GeometryExpressionUtils.createExpressionBuilder();
58

    
59
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
60
        Point point = GeometryUtils.createPoint(10, 20);
61

    
62
        builder.set(        
63
            builder.ST_Intersects(
64
              builder.geometry(point,proj),
65
              builder.variable("the_geom")
66
            )
67
        );
68
        Code code = compileExpression(builder.toString());
69
        assertEquals(
70
                "ST_Intersects(ST_GeomFromWKB(DECODE('000000000140240000000000004034000000000000', 'hex'), 4326), \"the_geom\")",
71
                code.toValue().toString()
72
        );
73
    }
74
    
75
    public void test4() throws CreateGeometryException {
76
        GeometryExpressionBuilder builder = GeometryExpressionUtils.createExpressionBuilder();
77

    
78
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
79
        Point point = GeometryUtils.createPoint(10, 20);
80

    
81
        builder.set(        
82
            builder.function("ST_Intersects2",
83
                builder.geometry(point,proj),
84
                builder.variable("the_geom")
85
            )
86
        );
87
        Code code = compileExpression(builder.toString());
88
        assertEquals(
89
                "ST_Intersects2(ST_GeomFromWKB(DECODE('000000000140240000000000004034000000000000', 'hex'), 4326), \"the_geom\")",
90
                code.toValue().toString()
91
        );
92
    }
93
    
94
}