root / trunk / libraries / libDataSourceDBBaseDrivers / src-test / org / gvsig / data / datastores / vectorial / driver / jdbc / DataStoreTest.java @ 19610
History | View | Annotate | Download (7.95 KB)
1 |
package org.gvsig.data.datastores.vectorial.driver.jdbc; |
---|---|
2 |
|
3 |
import java.io.File; |
4 |
import java.sql.Connection; |
5 |
import java.sql.DriverManager; |
6 |
import java.sql.SQLException; |
7 |
import java.util.Iterator; |
8 |
|
9 |
import junit.framework.TestCase; |
10 |
|
11 |
import org.gvsig.data.DataSourceManager; |
12 |
import org.gvsig.data.IDataStoreParameters; |
13 |
import org.gvsig.data.datastores.vectorial.driver.DriverStore; |
14 |
import org.gvsig.data.datastores.vectorial.driver.IDriverParameters; |
15 |
import org.gvsig.data.datastores.vectorial.driver.IDriverStoreParameters; |
16 |
import org.gvsig.data.datastores.vectorial.driver.jdbc.h2.H2DriverParameters; |
17 |
import org.gvsig.data.datastores.vectorial.driver.jdbc.h2.Register; |
18 |
import org.gvsig.data.exception.CloseException; |
19 |
import org.gvsig.data.exception.InitializeException; |
20 |
import org.gvsig.data.exception.OpenException; |
21 |
import org.gvsig.data.exception.ReadException; |
22 |
import org.gvsig.data.exception.WriteException; |
23 |
import org.gvsig.data.vectorial.DefaultAttributeDescriptor; |
24 |
import org.gvsig.data.vectorial.IFeature; |
25 |
import org.gvsig.data.vectorial.IFeatureAttributeDescriptor; |
26 |
import org.gvsig.data.vectorial.IFeatureCollection; |
27 |
import org.gvsig.data.vectorial.IFeatureStore; |
28 |
import org.gvsig.data.vectorial.IFeatureType; |
29 |
import org.gvsig.data.vectorial.visitor.PrintlnFeaturesVisitor; |
30 |
import org.gvsig.exceptions.BaseException; |
31 |
|
32 |
|
33 |
public class DataStoreTest extends TestCase { |
34 |
|
35 |
// private File dbffile = new File(DataStoreTest.class.getResource("data/prueba.dbf").getFile());
|
36 |
// private File shpfile = new File(DataStoreTest.class.getResource("data/prueba.shp").getFile());
|
37 |
|
38 |
public static void main(String[] args) { |
39 |
junit.textui.TestRunner.run(DataStoreTest.class); |
40 |
} |
41 |
|
42 |
protected void setUp() throws Exception { |
43 |
super.setUp();
|
44 |
|
45 |
} |
46 |
|
47 |
public void testH2() { |
48 |
System.out.println("======= H2 =============="); |
49 |
org.gvsig.data.datastores.vectorial.driver.Register.selfRegister(); |
50 |
Register.selfRegister(); |
51 |
|
52 |
DataSourceManager dsm=DataSourceManager.getManager(); |
53 |
|
54 |
|
55 |
H2DriverParameters dp=(H2DriverParameters)dsm.createDriverParameters("h2");
|
56 |
|
57 |
|
58 |
dp.setHost("localhost");
|
59 |
dp.setUser("SA");
|
60 |
dp.setPassw("");
|
61 |
dp.setFields("*");
|
62 |
dp.setGeometryField("GEOMETRY");
|
63 |
dp.setTableName("TablaPrueba28244");
|
64 |
dp.setFieldId("id");
|
65 |
|
66 |
|
67 |
driverTest((IDriverParameters)dp,null,null,true); |
68 |
|
69 |
// IFeatureStore fs = createFeatureStore(dp);
|
70 |
// assertNotNull("Can't create Feature Store", fs);
|
71 |
//
|
72 |
// fs.open();
|
73 |
//
|
74 |
// Iterator it;
|
75 |
// IFeatureCollection fc;
|
76 |
// Comparable v1,v2;
|
77 |
// IFeature feature,pfeature;
|
78 |
// long count;
|
79 |
//
|
80 |
//
|
81 |
// fc = (IFeatureCollection)fs.getDataCollection();
|
82 |
//
|
83 |
// assertEquals(9, fc.size());
|
84 |
//
|
85 |
// fc = (IFeatureCollection)fs.getDataCollection(null,"lower(NOMBRE) like 'b%'",null);
|
86 |
//
|
87 |
// assertEquals(2, fc.size());
|
88 |
//
|
89 |
// it = fc.iterator();
|
90 |
// count=0;
|
91 |
// while (it.hasNext()){
|
92 |
// feature = (IFeature)it.next();
|
93 |
// assertTrue("Filter error",feature.getString("NOMBRE").toLowerCase().startsWith("b"));
|
94 |
// count++;
|
95 |
// }
|
96 |
// assertEquals("Iteration error",2,count);
|
97 |
//
|
98 |
//
|
99 |
// fc = (IFeatureCollection)fs.getDataCollection(null,null,"NOMBRE ASC");
|
100 |
// assertEquals(9, fc.size());
|
101 |
// it = fc.iterator();
|
102 |
// count=0;
|
103 |
// pfeature = (IFeature)it.next();
|
104 |
// count++;
|
105 |
// while (it.hasNext()){
|
106 |
// feature = (IFeature)it.next();
|
107 |
// v1 = (Comparable)pfeature.get("NOMBRE");
|
108 |
// v2 = (Comparable)feature.get("NOMBRE");
|
109 |
// pfeature=feature;
|
110 |
// assertTrue("Short error", (v1.compareTo(v1) <= 0));
|
111 |
// count++;
|
112 |
// }
|
113 |
// assertEquals("Iteration error",9,count);
|
114 |
//
|
115 |
//
|
116 |
// fc = (IFeatureCollection)fs.getDataCollection(null,null,"NOMBRE DESC");
|
117 |
// assertEquals(9, fc.size());
|
118 |
// it = fc.iterator();
|
119 |
//
|
120 |
// count=0;
|
121 |
// pfeature = (IFeature)it.next();
|
122 |
// count++;
|
123 |
// while (it.hasNext()){
|
124 |
// feature = (IFeature)it.next();
|
125 |
// v1 = (Comparable)pfeature.get("NOMBRE");
|
126 |
// v2 = (Comparable)feature.get("NOMBRE");
|
127 |
// pfeature=feature;
|
128 |
// assertTrue("Short error", (v1.compareTo(v1) >= 0));
|
129 |
// count++;
|
130 |
// }
|
131 |
// assertEquals("Iteration error",9,count);
|
132 |
//
|
133 |
//
|
134 |
// fc = (IFeatureCollection)fs.getDataCollection(null,"lower(NOMBRE) like 'b%'","NOMBRE");
|
135 |
//
|
136 |
// assertEquals(2, fc.size());
|
137 |
//
|
138 |
// it = fc.iterator();
|
139 |
//
|
140 |
// count=0;
|
141 |
// pfeature = (IFeature)it.next();
|
142 |
// assertTrue(pfeature.getString("NOMBRE").toLowerCase().startsWith("b"));
|
143 |
// count++;
|
144 |
// while (it.hasNext()){
|
145 |
// feature = (IFeature)it.next();
|
146 |
// assertTrue("Filter error",feature.getString("NOMBRE").toLowerCase().startsWith("b"));
|
147 |
// v1 = (Comparable)pfeature.get("NOMBRE");
|
148 |
// v2 = (Comparable)feature.get("NOMBRE");
|
149 |
// pfeature=feature;
|
150 |
// assertTrue("Short error", (v1.compareTo(v1) <= 0));
|
151 |
// count++;
|
152 |
// }
|
153 |
// assertEquals("Iteration error",2,count);
|
154 |
//
|
155 |
//
|
156 |
//
|
157 |
// fc = (IFeatureCollection)fs.getDataCollection(null,null,"Tipo,lower(NOMBRE) Desc");
|
158 |
// assertEquals(9, fc.size());
|
159 |
// it = fc.iterator();
|
160 |
// count=0;
|
161 |
// pfeature = (IFeature)it.next();
|
162 |
// System.out.println(pfeature.getString("NOMBRE"));
|
163 |
// count++;
|
164 |
// while (it.hasNext()){
|
165 |
// feature = (IFeature)it.next();
|
166 |
// v1 = (Comparable)((String)pfeature.get("NOMBRE")).toLowerCase();
|
167 |
// v2 = (Comparable)((String)feature.get("NOMBRE")).toLowerCase();
|
168 |
// pfeature=feature;
|
169 |
// assertTrue("Short error", (v1.compareTo(v2) >= 0));
|
170 |
// System.out.println(pfeature.getString("NOMBRE"));
|
171 |
// count++;
|
172 |
// }
|
173 |
// assertEquals("Iteration error",9,count);
|
174 |
//
|
175 |
//
|
176 |
// try {
|
177 |
// fs.close();
|
178 |
// } catch (CloseException e) {
|
179 |
// e.printStackTrace();
|
180 |
// fail("Exception:" + e);
|
181 |
// }
|
182 |
//
|
183 |
//
|
184 |
// System.out.println("======= /H2 ==============");
|
185 |
|
186 |
} |
187 |
|
188 |
|
189 |
private IFeatureStore createFeatureStore(IDriverParameters dp){
|
190 |
DataSourceManager dsm=DataSourceManager.getManager(); |
191 |
|
192 |
IDataStoreParameters dsp=dsm.createDataStoreParameters(DriverStore.DATASTORE_NAME); |
193 |
|
194 |
((IDriverStoreParameters)dsp).setDriverParameters(dp); |
195 |
IFeatureStore fs=null;
|
196 |
try {
|
197 |
fs = (IFeatureStore)dsm.createDataStore(dsp); |
198 |
} catch (InitializeException e) {
|
199 |
e.printStackTrace(); |
200 |
fail("Exception:" + e);
|
201 |
} |
202 |
return fs;
|
203 |
|
204 |
} |
205 |
|
206 |
|
207 |
private void driverTest(IDriverParameters dp,String filter, String order,boolean testEdit){ |
208 |
DataSourceManager dsm=DataSourceManager.getManager(); |
209 |
|
210 |
IDataStoreParameters dsp=dsm.createDataStoreParameters(DriverStore.DATASTORE_NAME); |
211 |
|
212 |
((IDriverStoreParameters)dsp).setDriverParameters(dp); |
213 |
IFeatureStore fs=createFeatureStore(dp); |
214 |
|
215 |
try {
|
216 |
fs.open(); |
217 |
} catch (OpenException e2) {
|
218 |
e2.printStackTrace(); |
219 |
fail(); |
220 |
} |
221 |
|
222 |
if (fs.isEditable() && testEdit) {
|
223 |
fs.startEditing(); |
224 |
|
225 |
IFeature feature1 = fs.createDefaultFeature(false);
|
226 |
IFeature feature2 = fs.createDefaultFeature(false);
|
227 |
IFeature feature3 = fs.createDefaultFeature(false);
|
228 |
|
229 |
fs.insert(feature1); |
230 |
fs.insert(feature2); |
231 |
|
232 |
fs.update(feature3,feature1); |
233 |
fs.delete(feature3); |
234 |
fs.delete(feature2); |
235 |
} |
236 |
|
237 |
//Mostrar por consola todos los registros.
|
238 |
IFeatureType ft= fs.getDefaultFeatureType(); |
239 |
IFeatureCollection featureCollection; |
240 |
// featureCollection = (IFeatureCollection)fs.getDataCollection();
|
241 |
// featureCollection = (IFeatureCollection)fs.getDataCollection(ft,"NOMBRE = 'CALPE'",null);
|
242 |
// featureCollection = (IFeatureCollection)fs.getDataCollection(ft,"AREA > 3.2213163729E7 and AREA < 3.2213163749E7",null);
|
243 |
featureCollection = (IFeatureCollection)fs.getDataCollection(ft,filter,order); |
244 |
|
245 |
PrintlnFeaturesVisitor visitor=new PrintlnFeaturesVisitor(ft);
|
246 |
try {
|
247 |
featureCollection.accept(visitor); |
248 |
} catch (BaseException e1) {
|
249 |
e1.printStackTrace(); |
250 |
fail("Exception: "+e1);
|
251 |
} |
252 |
|
253 |
if (fs.isEditable() && testEdit){
|
254 |
try {
|
255 |
fs.finishEditing(); |
256 |
} catch (WriteException e) {
|
257 |
e.printStackTrace(); |
258 |
fail("Exception: "+e);
|
259 |
} catch (ReadException e) {
|
260 |
e.printStackTrace(); |
261 |
fail("Exception: "+e);
|
262 |
} |
263 |
} |
264 |
try {
|
265 |
fs.close(); |
266 |
} catch (CloseException e) {
|
267 |
e.printStackTrace(); |
268 |
fail("Exception: "+e);
|
269 |
} |
270 |
fs.dispose(); |
271 |
} |
272 |
} |