Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libDataSourceBaseDrivers / src-test / org / gvsig / data / datastores / vectorial / file / DataExplorerTest.java @ 20033

History | View | Annotate | Download (6.85 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.DataManager;
8
import org.gvsig.data.IDataExplorer;
9
import org.gvsig.data.IDataExplorerParameters;
10
import org.gvsig.data.IDataStore;
11
import org.gvsig.data.IDataStoreParameters;
12
import org.gvsig.data.datastores.vectorial.file.dbf.DBFDataExplorer;
13
import org.gvsig.data.datastores.vectorial.file.dbf.DBFStoreParameters;
14
import org.gvsig.data.datastores.vectorial.file.shp.SHPDataExplorer;
15
import org.gvsig.data.datastores.vectorial.file.shp.SHPStoreParameters;
16
import org.gvsig.data.datastores.vectorial.file.shp.utils.SHP;
17
import org.gvsig.data.exception.InitializeException;
18
import org.gvsig.data.exception.InitializeWriterException;
19
import org.gvsig.data.exception.OpenException;
20
import org.gvsig.data.exception.ReadException;
21
import org.gvsig.data.vectorial.DefaultAttributeDescriptor;
22
import org.gvsig.data.vectorial.DefaultFeatureType;
23
import org.gvsig.data.vectorial.IDataFeatureExplorer;
24
import org.gvsig.data.vectorial.IFeatureAttributeDescriptor;
25
import org.gvsig.data.vectorial.IFeatureCollection;
26
import org.gvsig.data.vectorial.IFeatureStore;
27
import org.gvsig.data.vectorial.IFeatureType;
28
import org.gvsig.data.vectorial.INewDataStoreParameters;
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
                IDataStoreParameters[] 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.setDBFFile(new File(file));
44

    
45
                DefaultFeatureType dft=new DefaultFeatureType();
46
                DefaultAttributeDescriptor fad=new DefaultAttributeDescriptor();
47
                fad.setName("CAMPO1");
48
                fad.setType(IFeatureAttributeDescriptor.TYPE_STRING);
49
                fad.setSize(10);
50
                dft.add(fad);
51

    
52

    
53
                add(DBFDataExplorer.DATASOURCE_NAME,file,parameters,dft);
54

    
55
                params=list(DBFDataExplorer.DATASOURCE_NAME,dbffile.getParent());
56
                assertEquals(3, params.length);
57
                IFeatureStore fs=(IFeatureStore)createDataStore(DBFDataExplorer.DATASOURCE_NAME,file,parameters);
58
                try {
59
                        fs.open();
60

    
61
                        IFeatureCollection fc = (IFeatureCollection) fs.getDataCollection();
62

    
63
                        assertEquals(0, fc.size());
64

    
65
                        fc.dispose();
66

    
67
                        fs.close();
68
                        fs.dispose();
69
                } catch (Exception e) {
70
                        e.printStackTrace();
71
                        fail();
72
                }
73
                try {
74
                        remove(DBFDataExplorer.DATASOURCE_NAME,file,parameters);
75
                } catch (ReadException e) {
76
                        // TODO Auto-generated catch block
77
                        e.printStackTrace();
78
                }
79
                params=list(DBFDataExplorer.DATASOURCE_NAME,dbffile.getParent());
80

    
81
                assertEquals(2, params.length);
82
        }
