Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / libraries / libFMap_dataFile / src-test / org / gvsig / data / datastores / vectorial / file / DataExplorerTest.java @ 21511

History | View | Annotate | Download (7.51 KB)

1
package org.gvsig.data.datastores.vectorial.file;
2

    
3
import java.io.File;
4

    
5
import junit.framework.TestCase;
6

    
7
import org.gvsig.data.DataExplorer;
8
import org.gvsig.data.DataExplorerParameters;
9
import org.gvsig.data.DataManager;
10
import org.gvsig.data.DataStore;
11
import org.gvsig.data.DataStoreParameters;
12
import org.gvsig.data.InitializeException;
13
import org.gvsig.data.OpenException;
14
import org.gvsig.data.ReadException;
15
import org.gvsig.data.WriteException;
16
import org.gvsig.data.datastores.vectorial.file.dbf.DBFDataExplorer;
17
import org.gvsig.data.datastores.vectorial.file.dbf.DBFStoreParameters;
18
import org.gvsig.data.datastores.vectorial.file.shp.SHPDataExplorer;
19
import org.gvsig.data.datastores.vectorial.file.shp.SHPStoreParameters;
20
import org.gvsig.data.vectorial.AttributeDescriptor;
21
import org.gvsig.data.vectorial.DefaultFeatureType;
22
import org.gvsig.data.vectorial.FeatureAttributeDescriptor;
23
import org.gvsig.data.vectorial.FeatureCollection;
24
import org.gvsig.data.vectorial.FeatureStore;
25
import org.gvsig.data.vectorial.FeatureStoreExplorer;
26
import org.gvsig.data.vectorial.FeatureType;
27
import org.gvsig.data.vectorial.IsNotAttributeSettingException;
28
import org.gvsig.data.vectorial.NewFeatureStoreParameters;
29

    
30
public class DataExplorerTest extends TestCase {
31
        private File dbffile = new File(DataStoreTest.class.getResource("data/prueba.dbf").getFile());
32
        private File shpfile = new File(DataStoreTest.class.getResource("data/prueba.shp").getFile());
33

    
34
        public void testDBFExplorer(){
35
                org.gvsig.data.datastores.vectorial.file.dbf.Register.selfRegister();
36
                DataStoreParameters[] params = null;
37
                params=list(DBFDataExplorer.DATASOURCE_NAME,dbffile.getParent());
38

    
39
                assertEquals(2, params.length);
40

    
41
                String file=dbffile.getParent()+File.separator+"pruebaCrear.dbf";
42
                DBFStoreParameters parameters=new DBFStoreParameters();
43
                parameters.setFile(new File(file));
44

    
45
                DefaultFeatureType dft=new DefaultFeatureType();
46
                AttributeDescriptor fad=(AttributeDescriptor) dft.createAttributeDescriptor();
47
                try {
48
                        fad.loading();
49
                        fad.setName("CAMPO1");
50
                        fad.setType(FeatureAttributeDescriptor.TYPE_STRING);
51
                        fad.setSize(10);
52
                        fad.stopLoading();
53
                } catch (IsNotAttributeSettingException e1) {
54
                        e1.printStackTrace();
55
                }
56
                dft.add(fad);
57

    
58

    
59
                add(DBFDataExplorer.DATASOURCE_NAME,file,dft);
60

    
61
                params=list(DBFDataExplorer.DATASOURCE_NAME,dbffile.getParent());
62
                assertEquals(3, params.length);
63
                FeatureStore fs=(FeatureStore)createDataStore(DBFDataExplorer.DATASOURCE_NAME,file,parameters);
64
                try {
65
//                        fs.open();
66

    
67
                        FeatureCollection fc = (FeatureCollection) fs.getDataCollection();
68

    
69
                        assertEquals(0, fc.size());
70

    
71
                        fc.dispose();
72

    
73
//                        fs.close();
74
                        fs.dispose();
75
                } catch (Exception e) {
76
                        e.printStackTrace();
77
                        fail();
78
                }
79
                try {
80
                        remove(DBFDataExplorer.DATASOURCE_NAME,file,parameters);
81
                } catch (ReadException e) {
82
                        // TODO Auto-generated catch block
83
                        e.printStackTrace();
84
                }
85
                params=list(DBFDataExplorer.DATASOURCE_NAME,dbffile.getParent());
86

    
87
                assertEquals(2, params.length);
88
        }
89

    
90

    
91

    
92
        public void testSHPExplorer(){
93
                org.gvsig.data.datastores.vectorial.file.shp.Register.selfRegister();
94

    
95
                DataStoreParameters[] params = null;
96
                params=list(SHPDataExplorer.DATASOURCE_NAME,shpfile.getParent());
97

    
98
                assertEquals(2, params.length);
99

    
100
                String file=shpfile.getParent()+File.separator+"pruebaCrear.shp";
101
                SHPStoreParameters parameters=new SHPStoreParameters();
102
                parameters.setFile(new File(file));
103
//                parameters.setDBFFile(SHP.getDbfFile(new File(file)));
104
//                parameters.setSHXFile(SHP.getShxFile(new File(file)));
105

    
106
                DefaultFeatureType dft=new DefaultFeatureType();
107
                AttributeDescriptor fad1=(AttributeDescriptor) dft.createAttributeDescriptor();
108
                try{
109
                        fad1.loading();
110
                        fad1.setName("CAMPO1");
111
                        fad1.setType(FeatureAttributeDescriptor.TYPE_STRING);
112
                        fad1.setSize(10);
113
                        fad1.stopLoading();
114
                }catch (IsNotAttributeSettingException e) {
115
                        e.printStackTrace();
116
                }
117
                AttributeDescriptor fad2=(AttributeDescriptor) dft.createAttributeDescriptor();
118
                try{
119
                        fad2.loading();
120
                        fad2.setName("Geometry");
121
                        fad2.setType(FeatureAttributeDescriptor.TYPE_GEOMETRY);
122
                        fad2.stopLoading();
123
                }catch (IsNotAttributeSettingException e) {
124
                        e.printStackTrace();
125
                }
126
                dft.add(fad1);
127
                dft.add(fad2);
128

    
129

    
130
                add(SHPDataExplorer.DATASOURCE_NAME,file,dft);
131

    
132
                params=list(SHPDataExplorer.DATASOURCE_NAME,shpfile.getParent());
133
                assertEquals(3, params.length);
134
                FeatureStore fs=(FeatureStore)createDataStore(SHPDataExplorer.DATASOURCE_NAME,file,parameters);
135
                try {
136
//                        fs.open();
137

    
138
                        FeatureCollection fc = (FeatureCollection) fs.getDataCollection();
139

    
140
                        assertEquals(0, fc.size());
141

    
142
//                        fs.close();
143
                        fs.dispose();
144
                } catch (Exception e) {
145
                        e.printStackTrace();
146
                        fail();
147
                }
148
                try {
149
                        remove(SHPDataExplorer.DATASOURCE_NAME,file,parameters);
150
                } catch (ReadException e) {
151
                        // TODO Auto-generated catch block
152
                        e.printStackTrace();
153
                }
154
                params=list(SHPDataExplorer.DATASOURCE_NAME,shpfile.getParent());
155

    
156
                assertEquals(2, params.length);
157
        }
158

    
159
        private void remove(String name, String file,DataStoreParameters parameters) throws ReadException {
160
                DataManager dsm=DataManager.getManager();
161
                DataExplorerParameters dsp = dsm.createDataExplorerParameters(
162
                                name);
163
                ((FileExplorerParameters)dsp).setSource(new File(file).getParentFile());
164
                FeatureStoreExplorer src = (FeatureStoreExplorer)dsm.createDataExplorer(dsp);
165
                src.remove(parameters);
166

    
167
        }
168

    
169
        private void add(String name, String file,FeatureType featureType) {
170
                DataManager dsm=DataManager.getManager();
171
                DataExplorerParameters dsp = dsm.createDataExplorerParameters(
172
                                name);
173

    
174
                ((FileExplorerParameters)dsp).setSource(new File(file).getParentFile());
175
                FeatureStoreExplorer src;
176
                try {
177
                        src = (FeatureStoreExplorer)dsm.createDataExplorer(dsp);
178
                } catch (InitializeException e1) {
179
                        e1.printStackTrace();
180
                        fail();return;
181
                }
182

    
183
                NewFeatureStoreParameters ndsp=(NewFeatureStoreParameters)src.createNewDataStoreParameter();
184

    
185
                ((FileStoreParameters)ndsp.getDataStoreParameters()).setFile(new File(file));
186
                ndsp.setFeatureType(featureType);
187
                try {
188
                        src.add(ndsp);
189
                } catch (InitializeException e) {
190
                        // TODO Auto-generated catch block
191
                        e.printStackTrace();
192
                        fail();return;
193
                } catch (WriteException e) {
194
                        // TODO Auto-generated catch block
195
                        e.printStackTrace();
196
                        fail();return;
197
                }
198

    
199

    
200
        }
201
        private DataStore createDataStore(String name, String file,DataStoreParameters parameters){
202
                DataManager dsm=DataManager.getManager();
203
                DataExplorerParameters dsp = dsm.createDataExplorerParameters(
204
                                name);
205
                ((FileExplorerParameters)dsp).setSource(new File(file).getParentFile());
206
                FeatureStoreExplorer src;
207
                try {
208
                        src = (FeatureStoreExplorer)dsm.createDataExplorer(dsp);
209
                } catch (InitializeException e1) {
210
                        fail();return null;
211
                }
212
                try {
213
                        return src.createDataStore(parameters);
214
                } catch (OpenException e) {
215
                        // TODO Auto-generated catch block
216
                        e.printStackTrace();
217
                } catch (WriteException e) {
218
                        // TODO Auto-generated catch block
219
                        e.printStackTrace();
220
                } catch (InitializeException e) {
221
                        // TODO Auto-generated catch block
222
                        e.printStackTrace();
223
                }
224
                return null;
225
        }
226
        private DataStoreParameters[] list(String name,String parent){
227
                DataManager dsm=DataManager.getManager();
228

    
229
                DataExplorerParameters dsp = dsm.createDataExplorerParameters(
230
                                name);
231
                ((FileExplorerParameters)dsp).setSource(new File(parent));
232

    
233
                DataExplorer src;
234
                try {
235
                        src = dsm.createDataExplorer(dsp);
236
                } catch (InitializeException e1) {
237
                        e1.printStackTrace();
238
                        fail();return null;
239
                }
240

    
241
                DataStoreParameters[] params = null;
242
                try {
243
                        params = src.list();
244
                } catch (ReadException e) {
245
                        e.printStackTrace();
246
                        fail();
247
                }
248
                return params;
249
        }
250
}