svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.h2spatial / org.gvsig.h2spatial.h2gis130 / org.gvsig.h2spatial.h2gis130.provider / src / test / java / org / gvsig / fmap / dal / store / h2 / STAsBinaryTest.java @ 45647
History | View | Annotate | Download (5.76 KB)
1 | 45472 | jjdelcerro | package org.gvsig.fmap.dal.store.h2; |
---|---|---|---|
2 | |||
3 | import junit.framework.TestCase; |
||
4 | import org.gvsig.fmap.dal.DALLocator; |
||
5 | import org.gvsig.fmap.dal.DataManager; |
||
6 | import org.gvsig.fmap.dal.DataTypes; |
||
7 | import org.gvsig.fmap.dal.feature.EditableFeature; |
||
8 | import org.gvsig.fmap.dal.feature.EditableFeatureType; |
||
9 | import org.gvsig.fmap.dal.feature.Feature; |
||
10 | import org.gvsig.fmap.dal.feature.FeatureSet; |
||
11 | import org.gvsig.fmap.dal.feature.FeatureStore; |
||
12 | import org.gvsig.fmap.dal.store.jdbc.JDBCNewStoreParameters; |
||
13 | import org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters; |
||
14 | import org.gvsig.fmap.dal.store.jdbc2.JDBCServerExplorer; |
||
15 | import org.gvsig.fmap.geom.Geometry; |
||
16 | import org.gvsig.fmap.geom.GeometryUtils; |
||
17 | import org.gvsig.fmap.geom.primitive.Envelope; |
||
18 | import org.gvsig.tools.library.impl.DefaultLibrariesInitializer; |
||
19 | |||
20 | /**
|
||
21 | *
|
||
22 | * @author jjdelcerro
|
||
23 | */
|
||
24 | public class STAsBinaryTest extends TestCase { |
||
25 | |||
26 | private static final String TABLE_EMPTY_WITH_GEOM = "TABLE_EMPTY_WITH_GEOM"; |
||
27 | private static final String TABLE_WITH_NULL_GEOMS = "TABLE_WITH_NULL_GEOMS"; |
||
28 | |||
29 | public static final String DBNAME = "STAsBinaryTest"; |
||
30 | |||
31 | public STAsBinaryTest(String testName) { |
||
32 | super(testName);
|
||
33 | } |
||
34 | |||
35 | @Override
|
||
36 | protected void setUp() throws Exception { |
||
37 | super.setUp();
|
||
38 | new DefaultLibrariesInitializer().fullInitialize();
|
||
39 | } |
||
40 | |||
41 | @Override
|
||
42 | protected void tearDown() throws Exception { |
||
43 | super.tearDown();
|
||
44 | } |
||
45 | private void createTableWithNullGeoms(JDBCServerExplorer explorer, String tableName) throws Exception { |
||
46 | DataManager dataManager = DALLocator.getDataManager(); |
||
47 | |||
48 | JDBCNewStoreParameters create_params = explorer.getAddParameters(); |
||
49 | create_params.setTable(tableName); |
||
50 | EditableFeatureType ft = create_params.getDefaultFeatureType(); |
||
51 | ft.add("ID", DataTypes.INT).setIsPrimaryKey(true); |
||
52 | ft.add("ISNULL", DataTypes.BOOLEAN);
|
||
53 | ft.add("GEOM", DataTypes.GEOMETRY)
|
||
54 | .setGeometryType(Geometry.TYPES.POINT, Geometry.SUBTYPES.GEOM2D). |
||
55 | setSRS("EPSG:4326");
|
||
56 | explorer.add(TestUtils.PROVIDER_NAME, create_params, false);
|
||
57 | |||
58 | JDBCStoreParameters open_params = explorer.getOpenParameters(); |
||
59 | open_params.setTable(tableName); |
||
60 | FeatureStore store = (FeatureStore) dataManager.openStore(TestUtils.PROVIDER_NAME, open_params); |
||
61 | store.edit(FeatureStore.MODE_FULLEDIT); |
||
62 | EditableFeature f; |
||
63 | int id=1; |
||
64 | f = store.createNewFeature(); |
||
65 | f.set("ID", id++);
|
||
66 | f.set("ISNULL", false); |
||
67 | f.set("GEOM", GeometryUtils.createPoint(10, 10)); |
||
68 | store.insert(f); |
||
69 | f = store.createNewFeature(); |
||
70 | f.set("ID", id++);
|
||
71 | f.set("ISNULL", true); |
||
72 | f.set("GEOM", null); |
||
73 | store.insert(f); |
||
74 | f = store.createNewFeature(); |
||
75 | f.set("ID", id++);
|
||
76 | f.set("ISNULL", true); |
||
77 | f.set("GEOM", null); |
||
78 | store.insert(f); |
||
79 | f = store.createNewFeature(); |
||
80 | f.set("ID", id++);
|
||
81 | f.set("ISNULL", false); |
||
82 | f.set("GEOM", GeometryUtils.createPoint(20, 20)); |
||
83 | store.insert(f); |
||
84 | store.finishEditing(); |
||
85 | } |
||
86 | |||
87 | private void createEmptyTable(JDBCServerExplorer explorer, String tableName) throws Exception { |
||
88 | JDBCNewStoreParameters params = explorer.getAddParameters(); |
||
89 | params.setTable(tableName); |
||
90 | EditableFeatureType ft = params.getDefaultFeatureType(); |
||
91 | ft.add("ID", DataTypes.INT).setIsPrimaryKey(true); |
||
92 | ft.add("ISNULL", DataTypes.BOOLEAN);
|
||
93 | ft.add("GEOM", DataTypes.GEOMETRY)
|
||
94 | .setGeometryType(Geometry.TYPES.POINT, Geometry.SUBTYPES.GEOM2D). |
||
95 | setSRS("EPSG:4326");
|
||
96 | explorer.add(TestUtils.PROVIDER_NAME, params, false);
|
||
97 | } |
||
98 | |||
99 | public void testGetEnvelopeOfEmptyTable() throws Exception { |
||
100 | DataManager dataManager = DALLocator.getDataManager(); |
||
101 | |||
102 | JDBCServerExplorer explorer = TestUtils.openServerExplorer(DBNAME); |
||
103 | createEmptyTable(explorer, TABLE_EMPTY_WITH_GEOM); |
||
104 | |||
105 | JDBCStoreParameters params = explorer.getOpenParameters(); |
||
106 | params.setTable(TABLE_EMPTY_WITH_GEOM); |
||
107 | FeatureStore store = (FeatureStore) dataManager.openStore(TestUtils.PROVIDER_NAME, params); |
||
108 | Envelope env = store.getEnvelope(); |
||
109 | assertNull(env); |
||
110 | } |
||
111 | |||
112 | public void testGetEnvelopeOfTableWithNullGeoms() throws Exception { |
||
113 | DataManager dataManager = DALLocator.getDataManager(); |
||
114 | |||
115 | JDBCServerExplorer explorer = TestUtils.openServerExplorer(DBNAME); |
||
116 | createTableWithNullGeoms(explorer, TABLE_WITH_NULL_GEOMS); |
||
117 | |||
118 | JDBCStoreParameters params = explorer.getOpenParameters(); |
||
119 | params.setTable(TABLE_WITH_NULL_GEOMS); |
||
120 | FeatureStore store = (FeatureStore) dataManager.openStore(TestUtils.PROVIDER_NAME, params); |
||
121 | Envelope env = store.getEnvelope(); |
||
122 | assertNotNull(env); |
||
123 | assertEquals("POLYGON ((10.0 10.0, 10.0 20.0, 20.0 20.0, 20.0 10.0, 10.0 10.0))", env.toString());
|
||
124 | } |
||
125 | |||
126 | public void testIterateOverTableWithNullGeoms() throws Exception { |
||
127 | DataManager dataManager = DALLocator.getDataManager(); |
||
128 | |||
129 | JDBCServerExplorer explorer = TestUtils.openServerExplorer(DBNAME); |
||
130 | createTableWithNullGeoms(explorer, TABLE_WITH_NULL_GEOMS); |
||
131 | |||
132 | JDBCStoreParameters params = explorer.getOpenParameters(); |
||
133 | params.setTable(TABLE_WITH_NULL_GEOMS); |
||
134 | FeatureStore store = (FeatureStore) dataManager.openStore(TestUtils.PROVIDER_NAME, params); |
||
135 | FeatureSet set = store.getFeatureSet(); |
||
136 | int sz = (int) set.getSize(); |
||
137 | // System.out.println("#### count: "+sz);
|
||
138 | for (Feature f : set ) {
|
||
139 | // System.out.println("#### feature: "+f.toString());
|
||
140 | if( !f.getBoolean("ISNULL") ) { |
||
141 | assertNotNull(f.getGeometry("GEOM"));
|
||
142 | } |
||
143 | } |
||
144 | assertEquals(4, sz);
|
||
145 | } |
||
146 | } |