83

    
84

    
85

    
86
        public void testSHPExplorer(){
87
                org.gvsig.data.datastores.vectorial.file.shp.Register.selfRegister();
88

    
89
                IDataStoreParameters[] params = null;
90
                params=list(SHPDataExplorer.DATASOURCE_NAME,shpfile.getParent());
91

    
92
                assertEquals(2, params.length);
93

    
94
                String file=shpfile.getParent()+File.separator+"pruebaCrear.shp";
95
                SHPStoreParameters parameters=new SHPStoreParameters();
96
                parameters.setSHPFile(new File(file));
97
                parameters.setDBFFile(SHP.getDbfFile(new File(file)));
98
                parameters.setSHXFile(SHP.getShxFile(new File(file)));
99

    
100
                DefaultFeatureType dft=new DefaultFeatureType();
101
                DefaultAttributeDescriptor fad1=new DefaultAttributeDescriptor();
102
                fad1.setName("CAMPO1");
103
                fad1.setType(IFeatureAttributeDescriptor.TYPE_STRING);
104
                fad1.setSize(10);
105
                DefaultAttributeDescriptor fad2=new DefaultAttributeDescriptor();
106
                fad2.setName("Geometry");
107
                fad2.setType(IFeatureAttributeDescriptor.TYPE_GEOMETRY);
108
                dft.add(fad1);
109
                dft.add(fad2);
110

    
111

    
112
                add(SHPDataExplorer.DATASOURCE_NAME,file,parameters,dft);
113

    
114
                params=list(SHPDataExplorer.DATASOURCE_NAME,shpfile.getParent());
115
                assertEquals(3, params.length);
116
                IFeatureStore fs=(IFeatureStore)createDataStore(SHPDataExplorer.DATASOURCE_NAME,file,parameters);
117
                try {
118
                        fs.open();
119

    
120
                        IFeatureCollection fc = (IFeatureCollection) fs.getDataCollection();
121

    
122
                        assertEquals(0, fc.size());
123

    
124
                        fs.close();
125
                        fs.dispose();
126
                } catch (Exception e) {
127
                        e.printStackTrace();
128
                        fail();
129
                }
130
                try {
131
                        remove(SHPDataExplorer.DATASOURCE_NAME,file,parameters);
132
                } catch (ReadException e) {
133
                        // TODO Auto-generated catch block
134
                        e.printStackTrace();
135
                }
136
                params=list(SHPDataExplorer.DATASOURCE_NAME,shpfile.getParent());
137

    
138
                assertEquals(2, params.length);
139
        }
140

    
141
        private void remove(String name, String file,IDataStoreParameters parameters) throws ReadException {
142
                DataManager dsm=DataManager.getManager();
143
                IDataExplorerParameters dsp = dsm.createDataExplorerParameters(
144
                                name);
145
                ((DataExplorerFileParameters)dsp).setSource(new File(file).getParentFile());
146
                IDataFeatureExplorer src = (IDataFeatureExplorer)dsm.createDataExplorer(dsp);
147
                src.remove(parameters);
148

    
149
        }
150

    
151
        private void add(String name, String file,IDataStoreParameters parameters,IFeatureType featureType) {
152
                DataManager dsm=DataManager.getManager();
153
                IDataExplorerParameters dsp = dsm.createDataExplorerParameters(
154
                                name);
155
                ((DataExplorerFileParameters)dsp).setSource(new File(file).getParentFile());
156
                IDataFeatureExplorer src = (IDataFeatureExplorer)dsm.createDataExplorer(dsp);
157

    
158
                INewDataStoreParameters ndsp=src.createNewDataStoreParameter(parameters);
159

    
160
                ndsp.setFeatureType(featureType);
161
                try {
162
                        src.add(ndsp);
163
                } catch (OpenException e) {
164
                        // TODO Auto-generated catch block
165
                        e.printStackTrace();
166
                } catch (InitializeWriterException e) {
167
                        // TODO Auto-generated catch block
168
                        e.printStackTrace();
169
                }
170

    
171

    
172
        }
173
        private IDataStore createDataStore(String name, String file,IDataStoreParameters parameters){
174
                DataManager dsm=DataManager.getManager();
175
                IDataExplorerParameters dsp = dsm.createDataExplorerParameters(
176
                                name);
177
                ((DataExplorerFileParameters)dsp).setSource(new File(file).getParentFile());
178
                IDataFeatureExplorer src = (IDataFeatureExplorer)dsm.createDataExplorer(dsp);
179
                try {
180
                        return src.createDataStore(parameters);
181
                } catch (OpenException e) {
182
                        // TODO Auto-generated catch block
183
                        e.printStackTrace();
184
                } catch (InitializeWriterException e) {
185
                        // TODO Auto-generated catch block
186
                        e.printStackTrace();
187
                } catch (InitializeException e) {
188
                        // TODO Auto-generated catch block
189
                        e.printStackTrace();
190
                }
191
                return null;
192
        }
193
        private IDataStoreParameters[] list(String name,String parent){
194
                DataManager dsm=DataManager.getManager();
195

    
196
                IDataExplorerParameters dsp = dsm.createDataExplorerParameters(
197
                                name);
198
                ((DataExplorerFileParameters)dsp).setSource(new File(parent));
199

    
200
                IDataExplorer src = dsm.createDataExplorer(dsp);
201

    
202
                IDataStoreParameters[] params = null;
203
                try {
204
                        params = src.list();
205
                } catch (ReadException e) {
206
                        e.printStackTrace();
207
                        fail();
208
                }
209
                return params;
210
        }
211
}