Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.h2spatial / org.gvsig.h2spatial.h2gis132 / org.gvsig.h2spatial.h2gis132.provider / src / test / java / org / gvsig / fmap / dal / store / h2 / operations / sql / TestSTDistance.java @ 45649

History | View | Annotate | Download (3.71 KB)

1 45472 jjdelcerro
package org.gvsig.fmap.dal.store.h2.operations.sql;
2
3
import java.util.List;
4
import junit.framework.TestCase;
5 45538 fdiaz
import org.cresques.cts.IProjection;
6
import org.gvsig.expressionevaluator.Expression;
7
import org.gvsig.expressionevaluator.ExpressionUtils;
8
import org.gvsig.expressionevaluator.GeometryExpressionBuilder;
9
import org.gvsig.fmap.crs.CRSFactory;
10
import org.gvsig.fmap.dal.DALLocator;
11
import org.gvsig.fmap.dal.DataManager;
12 45472 jjdelcerro
import org.gvsig.fmap.dal.DataQuery;
13 45538 fdiaz
import org.gvsig.fmap.dal.expressionevaluator.DALExpressionBuilder;
14 45472 jjdelcerro
import org.gvsig.fmap.dal.feature.FeatureQuery;
15
import org.gvsig.fmap.dal.feature.FeatureStore;
16
import org.gvsig.fmap.dal.feature.FeatureType;
17
import org.gvsig.fmap.dal.store.h2.TestUtils;
18
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
19
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
20
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
21
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
22
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.ResultSetForSetProviderOperation;
23 45538 fdiaz
import org.gvsig.fmap.geom.Geometry;
24
import org.gvsig.fmap.geom.GeometryUtils;
25
import org.gvsig.fmap.geom.primitive.Point;
26 45472 jjdelcerro
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
27
import org.slf4j.Logger;
28
import org.slf4j.LoggerFactory;
29
30 45538 fdiaz
public class TestSTDistance extends TestCase {
31 45472 jjdelcerro
32 45538 fdiaz
  private static final Logger LOGGER = LoggerFactory.getLogger(TestSTDistance.class);
33 45472 jjdelcerro
34 45538 fdiaz
  public TestSTDistance(String testName) {
35 45472 jjdelcerro
    super(testName);
36
  }
37
38
  @Override
39
  protected void setUp() throws Exception {
40
    super.setUp();
41
    new DefaultLibrariesInitializer().fullInitialize();
42
  }
43
44
  @Override
45
  protected void tearDown() throws Exception {
46
    super.tearDown();
47
  }
48
49 45538 fdiaz
  public void testSTDistance() throws Exception {
50 45649 jjdelcerro
    JDBCHelper helper = TestUtils.createJDBCHelper();
51 45472 jjdelcerro
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
52
    OperationsFactory operations = helper.getOperations();
53
54 45538 fdiaz
    List<String> expectedSQLs = TestUtils.getSQLs("testSTDistance.sql");
55 45472 jjdelcerro
56
    FeatureStore sourceStore = TestUtils.openSourceStore1();
57
58
    TableReference table = operations.createTableReference(
59
            "dbtest",
60
            sqlbuilder.default_schema(),
61
            "test",
62
            null
63
    );
64
    FeatureType featureType = sourceStore.getDefaultFeatureType();
65
    FeatureQuery query = sourceStore.createFeatureQuery();
66
67 45538 fdiaz
    IProjection proj = CRSFactory.getCRS("EPSG:4326");
68 45472 jjdelcerro
69 45538 fdiaz
    Point point = GeometryUtils.createPoint(10, 10);
70
    Geometry buffer = point.buffer(1);
71 45472 jjdelcerro
72
73 45538 fdiaz
    DataManager dataManager = DALLocator.getDataManager();
74
    DALExpressionBuilder dalBuilder = dataManager.createDALExpressionBuilder();
75
    GeometryExpressionBuilder builder = dalBuilder.expression();
76
    String filter = builder.ST_Intersects(
77
            builder.geometry(buffer, proj),
78
            builder.column(featureType.getDefaultGeometryAttributeName())
79
    ).toString();
80
    String sortBy = builder.ST_Distance(
81
            builder.geometry(buffer),
82
            builder.column(featureType.getDefaultGeometryAttributeName())
83
    ).toString();
84
    Expression sortByExpression = ExpressionUtils.createExpression(sortBy);
85 45472 jjdelcerro
86 45538 fdiaz
    query.setFilter(filter);
87
    query.getOrder().add(sortByExpression, true);
88
    query.setLimit(1);
89 45472 jjdelcerro
90
    ResultSetForSetProviderOperation resultSetForSetProvider = operations.createResultSetForSetProvider(
91
            table,
92
            null,
93
            null,
94
            query,
95
            featureType,
96
            featureType,
97
            0,
98
            0,
99
            0
100
    );
101
    String sql = resultSetForSetProvider.getSQL();
102
    System.out.println("###### SQL:"+sql);
103 45538 fdiaz
    System.out.println("###### EXP:"+expectedSQLs.get(0));
104 45472 jjdelcerro
105 45538 fdiaz
    assertEquals("ResultSetForSetProvider SQL", expectedSQLs.get(0), sql);
106 45472 jjdelcerro
  }
107
108
}