Statistics
| Revision:

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
}