svn-gvsig-desktop / branches / v2_0_0_prep / libraries / libFMap_dataDB / src-test / org / gvsig / fmap / data / feature / db / jdbc / h2 / H2Test.java @ 24081
History | View | Annotate | Download (30.1 KB)
1 | 22373 | jmvivo | package org.gvsig.fmap.data.feature.db.jdbc.h2; |
---|---|---|---|
2 | 19915 | jmvivo | |
3 | import java.io.File; |
||
4 | import java.sql.Connection; |
||
5 | import java.sql.DriverManager; |
||
6 | import java.sql.SQLException; |
||
7 | import java.sql.Statement; |
||
8 | import java.util.Iterator; |
||
9 | |||
10 | 21911 | jmvivo | import org.gvsig.fmap.data.DataManager; |
11 | import org.gvsig.fmap.data.DataStoreParameters; |
||
12 | 23754 | jjdelcerro | import org.gvsig.fmap.data.exceptions.CloseException; |
13 | import org.gvsig.fmap.data.exceptions.DataException; |
||
14 | import org.gvsig.fmap.data.exceptions.InitializeException; |
||
15 | import org.gvsig.fmap.data.exceptions.ReadException; |
||
16 | import org.gvsig.fmap.data.exceptions.WriteException; |
||
17 | 22360 | jmvivo | import org.gvsig.fmap.data.feature.AbstractFeature; |
18 | import org.gvsig.fmap.data.feature.Feature; |
||
19 | import org.gvsig.fmap.data.feature.FeatureAttributeDescriptor; |
||
20 | 23842 | jjdelcerro | import org.gvsig.fmap.data.feature.FeatureSet; |
21 | 22360 | jmvivo | import org.gvsig.fmap.data.feature.FeatureStore; |
22 | 23754 | jjdelcerro | import org.gvsig.fmap.data.feature.FeatureExplorer; |
23 | 22360 | jmvivo | import org.gvsig.fmap.data.feature.FeatureType; |
24 | 22373 | jmvivo | import org.gvsig.fmap.data.feature.db.DBAttributeDescriptor; |
25 | import org.gvsig.fmap.data.feature.db.DBFeatureType; |
||
26 | import org.gvsig.fmap.data.feature.db.jdbc.JDBCTest; |
||
27 | import org.gvsig.fmap.data.feature.file.shp.SHPStore; |
||
28 | import org.gvsig.fmap.data.feature.file.shp.SHPStoreParameters; |
||
29 | 23754 | jjdelcerro | import org.gvsig.fmap.data.impl.DefaultDataManager; |
30 | 23340 | jmvivo | import org.gvsig.tools.exception.BaseException; |
31 | 19915 | jmvivo | import org.h2.tools.Server; |
32 | |||
33 | |||
34 | 20798 | jmvivo | public class H2Test extends JDBCTest { |
35 | 19915 | jmvivo | |
36 | private Server h2Server = null; |
||
37 | 20242 | jmvivo | private Server h2WebServer = null; |
38 | 19915 | jmvivo | private String h2Server_argsTCP[]= {"-baseDir", "."}; |
39 | 20242 | jmvivo | private String h2Server_argsWeb[]= {"-webport", "8089"}; |
40 | 20597 | jmvivo | // private boolean runH2WebServer = false;
|
41 | 20242 | jmvivo | private boolean runH2WebServer = false; |
42 | private boolean startsH2Server=true; |
||
43 | 19915 | jmvivo | |
44 | |||
45 | private File shpfile = new File(H2Test.class.getResource("data/prueba.shp").getFile()); |
||
46 | |||
47 | public static void main(String[] args) { |
||
48 | 22032 | vcaballero | H2Test test=new H2Test();
|
49 | test.runH2WebServer=true;
|
||
50 | test.startH2Server(); |
||
51 | test.cretateTablePrueba(); |
||
52 | test.testH2_explorer_list(); |
||
53 | // junit.textui.TestRunner.run(H2Test.class);
|
||
54 | 19915 | jmvivo | } |
55 | |||
56 | protected void setUp() throws Exception { |
||
57 | super.setUp();
|
||
58 | 22284 | jmvivo | if (startsH2Server) {
|
59 | 20242 | jmvivo | this.startH2Server();
|
60 | 22284 | jmvivo | } |
61 | 19915 | jmvivo | } |
62 | |||
63 | public void startH2Server(){ |
||
64 | 22284 | jmvivo | if (h2Server != null) { |
65 | 19915 | jmvivo | throw new RuntimeException("H2 server ya arrancado"); |
66 | 22284 | jmvivo | } |
67 | 19915 | jmvivo | Server myh2Server = null;
|
68 | 20242 | jmvivo | Server myh2WebServer = null;
|
69 | 19915 | jmvivo | try{
|
70 | myh2Server = Server.createTcpServer(h2Server_argsTCP); |
||
71 | myh2Server.start(); |
||
72 | 20242 | jmvivo | if (runH2WebServer){
|
73 | myh2WebServer = Server.createWebServer(h2Server_argsWeb); |
||
74 | myh2WebServer.start(); |
||
75 | 22284 | jmvivo | h2WebServer = myh2WebServer; |
76 | 20242 | jmvivo | } |
77 | 19915 | jmvivo | |
78 | } catch (Exception e){ |
||
79 | throw new RuntimeException(e); |
||
80 | } |
||
81 | h2Server = myh2Server; |
||
82 | System.out.println("\n************************"); |
||
83 | 20242 | jmvivo | if (runH2WebServer){
|
84 | System.out.println("* H2 SERVER STARTED web: "+ h2Server_argsWeb[1] + "!!!! *"); |
||
85 | }else{
|
||
86 | System.out.println("* H2 SERVER STARTED!!!! *"); |
||
87 | } |
||
88 | 19915 | jmvivo | System.out.println("************************\n"); |
89 | |||
90 | } |
||
91 | |||
92 | 22032 | vcaballero | |
93 | 19915 | jmvivo | public void stopH2Server(){ |
94 | 22284 | jmvivo | if (h2Server == null) { |
95 | 19915 | jmvivo | return;
|
96 | 22284 | jmvivo | } |
97 | 19915 | jmvivo | h2Server.stop(); |
98 | h2Server.shutdown(); |
||
99 | h2Server = null;
|
||
100 | 20242 | jmvivo | if (h2WebServer != null){ |
101 | h2WebServer.stop(); |
||
102 | h2WebServer.shutdown(); |
||
103 | h2WebServer = null;
|
||
104 | } |
||
105 | 19915 | jmvivo | System.out.println("\n************************"); |
106 | System.out.println("* H2 SERVER STOPED!!!! *"); |
||
107 | System.out.println("************************\n"); |
||
108 | } |
||
109 | |||
110 | |||
111 | private void deleteTable(H2StoreParameters h2Params) { |
||
112 | 22284 | jmvivo | try {
|
113 | 19915 | jmvivo | Class.forName("org.h2.Driver"); |
114 | 22284 | jmvivo | Connection con = DriverManager.getConnection(h2Params.getUrl(), |
115 | h2Params.getUser(), h2Params.getPassw()); |
||
116 | 19915 | jmvivo | Statement st = con.createStatement();
|
117 | 22284 | jmvivo | st.execute("Delete " + h2Params.tableID());
|
118 | 19915 | jmvivo | st.close(); |
119 | con.close(); |
||
120 | System.out.println("* Table " + h2Params.tableID() + " DELETED!!"); |
||
121 | } catch (ClassNotFoundException e) { |
||
122 | // TODO Auto-generated catch block
|
||
123 | e.printStackTrace(); |
||
124 | } catch (SQLException e) { |
||
125 | // TODO Auto-generated catch block
|
||
126 | e.printStackTrace(); |
||
127 | } |
||
128 | |||
129 | |||
130 | } |
||
131 | |||
132 | public void shp2H2(File shpfile,H2StoreParameters h2Param) { |
||
133 | System.out.println("======= SHP2H2 =============="); |
||
134 | 22373 | jmvivo | org.gvsig.fmap.data.feature.file.shp.Register.selfRegister(); |
135 | org.gvsig.fmap.data.feature.file.dbf.Register.selfRegister(); |
||
136 | 19915 | jmvivo | |
137 | 23754 | jjdelcerro | DataManager dsm=DefaultDataManager.getManager(); |
138 | 19915 | jmvivo | // File shpfile= new File(DataStoreTest.class.getResource("data/prueba.dbf").getFile());
|
139 | |||
140 | // IDriverParameters dp=dsm.createDriverParameters("shp");
|
||
141 | |||
142 | |||
143 | 21594 | jmvivo | DataStoreParameters dsp=null;
|
144 | try {
|
||
145 | 24081 | jjdelcerro | dsp = dsm.createStoreParameters(SHPStore.DATASTORE_NAME); |
146 | 21594 | jmvivo | } catch (InitializeException e3) {
|
147 | e3.printStackTrace(); |
||
148 | fail("Exception:" + e3);
|
||
149 | } |
||
150 | 20423 | vcaballero | ((SHPStoreParameters)dsp).setFile(shpfile); |
151 | // ((SHPStoreParameters)dsp).setSHXFile(SHP.getShxFile(shpfile));
|
||
152 | // ((SHPStoreParameters)dsp).setDBFFile(SHP.getDbfFile(shpfile));
|
||
153 | 21045 | jmvivo | FeatureStore fs=null;
|
154 | 19915 | jmvivo | try {
|
155 | 24081 | jjdelcerro | fs = (FeatureStore)dsm.createStore(dsp); |
156 | 19915 | jmvivo | } catch (InitializeException e) {
|
157 | e.printStackTrace(); |
||
158 | fail("Exception:" + e);
|
||
159 | } |
||
160 | |||
161 | 21511 | jmvivo | // try {
|
162 | // fs.open();
|
||
163 | // } catch (OpenException e2) {
|
||
164 | // e2.printStackTrace();
|
||
165 | // fail();
|
||
166 | // }
|
||
167 | 19915 | jmvivo | |
168 | 21045 | jmvivo | FeatureType ft= fs.getDefaultFeatureType(); |
169 | 23842 | jjdelcerro | FeatureSet featureCollection=null;
|
170 | 19915 | jmvivo | try {
|
171 | 23842 | jjdelcerro | featureCollection = (FeatureSet)fs.getDataSet(); |
172 | 19915 | jmvivo | } catch (ReadException e2) {
|
173 | // TODO Auto-generated catch block
|
||
174 | e2.printStackTrace(); |
||
175 | } |
||
176 | |||
177 | SHP2H2FeaturesVisitor visitor=new SHP2H2FeaturesVisitor(ft,h2Param);
|
||
178 | visitor.createStructure(); |
||
179 | |||
180 | try {
|
||
181 | featureCollection.accept(visitor); |
||
182 | } catch (BaseException e1) {
|
||
183 | e1.printStackTrace(); |
||
184 | System.out.println(e1.getMessageStack());
|
||
185 | fail(); |
||
186 | } |
||
187 | |||
188 | 21511 | jmvivo | // try {
|
189 | // visitor.close();
|
||
190 | // fs.close();
|
||
191 | // } catch (CloseException e) {
|
||
192 | // e.printStackTrace();
|
||
193 | // fail("Exception: "+e);
|
||
194 | // }
|
||
195 | 19915 | jmvivo | try {
|
196 | fs.dispose(); |
||
197 | } catch (CloseException e) {
|
||
198 | // TODO Auto-generated catch block
|
||
199 | e.printStackTrace(); |
||
200 | } |
||
201 | |||
202 | } |
||
203 | |||
204 | |||
205 | public void testH2_sqlMode() { |
||
206 | System.out.println("======= H2 (sql Mode)=============="); |
||
207 | Register.selfRegister(); |
||
208 | |||
209 | 23754 | jjdelcerro | DataManager dsm=DefaultDataManager.getManager(); |
210 | 19915 | jmvivo | |
211 | |||
212 | 20129 | jmvivo | H2StoreParameters dp=this.cretateTablePrueba();
|
213 | 19915 | jmvivo | |
214 | 21594 | jmvivo | H2StoreParameters dp2= null;
|
215 | try {
|
||
216 | 24081 | jjdelcerro | dp2 = (H2StoreParameters)dsm.createStoreParameters(H2Store.DATASTORE_NAME); |
217 | 21594 | jmvivo | } catch (InitializeException e2) {
|
218 | e2.printStackTrace(); |
||
219 | fail("Exception:" + e2);
|
||
220 | } |
||
221 | 19915 | jmvivo | |
222 | dp2.setHost("localhost");
|
||
223 | dp2.setUser("SA");
|
||
224 | dp2.setPassw("");
|
||
225 | 22141 | jmvivo | dp2.setDefaultGeometryField("GEOMETRY");
|
226 | 23599 | jmvivo | dp2.setFieldsId(new String[] {"ID"}); |
227 | 19915 | jmvivo | dp2.setSqlSoure("Select * from " + dp.tableID() );
|
228 | |||
229 | 22284 | jmvivo | storeTest(dp,null,null,false); |
230 | 19915 | jmvivo | |
231 | Exception exc = null; |
||
232 | |||
233 | 21045 | jmvivo | FeatureStore fs=null;
|
234 | 19915 | jmvivo | try {
|
235 | 24081 | jjdelcerro | fs = (FeatureStore)dsm.createStore(dp2); |
236 | 19915 | jmvivo | } catch (InitializeException e) {
|
237 | e.printStackTrace(); |
||
238 | fail("Exception:" + e);
|
||
239 | } |
||
240 | assertNotNull("Can't create Feature Store", fs);
|
||
241 | |||
242 | 21511 | jmvivo | // try {
|
243 | // fs.open();
|
||
244 | // } catch (OpenException e2) {
|
||
245 | // e2.printStackTrace();
|
||
246 | // fail();
|
||
247 | // }
|
||
248 | 19915 | jmvivo | |
249 | |||
250 | 23842 | jjdelcerro | FeatureSet fc =null;
|
251 | 19915 | jmvivo | |
252 | try {
|
||
253 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataSet(); |
254 | 19915 | jmvivo | } catch (ReadException e1) {
|
255 | e1.printStackTrace(); |
||
256 | fail(); |
||
257 | } |
||
258 | |||
259 | assertEquals(9, fc.size());
|
||
260 | |||
261 | 20014 | jmvivo | fc.dispose(); |
262 | |||
263 | 23754 | jjdelcerro | assertFalse("Edition allowed in sqlSource mode", fs.allowWrite());
|
264 | 19915 | jmvivo | |
265 | try {
|
||
266 | 23754 | jjdelcerro | fs.edit(); |
267 | 19915 | jmvivo | } catch (ReadException e1) {
|
268 | exc=e1; |
||
269 | } |
||
270 | assertNotNull("Edition allowed in sqlSource mode",exc);
|
||
271 | |||
272 | exc=null;
|
||
273 | try {
|
||
274 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),"NOMBRE like 'B%'",null); |
275 | 19915 | jmvivo | } catch (ReadException e1) {
|
276 | exc=e1; |
||
277 | } |
||
278 | assertNotNull("Filter allowed in sqlSource mode",exc);
|
||
279 | |||
280 | exc=null;
|
||
281 | try {
|
||
282 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"NOMBRE"); |
283 | 19915 | jmvivo | } catch (ReadException e1) {
|
284 | exc=e1; |
||
285 | } |
||
286 | assertNotNull("Order allowed in sqlSource mode",exc);
|
||
287 | |||
288 | |||
289 | 21511 | jmvivo | // try {
|
290 | // fs.close();
|
||
291 | // } catch (CloseException e) {
|
||
292 | // e.printStackTrace();
|
||
293 | // fail("Exception:" + e);
|
||
294 | // }
|
||
295 | 19915 | jmvivo | |
296 | 20743 | jmvivo | try {
|
297 | fs.dispose(); |
||
298 | } catch (CloseException e) {
|
||
299 | e.printStackTrace();fail(); |
||
300 | } |
||
301 | 19915 | jmvivo | |
302 | 20743 | jmvivo | |
303 | 19915 | jmvivo | deleteTable(dp); |
304 | |||
305 | System.out.println("======= /H2 (sql Mode) =============="); |
||
306 | } |
||
307 | |||
308 | 20242 | jmvivo | private String nuevoNombreDeTabla(String prefijo){ |
309 | String s=String.valueOf(System.currentTimeMillis()); |
||
310 | return prefijo+s.substring(s.length()-8); |
||
311 | } |
||
312 | |||
313 | 20129 | jmvivo | private H2StoreParameters cretateTablePrueba(){
|
314 | 19915 | jmvivo | Register.selfRegister(); |
315 | 23754 | jjdelcerro | DataManager dsm=DefaultDataManager.getManager(); |
316 | 19915 | jmvivo | |
317 | |||
318 | 21594 | jmvivo | H2StoreParameters dp=null;
|
319 | try {
|
||
320 | 24081 | jjdelcerro | dp = (H2StoreParameters)dsm.createStoreParameters(H2Store.DATASTORE_NAME); |
321 | 21594 | jmvivo | } catch (InitializeException e1) {
|
322 | e1.printStackTrace(); |
||
323 | fail(); |
||
324 | } |
||
325 | 19915 | jmvivo | |
326 | |||
327 | dp.setHost("localhost");
|
||
328 | dp.setUser("SA");
|
||
329 | dp.setPassw("");
|
||
330 | dp.setFields(new String[] {"*"}); |
||
331 | 22141 | jmvivo | dp.setDefaultGeometryField("GEOMETRY");
|
332 | 20242 | jmvivo | dp.setTableName(nuevoNombreDeTabla("testh2").toUpperCase());
|
333 | 23599 | jmvivo | dp.setFieldsId(new String[] {"ID"}); |
334 | 19915 | jmvivo | |
335 | try{
|
||
336 | this.shp2H2(shpfile, dp);
|
||
337 | } catch (Exception e) { |
||
338 | if (e.getCause() instanceof BaseException){ |
||
339 | System.out.println(((BaseException)e).getLocalizedMessageStack());
|
||
340 | } else{
|
||
341 | e.printStackTrace(); |
||
342 | } |
||
343 | fail(); |
||
344 | } |
||
345 | |||
346 | 20129 | jmvivo | return dp;
|
347 | 19915 | jmvivo | |
348 | 20129 | jmvivo | } |
349 | 19915 | jmvivo | |
350 | 20129 | jmvivo | public void testH2() { |
351 | System.out.println("======= H2 =============="); |
||
352 | Register.selfRegister(); |
||
353 | 19915 | jmvivo | |
354 | 23754 | jjdelcerro | DataManager dsm=DefaultDataManager.getManager(); |
355 | 20129 | jmvivo | |
356 | |||
357 | H2StoreParameters dp=cretateTablePrueba(); |
||
358 | |||
359 | 23143 | jmvivo | storeTest(dp, null, null, true); |
360 | 19915 | jmvivo | |
361 | 23143 | jmvivo | storeTest(dp, null, null, false); |
362 | 21045 | jmvivo | FeatureStore fs=null;
|
363 | 19915 | jmvivo | try {
|
364 | 24081 | jjdelcerro | fs = (FeatureStore)dsm.createStore(dp); |
365 | 19915 | jmvivo | } catch (InitializeException e) {
|
366 | e.printStackTrace(); |
||
367 | fail("Exception:" + e);
|
||
368 | } |
||
369 | assertNotNull("Can't create Feature Store", fs);
|
||
370 | |||
371 | 21511 | jmvivo | // try {
|
372 | // fs.open();
|
||
373 | // } catch (OpenException e2) {
|
||
374 | // e2.printStackTrace();
|
||
375 | // fail();
|
||
376 | // }
|
||
377 | 19915 | jmvivo | |
378 | Iterator it;
|
||
379 | 23842 | jjdelcerro | FeatureSet fc =null;
|
380 | 19915 | jmvivo | Comparable v1,v2;
|
381 | 21045 | jmvivo | Feature feature=null,pfeature=null; |
382 | 19915 | jmvivo | long count;
|
383 | |||
384 | |||
385 | try {
|
||
386 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataSet(); |
387 | 19915 | jmvivo | } catch (ReadException e1) {
|
388 | e1.printStackTrace(); |
||
389 | fail(); |
||
390 | } |
||
391 | |||
392 | assertEquals(9, fc.size());
|
||
393 | |||
394 | 22284 | jmvivo | it = fc.iterator(); |
395 | count = 0;
|
||
396 | while (it.hasNext()) {
|
||
397 | feature = (Feature) it.next(); |
||
398 | count++; |
||
399 | } |
||
400 | assertEquals("Iteration error", 9, count); |
||
401 | |||
402 | 20014 | jmvivo | fc.dispose(); |
403 | |||
404 | 19915 | jmvivo | try {
|
405 | 23842 | jjdelcerro | fc = (FeatureSet) fs.getDataCollection( |
406 | 22284 | jmvivo | new String[] { "NOMBRE" }, "lower(NOMBRE) like 'b%'", null); |
407 | 19915 | jmvivo | } catch (ReadException e1) {
|
408 | e1.printStackTrace(); |
||
409 | fail(); |
||
410 | } |
||
411 | |||
412 | assertEquals(2, fc.size());
|
||
413 | |||
414 | 21120 | jmvivo | |
415 | 19915 | jmvivo | it = fc.iterator(); |
416 | count=0;
|
||
417 | while (it.hasNext()){
|
||
418 | 21045 | jmvivo | feature = (Feature)it.next(); |
419 | 21120 | jmvivo | assertEquals(feature.getType().size(), 1);
|
420 | 19915 | jmvivo | assertTrue("Filter error",feature.getString("NOMBRE").toLowerCase().startsWith("b")); |
421 | count++; |
||
422 | } |
||
423 | assertEquals("Iteration error",2,count); |
||
424 | |||
425 | 20014 | jmvivo | fc.dispose(); |
426 | 19915 | jmvivo | |
427 | 20014 | jmvivo | |
428 | 19915 | jmvivo | try {
|
429 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"NOMBRE ASC"); |
430 | 19915 | jmvivo | } catch (ReadException e1) {
|
431 | e1.printStackTrace(); |
||
432 | fail(); |
||
433 | } |
||
434 | assertEquals(9, fc.size());
|
||
435 | it = fc.iterator(); |
||
436 | count=0;
|
||
437 | 21045 | jmvivo | pfeature = (Feature)it.next(); |
438 | 19915 | jmvivo | count++; |
439 | while (it.hasNext()){
|
||
440 | 21045 | jmvivo | feature = (Feature)it.next(); |
441 | 19915 | jmvivo | v1 = (Comparable)pfeature.get("NOMBRE"); |
442 | v2 = (Comparable)feature.get("NOMBRE"); |
||
443 | pfeature=feature; |
||
444 | assertTrue("Short error", (v1.compareTo(v1) <= 0)); |
||
445 | count++; |
||
446 | } |
||
447 | assertEquals("Iteration error",9,count); |
||
448 | |||
449 | 20014 | jmvivo | fc.dispose(); |
450 | 19915 | jmvivo | |
451 | 20014 | jmvivo | |
452 | 19915 | jmvivo | try {
|
453 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"NOMBRE DESC"); |
454 | 19915 | jmvivo | } catch (ReadException e1) {
|
455 | e1.printStackTrace(); |
||
456 | fail(); |
||
457 | } |
||
458 | assertEquals(9, fc.size());
|
||
459 | it = fc.iterator(); |
||
460 | |||
461 | count=0;
|
||
462 | 21045 | jmvivo | pfeature = (Feature)it.next(); |
463 | 19915 | jmvivo | count++; |
464 | while (it.hasNext()){
|
||
465 | 21045 | jmvivo | feature = (Feature)it.next(); |
466 | 19915 | jmvivo | v1 = (Comparable)pfeature.get("NOMBRE"); |
467 | v2 = (Comparable)feature.get("NOMBRE"); |
||
468 | pfeature=feature; |
||
469 | assertTrue("Short error", (v1.compareTo(v1) >= 0)); |
||
470 | count++; |
||
471 | } |
||
472 | assertEquals("Iteration error",9,count); |
||
473 | |||
474 | 20014 | jmvivo | fc.dispose(); |
475 | 19915 | jmvivo | |
476 | 20014 | jmvivo | |
477 | |||
478 | 19915 | jmvivo | try {
|
479 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),"lower(NOMBRE) like 'b%'","NOMBRE"); |
480 | 19915 | jmvivo | } catch (ReadException e1) {
|
481 | e1.printStackTrace(); |
||
482 | fail(); |
||
483 | } |
||
484 | |||
485 | assertEquals(2, fc.size());
|
||
486 | |||
487 | it = fc.iterator(); |
||
488 | |||
489 | count=0;
|
||
490 | 21045 | jmvivo | pfeature = (Feature)it.next(); |
491 | 19915 | jmvivo | assertTrue(pfeature.getString("NOMBRE").toLowerCase().startsWith("b")); |
492 | count++; |
||
493 | while (it.hasNext()){
|
||
494 | 21045 | jmvivo | feature = (Feature)it.next(); |
495 | 19915 | jmvivo | assertTrue("Filter error",feature.getString("NOMBRE").toLowerCase().startsWith("b")); |
496 | v1 = (Comparable)pfeature.get("NOMBRE"); |
||
497 | v2 = (Comparable)feature.get("NOMBRE"); |
||
498 | pfeature=feature; |
||
499 | assertTrue("Short error", (v1.compareTo(v1) <= 0)); |
||
500 | count++; |
||
501 | } |
||
502 | assertEquals("Iteration error",2,count); |
||
503 | 20014 | jmvivo | fc.dispose(); |
504 | 19915 | jmvivo | |
505 | |||
506 | |||
507 | try {
|
||
508 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"Tipo,lower(NOMBRE) Desc"); |
509 | 19915 | jmvivo | } catch (ReadException e1) {
|
510 | e1.printStackTrace(); |
||
511 | fail(); |
||
512 | } |
||
513 | assertEquals(9, fc.size());
|
||
514 | it = fc.iterator(); |
||
515 | count=0;
|
||
516 | 21045 | jmvivo | pfeature = (Feature)it.next(); |
517 | 19915 | jmvivo | System.out.println(pfeature.getString("NOMBRE")); |
518 | count++; |
||
519 | while (it.hasNext()){
|
||
520 | 21045 | jmvivo | feature = (Feature)it.next(); |
521 | 22284 | jmvivo | v1 = ((String)pfeature.get("NOMBRE")).toLowerCase(); |
522 | v2 = ((String)feature.get("NOMBRE")).toLowerCase(); |
||
523 | 19915 | jmvivo | pfeature=feature; |
524 | assertTrue("Short error", (v1.compareTo(v2) >= 0)); |
||
525 | System.out.println(pfeature.getString("NOMBRE")); |
||
526 | count++; |
||
527 | } |
||
528 | assertEquals("Iteration error",9,count); |
||
529 | 20014 | jmvivo | fc.dispose(); |
530 | 19915 | jmvivo | |
531 | |||
532 | |||
533 | /// CON EDICION
|
||
534 | try {
|
||
535 | 23754 | jjdelcerro | fs.edit(); |
536 | 19915 | jmvivo | } catch (ReadException e1) {
|
537 | e1.printStackTrace(); |
||
538 | fail(); |
||
539 | } |
||
540 | |||
541 | 20413 | vcaballero | try{
|
542 | 23754 | jjdelcerro | Feature newFeature = fs.createFeature(true);
|
543 | 20473 | jmvivo | newFeature.editing(); |
544 | 20413 | vcaballero | newFeature.set("NOMBRE","BuRjaSOT"); |
545 | newFeature.set("TIPO","MUNICIPIO"); |
||
546 | fs.insert(newFeature); |
||
547 | 20578 | jmvivo | } catch (DataException e2) {
|
548 | 20413 | vcaballero | // TODO Auto-generated catch block
|
549 | e2.printStackTrace(); |
||
550 | } |
||
551 | 19915 | jmvivo | |
552 | try {
|
||
553 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataSet(); |
554 | 19915 | jmvivo | } catch (ReadException e1) {
|
555 | e1.printStackTrace(); |
||
556 | fail(); |
||
557 | } |
||
558 | |||
559 | assertEquals(10, fc.size());
|
||
560 | 20014 | jmvivo | fc.dispose(); |
561 | 19915 | jmvivo | |
562 | try {
|
||
563 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(new String[] {"NOMBRE"},"lower(NOMBRE) like 'b%'",null); |
564 | 19915 | jmvivo | } catch (ReadException e1) {
|
565 | e1.printStackTrace(); |
||
566 | fail(); |
||
567 | } |
||
568 | |||
569 | assertEquals(3, fc.size());
|
||
570 | |||
571 | it = fc.iterator(); |
||
572 | count=0;
|
||
573 | while (it.hasNext()){
|
||
574 | 21045 | jmvivo | feature = (Feature)it.next(); |
575 | 21594 | jmvivo | // assertEquals(1, feature.getType().size());
|
576 | 19915 | jmvivo | assertTrue("Filter error",feature.getString("NOMBRE").toLowerCase().startsWith("b")); |
577 | count++; |
||
578 | } |
||
579 | assertEquals("Iteration error",3,count); |
||
580 | 20014 | jmvivo | fc.dispose(); |
581 | 19915 | jmvivo | |
582 | |||
583 | try {
|
||
584 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"NOMBRE ASC"); |
585 | 19915 | jmvivo | } catch (ReadException e1) {
|
586 | e1.printStackTrace(); |
||
587 | fail(); |
||
588 | } |
||
589 | assertEquals(10, fc.size());
|
||
590 | it = fc.iterator(); |
||
591 | count=0;
|
||
592 | 21045 | jmvivo | pfeature = (Feature)it.next(); |
593 | 19915 | jmvivo | count++; |
594 | while (it.hasNext()){
|
||
595 | 21045 | jmvivo | feature = (Feature)it.next(); |
596 | 19915 | jmvivo | v1 = (Comparable)pfeature.get("NOMBRE"); |
597 | v2 = (Comparable)feature.get("NOMBRE"); |
||
598 | pfeature=feature; |
||
599 | assertTrue("Short error", (v1.compareTo(v1) <= 0)); |
||
600 | count++; |
||
601 | } |
||
602 | assertEquals("Iteration error",10,count); |
||
603 | 20014 | jmvivo | fc.dispose(); |
604 | 19915 | jmvivo | |
605 | |||
606 | try {
|
||
607 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"NOMBRE DESC"); |
608 | 19915 | jmvivo | } catch (ReadException e1) {
|
609 | e1.printStackTrace(); |
||
610 | fail(); |
||
611 | } |
||
612 | assertEquals(10, fc.size());
|
||
613 | it = fc.iterator(); |
||
614 | |||
615 | count=0;
|
||
616 | 21045 | jmvivo | pfeature = (Feature)it.next(); |
617 | 19915 | jmvivo | count++; |
618 | while (it.hasNext()){
|
||
619 | 21045 | jmvivo | feature = (Feature)it.next(); |
620 | 19915 | jmvivo | v1 = (Comparable)pfeature.get("NOMBRE"); |
621 | v2 = (Comparable)feature.get("NOMBRE"); |
||
622 | pfeature=feature; |
||
623 | assertTrue("Short error", (v1.compareTo(v1) >= 0)); |
||
624 | count++; |
||
625 | } |
||
626 | assertEquals("Iteration error",10,count); |
||
627 | 20014 | jmvivo | fc.dispose(); |
628 | 19915 | jmvivo | |
629 | |||
630 | try {
|
||
631 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),"lower(NOMBRE) like 'b%'","NOMBRE"); |
632 | 19915 | jmvivo | } catch (ReadException e1) {
|
633 | e1.printStackTrace(); |
||
634 | fail(); |
||
635 | } |
||
636 | |||
637 | assertEquals(3, fc.size());
|
||
638 | |||
639 | it = fc.iterator(); |
||
640 | |||
641 | count=0;
|
||
642 | 21045 | jmvivo | pfeature = (Feature)it.next(); |
643 | 19915 | jmvivo | assertTrue(pfeature.getString("NOMBRE").toLowerCase().startsWith("b")); |
644 | count++; |
||
645 | while (it.hasNext()){
|
||
646 | 21045 | jmvivo | feature = (Feature)it.next(); |
647 | 19915 | jmvivo | assertTrue("Filter error",feature.getString("NOMBRE").toLowerCase().startsWith("b")); |
648 | v1 = (Comparable)pfeature.get("NOMBRE"); |
||
649 | v2 = (Comparable)feature.get("NOMBRE"); |
||
650 | pfeature=feature; |
||
651 | assertTrue("Short error", (v1.compareTo(v1) <= 0)); |
||
652 | count++; |
||
653 | } |
||
654 | assertEquals("Iteration error",3,count); |
||
655 | 20014 | jmvivo | fc.dispose(); |
656 | 19915 | jmvivo | |
657 | |||
658 | |||
659 | try {
|
||
660 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"Tipo,lower(NOMBRE) Desc"); |
661 | 19915 | jmvivo | } catch (ReadException e1) {
|
662 | e1.printStackTrace(); |
||
663 | fail(); |
||
664 | } |
||
665 | assertEquals(10, fc.size());
|
||
666 | it = fc.iterator(); |
||
667 | count=0;
|
||
668 | 21045 | jmvivo | pfeature = (Feature)it.next(); |
669 | 19915 | jmvivo | System.out.println(pfeature.getString("NOMBRE")); |
670 | count++; |
||
671 | while (it.hasNext()){
|
||
672 | 21045 | jmvivo | feature = (Feature)it.next(); |
673 | 22284 | jmvivo | v1 = ((String)pfeature.get("NOMBRE")).toLowerCase(); |
674 | v2 = ((String)feature.get("NOMBRE")).toLowerCase(); |
||
675 | 19915 | jmvivo | pfeature=feature; |
676 | assertTrue("Short error", (v1.compareTo(v2) >= 0)); |
||
677 | System.out.println(pfeature.getString("NOMBRE")); |
||
678 | count++; |
||
679 | } |
||
680 | assertEquals("Iteration error",10,count); |
||
681 | 20014 | jmvivo | fc.dispose(); |
682 | 19915 | jmvivo | |
683 | |||
684 | fs.cancelEditing(); |
||
685 | |||
686 | |||
687 | //Insertar un elemento
|
||
688 | try{
|
||
689 | 23754 | jjdelcerro | fs.edit(); |
690 | 19915 | jmvivo | } catch (ReadException e1) {
|
691 | e1.printStackTrace(); |
||
692 | fail(); |
||
693 | } |
||
694 | |||
695 | 20413 | vcaballero | try{
|
696 | 23754 | jjdelcerro | feature = fs.createFeature(true);
|
697 | 20413 | vcaballero | feature.editing(); |
698 | feature.set("ID", 90000); |
||
699 | feature.set("NOMBRE","BurJASOT"); |
||
700 | feature.set("TIPO", "OTRO"); |
||
701 | fs.insert(feature); |
||
702 | 19915 | jmvivo | fs.finishEditing(); |
703 | 20578 | jmvivo | } catch (DataException e) {
|
704 | 19915 | jmvivo | e.printStackTrace(); |
705 | fail("Exception: "+e);
|
||
706 | } |
||
707 | |||
708 | |||
709 | try {
|
||
710 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"lower(NOMBRE) Desc"); |
711 | 19915 | jmvivo | } catch (ReadException e1) {
|
712 | e1.printStackTrace(); |
||
713 | fail(); |
||
714 | } |
||
715 | assertEquals(10, fc.size());
|
||
716 | it = fc.iterator(); |
||
717 | count=0;
|
||
718 | 21045 | jmvivo | pfeature = (Feature)it.next(); |
719 | 19915 | jmvivo | System.out.println(pfeature.getString("NOMBRE")); |
720 | count++; |
||
721 | while (it.hasNext()){
|
||
722 | 21045 | jmvivo | feature = (Feature)it.next(); |
723 | 22284 | jmvivo | v1 = ((String)pfeature.get("NOMBRE")).toLowerCase(); |
724 | v2 = ((String)feature.get("NOMBRE")).toLowerCase(); |
||
725 | 19915 | jmvivo | pfeature=feature; |
726 | assertTrue("Short error: "+ v1.toString() + " >= " +v2.toString(), (v1.compareTo(v2) >= 0)); |
||
727 | System.out.println(pfeature.getString("NOMBRE")); |
||
728 | count++; |
||
729 | } |
||
730 | assertEquals("Iteration error",10,count); |
||
731 | 20014 | jmvivo | fc.dispose(); |
732 | 19915 | jmvivo | |
733 | //Actualizacion
|
||
734 | try{
|
||
735 | 23754 | jjdelcerro | fs.edit(); |
736 | 19915 | jmvivo | } catch (ReadException e1) {
|
737 | e1.printStackTrace(); |
||
738 | fail(); |
||
739 | } |
||
740 | |||
741 | 22284 | jmvivo | try {
|
742 | 23842 | jjdelcerro | fc = (FeatureSet) fs.getDataCollection(fs |
743 | 22284 | jmvivo | .getDefaultFeatureType(), "NOMBRE like '%__KK__'", null); |
744 | } catch (ReadException e1) {
|
||
745 | e1.printStackTrace(); |
||
746 | fail(); |
||
747 | } |
||
748 | assertEquals(0, fc.size());
|
||
749 | 19915 | jmvivo | |
750 | 22284 | jmvivo | count = 0;
|
751 | it = fc.iterator(); |
||
752 | while (it.hasNext()) {
|
||
753 | it.next(); |
||
754 | count++; |
||
755 | } |
||
756 | assertEquals(0, count);
|
||
757 | fc.dispose(); |
||
758 | |||
759 | 19915 | jmvivo | try {
|
760 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),"lower(NOMBRE) = 'burjasot'",null); |
761 | 19915 | jmvivo | } catch (ReadException e1) {
|
762 | e1.printStackTrace(); |
||
763 | fail(); |
||
764 | } |
||
765 | assertEquals(1, fc.size());
|
||
766 | 22284 | jmvivo | count = 0;
|
767 | it = fc.iterator(); |
||
768 | while (it.hasNext()) {
|
||
769 | it.next(); |
||
770 | count++; |
||
771 | } |
||
772 | assertEquals(1, count);
|
||
773 | |||
774 | 21045 | jmvivo | feature =(AbstractFeature)fc.iterator().next(); |
775 | 20597 | jmvivo | boolean isOk=false; |
776 | 20413 | vcaballero | try {
|
777 | 20597 | jmvivo | // feature.editing();
|
778 | feature.set("NOMBRE", feature.getString("NOMBRE")+"__KK__"); |
||
779 | 20578 | jmvivo | } catch (DataException e2) {
|
780 | 20597 | jmvivo | isOk=true;
|
781 | 20413 | vcaballero | } |
782 | 20597 | jmvivo | assertTrue("editing feature control", isOk);
|
783 | |||
784 | 19915 | jmvivo | try {
|
785 | 20597 | jmvivo | feature.editing(); |
786 | feature.set("NOMBRE", feature.getString("NOMBRE")+"__KK__"); |
||
787 | 20578 | jmvivo | } catch (DataException e2) {
|
788 | 20597 | jmvivo | isOk=true;
|
789 | 20420 | vcaballero | e2.printStackTrace(); |
790 | fail("Exception: "+e2);
|
||
791 | } |
||
792 | 20597 | jmvivo | |
793 | 20420 | vcaballero | try {
|
794 | 20849 | jmvivo | fs.update(feature); |
795 | } catch (DataException e2) {
|
||
796 | e2.printStackTrace();fail(); |
||
797 | } |
||
798 | |||
799 | 22284 | jmvivo | // try {
|
800 | // fc = (FeatureCollection) fs.getDataCollection(fs
|
||
801 | // .getDefaultFeatureType(), "NOMBRE like '%__KK__'", null);
|
||
802 | // } catch (ReadException e1) {
|
||
803 | // e1.printStackTrace();
|
||
804 | // fail();
|
||
805 | // }
|
||
806 | // assertEquals(1, fc.size());
|
||
807 | // count = 0;
|
||
808 | // it = fc.iterator();
|
||
809 | // while (it.hasNext()) {
|
||
810 | // it.next();
|
||
811 | // count++;
|
||
812 | // }
|
||
813 | // assertEquals(1, count);
|
||
814 | fc.dispose(); |
||
815 | |||
816 | |||
817 | 20849 | jmvivo | try {
|
818 | 19915 | jmvivo | fs.finishEditing(); |
819 | } catch (WriteException e) {
|
||
820 | e.printStackTrace(); |
||
821 | fail("Exception: "+e);
|
||
822 | } catch (ReadException e) {
|
||
823 | e.printStackTrace(); |
||
824 | fail("Exception: "+e);
|
||
825 | } |
||
826 | |||
827 | try {
|
||
828 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),"NOMBRE like '%__KK__'",null); |
829 | 19915 | jmvivo | } catch (ReadException e1) {
|
830 | e1.printStackTrace(); |
||
831 | fail(); |
||
832 | } |
||
833 | assertEquals(1, fc.size());
|
||
834 | 22284 | jmvivo | count = 0;
|
835 | it = fc.iterator(); |
||
836 | while (it.hasNext()) {
|
||
837 | it.next(); |
||
838 | count++; |
||
839 | } |
||
840 | assertEquals(1, count);
|
||
841 | 20014 | jmvivo | fc.dispose(); |
842 | 19915 | jmvivo | |
843 | |||
844 | //Eliminacion
|
||
845 | try{
|
||
846 | 23754 | jjdelcerro | fs.edit(); |
847 | 19915 | jmvivo | } catch (ReadException e1) {
|
848 | e1.printStackTrace(); |
||
849 | fail(); |
||
850 | } |
||
851 | |||
852 | |||
853 | try {
|
||
854 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),"NOMBRE like '%__KK__'",null); |
855 | 19915 | jmvivo | } catch (ReadException e1) {
|
856 | e1.printStackTrace(); |
||
857 | fail(); |
||
858 | } |
||
859 | assertEquals(1, fc.size());
|
||
860 | 22284 | jmvivo | |
861 | count = 0;
|
||
862 | it = fc.iterator(); |
||
863 | while (it.hasNext()) {
|
||
864 | it.next(); |
||
865 | count++; |
||
866 | } |
||
867 | assertEquals(1, count);
|
||
868 | |||
869 | 20849 | jmvivo | try {
|
870 | 21045 | jmvivo | fs.delete((Feature)fc.iterator().next()); |
871 | 20849 | jmvivo | } catch (DataException e2) {
|
872 | e2.printStackTrace();fail(); |
||
873 | } |
||
874 | 20014 | jmvivo | fc.dispose(); |
875 | 22284 | jmvivo | |
876 | 19915 | jmvivo | try {
|
877 | 23842 | jjdelcerro | fc = (FeatureSet) fs.getDataCollection(fs |
878 | 22284 | jmvivo | .getDefaultFeatureType(), "NOMBRE like '%__KK__'", null); |
879 | } catch (ReadException e1) {
|
||
880 | e1.printStackTrace(); |
||
881 | fail(); |
||
882 | } |
||
883 | assertEquals(0, fc.size());
|
||
884 | |||
885 | count = 0;
|
||
886 | it = fc.iterator(); |
||
887 | while (it.hasNext()) {
|
||
888 | it.next(); |
||
889 | count++; |
||
890 | } |
||
891 | assertEquals(0, count);
|
||
892 | fc.dispose(); |
||
893 | |||
894 | try {
|
||
895 | 19915 | jmvivo | fs.finishEditing(); |
896 | } catch (WriteException e) {
|
||
897 | e.printStackTrace(); |
||
898 | fail("Exception: "+e);
|
||
899 | } catch (ReadException e) {
|
||
900 | e.printStackTrace(); |
||
901 | fail("Exception: "+e);
|
||
902 | } |
||
903 | |||
904 | try {
|
||
905 | 23842 | jjdelcerro | fc = (FeatureSet)fs.getDataSet(); |
906 | 19915 | jmvivo | } catch (ReadException e1) {
|
907 | e1.printStackTrace(); |
||
908 | fail(); |
||
909 | } |
||
910 | assertEquals(9, fc.size());
|
||
911 | 20014 | jmvivo | fc.dispose(); |
912 | 19915 | jmvivo | |
913 | |||
914 | |||
915 | 21511 | jmvivo | // try {
|
916 | // fs.close();
|
||
917 | // } catch (CloseException e) {
|
||
918 | // e.printStackTrace();
|
||
919 | // fail("Exception:" + e);
|
||
920 | // }
|
||
921 | 19915 | jmvivo | |
922 | 20743 | jmvivo | try {
|
923 | 23842 | jjdelcerro | fc = (FeatureSet) fs.getDataCollection(fs |
924 | 22284 | jmvivo | .getDefaultFeatureType(), "NOMBRE = 'NOEXISTE'", null); |
925 | } catch (ReadException e1) {
|
||
926 | e1.printStackTrace(); |
||
927 | fail(); |
||
928 | } |
||
929 | |||
930 | count = 0;
|
||
931 | it = fc.iterator(); |
||
932 | while (it.hasNext()) {
|
||
933 | it.next(); |
||
934 | count++; |
||
935 | } |
||
936 | assertEquals(0, count);
|
||
937 | |||
938 | |||
939 | |||
940 | try {
|
||
941 | 20743 | jmvivo | fs.dispose(); |
942 | } catch (CloseException e) {
|
||
943 | e.printStackTrace();fail(); |
||
944 | } |
||
945 | 19915 | jmvivo | |
946 | 20743 | jmvivo | // TODO FALTA Notificaci?n de edici?n
|
947 | 23010 | jmvivo | doFileResourceTest(dp); |
948 | 20798 | jmvivo | // JDBCTest.doFileResourceTest(dp,false);
|
949 | 20743 | jmvivo | |
950 | 19915 | jmvivo | deleteTable(dp); |
951 | |||
952 | System.out.println("======= /H2 =============="); |
||
953 | |||
954 | } |
||
955 | |||
956 | 20129 | jmvivo | public void testH2_explorer_list(){ |
957 | System.out.println("======= H2 explorer list =============="); |
||
958 | 20082 | jmvivo | Register.selfRegister(); |
959 | 19915 | jmvivo | |
960 | 23754 | jjdelcerro | DataManager dm=DefaultDataManager.getManager(); |
961 | 20082 | jmvivo | |
962 | |||
963 | 21594 | jmvivo | H2ExplorerParameters dp=null;
|
964 | try {
|
||
965 | 24081 | jjdelcerro | dp = (H2ExplorerParameters)dm.createExplorerParameters(H2Explorer.DATAEXPLORER_NAME); |
966 | 21594 | jmvivo | } catch (InitializeException e2) {
|
967 | e2.printStackTrace(); |
||
968 | fail(); |
||
969 | } |
||
970 | 20082 | jmvivo | |
971 | dp.setHost("localhost");
|
||
972 | dp.setUser("SA");
|
||
973 | dp.setPassw("");
|
||
974 | dp.setShowInformationDBTables(true);
|
||
975 | |||
976 | 23754 | jjdelcerro | FeatureExplorer explorer=null;
|
977 | 20082 | jmvivo | try {
|
978 | 24081 | jjdelcerro | explorer = (FeatureExplorer)dm.createExplorer(dp); |
979 | 20082 | jmvivo | } catch (InitializeException e1) {
|
980 | e1.printStackTrace(); |
||
981 | fail(); return;
|
||
982 | } |
||
983 | |||
984 | 21045 | jmvivo | DataStoreParameters[] list= null; |
985 | 20082 | jmvivo | |
986 | try {
|
||
987 | list = explorer.list(); |
||
988 | } catch (ReadException e) {
|
||
989 | e.printStackTrace(); |
||
990 | fail();return;
|
||
991 | } |
||
992 | |||
993 | H2StoreParameters h2param= null;
|
||
994 | DBFeatureType ftype=null;
|
||
995 | Iterator iter = null; |
||
996 | 20789 | vcaballero | DBAttributeDescriptor attr= null;
|
997 | 20082 | jmvivo | |
998 | 20798 | jmvivo | int i;
|
999 | 20082 | jmvivo | for (i=0;i<list.length;i++){ |
1000 | h2param = (H2StoreParameters)list[i]; |
||
1001 | System.out.println("Table: "+h2param.tableID()); |
||
1002 | try {
|
||
1003 | ftype =(DBFeatureType)(explorer.getFeatureTypes(h2param)[0]);
|
||
1004 | } catch (ReadException e) {
|
||
1005 | e.printStackTrace(); |
||
1006 | fail(); return;
|
||
1007 | } |
||
1008 | System.out.println("\tNum fields: "+ftype.size()); |
||
1009 | System.out.println("\tPk field: "+ftype.getFieldsId()[0]); |
||
1010 | System.out.println("\tFields: "); |
||
1011 | |||
1012 | |||
1013 | iter = ftype.iterator(); |
||
1014 | while(iter.hasNext()){
|
||
1015 | 20789 | vcaballero | attr = (DBAttributeDescriptor) iter.next(); |
1016 | 20082 | jmvivo | System.out.println("\t\t "+attr.getName()+" "+attr.getDataType()); |
1017 | } |
||
1018 | |||
1019 | } |
||
1020 | |||
1021 | 20800 | jmvivo | try {
|
1022 | explorer.dispose(); |
||
1023 | } catch (DataException e) {
|
||
1024 | e.printStackTrace(); |
||
1025 | } |
||
1026 | 20082 | jmvivo | |
1027 | 23032 | jmvivo | this.persistenceTest(dp);
|
1028 | 20800 | jmvivo | |
1029 | 20129 | jmvivo | System.out.println("======= H2 explorer list=============="); |
1030 | 20082 | jmvivo | } |
1031 | |||
1032 | 20242 | jmvivo | public void testH2_explorer_remove(){ |
1033 | 20129 | jmvivo | System.out.println("======= H2 explorer delete=============="); |
1034 | Register.selfRegister(); |
||
1035 | 20082 | jmvivo | |
1036 | 23754 | jjdelcerro | DataManager dm=DefaultDataManager.getManager(); |
1037 | 20129 | jmvivo | |
1038 | H2StoreParameters ds=cretateTablePrueba(); |
||
1039 | |||
1040 | 21594 | jmvivo | H2ExplorerParameters dex=null;
|
1041 | try {
|
||
1042 | 24081 | jjdelcerro | dex = (H2ExplorerParameters)dm.createExplorerParameters(H2Explorer.DATAEXPLORER_NAME); |
1043 | 21594 | jmvivo | } catch (InitializeException e2) {
|
1044 | e2.printStackTrace(); |
||
1045 | fail(); |
||
1046 | } |
||
1047 | 20129 | jmvivo | |
1048 | 23599 | jmvivo | dex.putAllDefaultValues(ds); |
1049 | 20129 | jmvivo | dex.setShowInformationDBTables(false);
|
1050 | |||
1051 | 23754 | jjdelcerro | FeatureExplorer explorer=null;
|
1052 | 20129 | jmvivo | try {
|
1053 | 24081 | jjdelcerro | explorer = (FeatureExplorer)dm.createExplorer(dex); |
1054 | 20129 | jmvivo | } catch (InitializeException e1) {
|
1055 | e1.printStackTrace(); |
||
1056 | fail(); return;
|
||
1057 | } |
||
1058 | |||
1059 | 21045 | jmvivo | DataStoreParameters[] list= null; |
1060 | 20129 | jmvivo | |
1061 | try {
|
||
1062 | list = explorer.list(); |
||
1063 | } catch (ReadException e) {
|
||
1064 | e.printStackTrace(); |
||
1065 | fail();return;
|
||
1066 | } |
||
1067 | |||
1068 | if (list.length < 1){ |
||
1069 | fail(); return;
|
||
1070 | } |
||
1071 | int i;
|
||
1072 | boolean found=false; |
||
1073 | H2StoreParameters dsaux=null;
|
||
1074 | for(i=0;i<list.length;i++){ |
||
1075 | dsaux = (H2StoreParameters)list[i]; |
||
1076 | if (dsaux.getTableName().equals(ds.getTableName())){
|
||
1077 | found=true;
|
||
1078 | break;
|
||
1079 | } |
||
1080 | } |
||
1081 | if (!found){
|
||
1082 | fail(); |
||
1083 | } |
||
1084 | |||
1085 | try {
|
||
1086 | explorer.remove(dsaux); |
||
1087 | } catch (ReadException e) {
|
||
1088 | e.printStackTrace(); |
||
1089 | fail();return;
|
||
1090 | } |
||
1091 | |||
1092 | try {
|
||
1093 | list = explorer.list(); |
||
1094 | } catch (ReadException e) {
|
||
1095 | e.printStackTrace(); |
||
1096 | fail();return;
|
||
1097 | } |
||
1098 | |||
1099 | found = false;
|
||
1100 | for(i=0;i<list.length;i++){ |
||
1101 | dsaux = (H2StoreParameters)list[i]; |
||
1102 | if (dsaux.getTableName().equals(ds.getTableName())){
|
||
1103 | found=true;
|
||
1104 | break;
|
||
1105 | } |
||
1106 | } |
||
1107 | if (found){
|
||
1108 | fail(); |
||
1109 | } |
||
1110 | |||
1111 | 20800 | jmvivo | try {
|
1112 | explorer.dispose(); |
||
1113 | } catch (DataException e) {
|
||
1114 | e.printStackTrace();fail(); |
||
1115 | } |
||
1116 | |||
1117 | 20242 | jmvivo | System.out.println("======= /H2 explorer remove=============="); |
1118 | 20129 | jmvivo | } |
1119 | 20242 | jmvivo | |
1120 | public void testH2_explorer_add_remove(){ |
||
1121 | System.out.println("======= H2 explorer add/remove=============="); |
||
1122 | Register.selfRegister(); |
||
1123 | |||
1124 | 23754 | jjdelcerro | DataManager dm=DefaultDataManager.getManager(); |
1125 | 20242 | jmvivo | |
1126 | |||
1127 | 21594 | jmvivo | H2ExplorerParameters dex=null;
|
1128 | try {
|
||
1129 | 24081 | jjdelcerro | dex = (H2ExplorerParameters)dm.createExplorerParameters(H2Explorer.DATAEXPLORER_NAME); |
1130 | 21594 | jmvivo | } catch (InitializeException e3) {
|
1131 | e3.printStackTrace(); |
||
1132 | fail(); |
||
1133 | } |
||
1134 | 20242 | jmvivo | |
1135 | |||
1136 | dex.setHost("localhost");
|
||
1137 | dex.setUser("SA");
|
||
1138 | dex.setPassw("");
|
||
1139 | |||
1140 | 23754 | jjdelcerro | FeatureExplorer explorer=null;
|
1141 | 20242 | jmvivo | try {
|
1142 | 24081 | jjdelcerro | explorer = (FeatureExplorer)dm.createExplorer(dex); |
1143 | 20242 | jmvivo | } catch (InitializeException e1) {
|
1144 | e1.printStackTrace(); |
||
1145 | fail(); return;
|
||
1146 | } |
||
1147 | |||
1148 | |||
1149 | |||
1150 | |||
1151 | 23340 | jmvivo | H2NewStoreParameter newdp; |
1152 | try {
|
||
1153 | newdp = (H2NewStoreParameter) explorer |
||
1154 | .createNewDataStoreParameter(); |
||
1155 | } catch (InitializeException e3) {
|
||
1156 | e3.printStackTrace(); |
||
1157 | fail(); |
||
1158 | return;
|
||
1159 | } |
||
1160 | 20242 | jmvivo | |
1161 | newdp.getH2Parameters().setTableName(nuevoNombreDeTabla("th2_create").toUpperCase());
|
||
1162 | 23599 | jmvivo | newdp.getH2Parameters().setFieldsId(new String[] {"ID"}); |
1163 | 20242 | jmvivo | |
1164 | |||
1165 | DBFeatureType ftype = new DBFeatureType();
|
||
1166 | 20849 | jmvivo | |
1167 | 20242 | jmvivo | newdp.setFeatureType(ftype); |
1168 | 20789 | vcaballero | DBAttributeDescriptor attr; |
1169 | 20242 | jmvivo | |
1170 | 20908 | jmvivo | attr = (DBAttributeDescriptor) ftype.createAttributeDescriptor(); |
1171 | 20420 | vcaballero | try {
|
1172 | attr.loading(); |
||
1173 | attr.setName("ID");
|
||
1174 | attr.setAutoIncrement(true);
|
||
1175 | 23754 | jjdelcerro | attr.setType(FeatureAttributeDescriptor.INT); |
1176 | 20420 | vcaballero | attr.setPrimaryKey(true);
|
1177 | attr.stopLoading(); |
||
1178 | ftype.add(attr); |
||
1179 | 20242 | jmvivo | |
1180 | 20908 | jmvivo | attr = (DBAttributeDescriptor) ftype.createAttributeDescriptor(); |
1181 | 20420 | vcaballero | attr.loading(); |
1182 | attr.setName("MYGEOMETRY");
|
||
1183 | 23754 | jjdelcerro | attr.setType(FeatureAttributeDescriptor.GEOMETRY); |
1184 | 20420 | vcaballero | attr.stopLoading(); |
1185 | ftype.add(attr); |
||
1186 | ftype.setDefaultGeometry(attr.getName()); |
||
1187 | 20242 | jmvivo | |
1188 | 20908 | jmvivo | attr = (DBAttributeDescriptor) ftype.createAttributeDescriptor(); |
1189 | 20420 | vcaballero | attr.loading(); |
1190 | attr.setName("MYSTRING");
|
||
1191 | attr.setSize(50);
|
||
1192 | attr.setDefaultValue("def");
|
||
1193 | 23754 | jjdelcerro | attr.setType(FeatureAttributeDescriptor.STRING); |
1194 | 20420 | vcaballero | attr.stopLoading(); |
1195 | ftype.add(attr); |
||
1196 | 20242 | jmvivo | |
1197 | |||
1198 | 20908 | jmvivo | attr = (DBAttributeDescriptor) ftype.createAttributeDescriptor(); |
1199 | 20420 | vcaballero | attr.loading(); |
1200 | attr.setName("MYDOUBLE");
|
||
1201 | |||
1202 | 23754 | jjdelcerro | attr.setType(FeatureAttributeDescriptor.DOUBLE); |
1203 | 20420 | vcaballero | |
1204 | attr.stopLoading(); |
||
1205 | 20849 | jmvivo | |
1206 | ftype.add(attr); |
||
1207 | |||
1208 | ftype.setFieldsId(newdp.getH2Parameters().getFieldsId()); |
||
1209 | } catch (DataException e2) {
|
||
1210 | 20420 | vcaballero | e2.printStackTrace(); |
1211 | fail();return;
|
||
1212 | } |
||
1213 | 20242 | jmvivo | |
1214 | try {
|
||
1215 | explorer.add(newdp); |
||
1216 | } catch (InitializeException e1) {
|
||
1217 | e1.printStackTrace(); |
||
1218 | fail();return;
|
||
1219 | } catch (WriteException e1) {
|
||
1220 | e1.printStackTrace(); |
||
1221 | fail();return;
|
||
1222 | } |
||
1223 | |||
1224 | |||
1225 | 21045 | jmvivo | DataStoreParameters[] list= null; |
1226 | 20242 | jmvivo | |
1227 | try {
|
||
1228 | list = explorer.list(); |
||
1229 | } catch (ReadException e) {
|
||
1230 | e.printStackTrace(); |
||
1231 | fail();return;
|
||
1232 | } |
||
1233 | |||
1234 | if (list.length < 1){ |
||
1235 | fail(); return;
|
||
1236 | } |
||
1237 | int i;
|
||
1238 | boolean found=false; |
||
1239 | H2StoreParameters dsaux=null;
|
||
1240 | for(i=0;i<list.length;i++){ |
||
1241 | dsaux = (H2StoreParameters)list[i]; |
||
1242 | if (dsaux.getTableName().equalsIgnoreCase(newdp.getH2Parameters().getTableName())){
|
||
1243 | found=true;
|
||
1244 | break;
|
||
1245 | } |
||
1246 | } |
||
1247 | if (!found){
|
||
1248 | fail(); |
||
1249 | } |
||
1250 | |||
1251 | try {
|
||
1252 | explorer.remove(dsaux); |
||
1253 | } catch (ReadException e) {
|
||
1254 | e.printStackTrace(); |
||
1255 | fail();return;
|
||
1256 | } |
||
1257 | |||
1258 | try {
|
||
1259 | list = explorer.list(); |
||
1260 | } catch (ReadException e) {
|
||
1261 | e.printStackTrace(); |
||
1262 | fail();return;
|
||
1263 | } |
||
1264 | |||
1265 | found = false;
|
||
1266 | for(i=0;i<list.length;i++){ |
||
1267 | dsaux = (H2StoreParameters)list[i]; |
||
1268 | if (dsaux.getTableName().equals(newdp.getH2Parameters().getTableName())){
|
||
1269 | found=true;
|
||
1270 | break;
|
||
1271 | } |
||
1272 | } |
||
1273 | if (found){
|
||
1274 | fail(); |
||
1275 | } |
||
1276 | |||
1277 | 20800 | jmvivo | try {
|
1278 | explorer.dispose(); |
||
1279 | } catch (DataException e) {
|
||
1280 | e.printStackTrace();fail(); |
||
1281 | } |
||
1282 | |||
1283 | 20242 | jmvivo | System.out.println("======= /H2 explorer add/remove=============="); |
1284 | } |
||
1285 | |||
1286 | |||
1287 | 19915 | jmvivo | protected void tearDown() throws Exception { |
1288 | // TODO Auto-generated method stub
|
||
1289 | super.tearDown();
|
||
1290 | 22284 | jmvivo | if (startsH2Server) {
|
1291 | 20242 | jmvivo | this.stopH2Server();
|
1292 | 22284 | jmvivo | } |
1293 | 20082 | jmvivo | |
1294 | |||
1295 | 19915 | jmvivo | } |
1296 | } |