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 44006 jjdelcerro
package org.gvsig.expresionevaluator.impl;
2 43128 jjdelcerro
3 44006 jjdelcerro
import junit.framework.TestCase;
4 43128 jjdelcerro
import org.cresques.cts.IProjection;
5 44198 jjdelcerro
import org.gvsig.expressionevaluator.Code;
6
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
7
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
8 44644 jjdelcerro
import org.gvsig.expressionevaluator.GeometryExpressionBuilder;
9
import org.gvsig.expressionevaluator.GeometryExpressionUtils;
10 44198 jjdelcerro
import org.gvsig.expressionevaluator.LexicalAnalyzer;
11 43128 jjdelcerro
import org.gvsig.fmap.crs.CRSFactory;
12 44198 jjdelcerro
import org.gvsig.fmap.geom.GeometryUtils;
13 43128 jjdelcerro
import org.gvsig.fmap.geom.exception.CreateGeometryException;
14
import org.gvsig.fmap.geom.primitive.Point;
15 44006 jjdelcerro
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
16 43128 jjdelcerro
17 44198 jjdelcerro
public class TestCodeToValue extends TestCase {
18
19
    public TestCodeToValue(String testName) {
20 44006 jjdelcerro
        super(testName);
21
    }
22
23 43128 jjdelcerro
    @Override
24 44006 jjdelcerro
    protected void setUp() throws Exception {
25
        super.setUp();
26
        new DefaultLibrariesInitializer().fullInitialize();
27
    }
28 43128 jjdelcerro
29 44006 jjdelcerro
    @Override
30
    protected void tearDown() throws Exception {
31
        super.tearDown();
32 43128 jjdelcerro
    }
33 44006 jjdelcerro
34
    // TODO add test methods here. The name must begin with 'test'. For example:
35
    // public void testHello() {}
36 43128 jjdelcerro
37 44198 jjdelcerro
    protected LexicalAnalyzer createLexicalAnalyzer() {
38
        ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager();
39
        LexicalAnalyzer lexer = manager.createLexicalAnalyzer();
40
        return lexer;
41 43128 jjdelcerro
    }
42 44198 jjdelcerro
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 43128 jjdelcerro
50 44198 jjdelcerro
    public Code compileExpression(String source) {
51
        org.gvsig.expressionevaluator.Compiler compiler = createCompiler();
52
        Code code = compiler.compileExpression(source);
53
        return code;
54 43128 jjdelcerro
    }
55
56
    public void test3() throws CreateGeometryException {
57 44644 jjdelcerro
        GeometryExpressionBuilder builder = GeometryExpressionUtils.createExpressionBuilder();
58 44198 jjdelcerro
59 43128 jjdelcerro
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
60 44198 jjdelcerro
        Point point = GeometryUtils.createPoint(10, 20);
61
62 43128 jjdelcerro
        builder.set(
63
            builder.ST_Intersects(
64
              builder.geometry(point,proj),
65
              builder.variable("the_geom")
66
            )
67
        );
68 44198 jjdelcerro
        Code code = compileExpression(builder.toString());
69 43128 jjdelcerro
        assertEquals(
70 44198 jjdelcerro
                "ST_Intersects(ST_GeomFromWKB(DECODE('000000000140240000000000004034000000000000', 'hex'), 4326), \"the_geom\")",
71
                code.toValue().toString()
72 43128 jjdelcerro
        );
73
    }
74
75
    public void test4() throws CreateGeometryException {
76 44644 jjdelcerro
        GeometryExpressionBuilder builder = GeometryExpressionUtils.createExpressionBuilder();
77 44198 jjdelcerro
78 43128 jjdelcerro
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
79 44198 jjdelcerro
        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 43128 jjdelcerro
        );
87 44198 jjdelcerro
        Code code = compileExpression(builder.toString());
88 43128 jjdelcerro
        assertEquals(
89 44198 jjdelcerro
                "ST_Intersects2(ST_GeomFromWKB(DECODE('000000000140240000000000004034000000000000', 'hex'), 4326), \"the_geom\")",
90
                code.toValue().toString()
91 43128 jjdelcerro
        );
92
    }
93 44198 jjdelcerro
94 43128 jjdelcerro
}