root / branches / v2_0_0_prep / libraries / libFMap_dalfile / src-test / org / gvsig / fmap / dal / store / dbf / TestDBF.java @ 25247
History | View | Annotate | Download (8.8 KB)
1 |
/* gvSIG. Geographic Information System of the Valencian Government
|
---|---|
2 |
*
|
3 |
* Copyright (C) 2007-2008 Infrastructures and Transports Department
|
4 |
* of the Valencian Government (CIT)
|
5 |
*
|
6 |
* This program is free software; you can redistribute it and/or
|
7 |
* modify it under the terms of the GNU General Public License
|
8 |
* as published by the Free Software Foundation; either version 2
|
9 |
* of the License, or (at your option) any later version.
|
10 |
*
|
11 |
* This program is distributed in the hope that it will be useful,
|
12 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14 |
* GNU General Public License for more details.
|
15 |
*
|
16 |
* You should have received a copy of the GNU General Public License
|
17 |
* along with this program; if not, write to the Free Software
|
18 |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
19 |
* MA 02110-1301, USA.
|
20 |
*
|
21 |
*/
|
22 |
|
23 |
/*
|
24 |
* AUTHORS (In addition to CIT):
|
25 |
* 2008 IVER T.I. S.A. {{Task}}
|
26 |
*/
|
27 |
|
28 |
package org.gvsig.fmap.dal.store.dbf; |
29 |
|
30 |
import java.io.File; |
31 |
import java.util.Iterator; |
32 |
|
33 |
import junit.framework.TestCase; |
34 |
|
35 |
import org.gvsig.fmap.dal.DALFileLibrary; |
36 |
import org.gvsig.fmap.dal.DALLibrary; |
37 |
import org.gvsig.fmap.dal.DALLocator; |
38 |
import org.gvsig.fmap.dal.DataManager; |
39 |
import org.gvsig.fmap.dal.DataServerExplorer; |
40 |
import org.gvsig.fmap.dal.exception.DataException; |
41 |
import org.gvsig.fmap.dal.feature.Feature; |
42 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
43 |
import org.gvsig.fmap.dal.feature.FeatureQuery; |
44 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
45 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
46 |
import org.gvsig.fmap.dal.feature.FeatureType; |
47 |
import org.gvsig.tools.ToolsLibrary; |
48 |
import org.gvsig.tools.ToolsLocator; |
49 |
import org.gvsig.tools.persistence.PersistenceException; |
50 |
import org.gvsig.tools.persistence.xmlentity.XMLEntityManager; |
51 |
import org.gvsig.tools.persistence.xmlentity.XMLEntityState; |
52 |
|
53 |
public class TestDBF extends TestCase { |
54 |
|
55 |
public static final File dbf_prueba = new File(TestDBF.class.getResource( |
56 |
"data/prueba.dbf").getFile());
|
57 |
public static final File dbf_pruebaNull = new File(TestDBF.class |
58 |
.getResource("data/pruebaNull.dbf").getFile());
|
59 |
|
60 |
|
61 |
private static DataManager dataManager = null; |
62 |
|
63 |
public TestDBF() {
|
64 |
super();
|
65 |
} |
66 |
|
67 |
public TestDBF(DataManager manager) {
|
68 |
super();
|
69 |
dataManager = manager; |
70 |
} |
71 |
|
72 |
protected void setUp() throws Exception { |
73 |
super.setUp();
|
74 |
if (dataManager != null) { |
75 |
return;
|
76 |
} |
77 |
ToolsLibrary tools = new ToolsLibrary();
|
78 |
tools.initialize(); |
79 |
tools.postInitialize(); |
80 |
|
81 |
ToolsLocator.registerDefaultPersistenceManager(XMLEntityManager.class); |
82 |
|
83 |
DALLibrary lib = new DALLibrary();
|
84 |
lib.initialize(); |
85 |
lib.postInitialize(); |
86 |
|
87 |
DALFileLibrary libFile = new DALFileLibrary();
|
88 |
libFile.initialize(); |
89 |
libFile.postInitialize(); |
90 |
|
91 |
DBFLibrary dbfLib = new DBFLibrary();
|
92 |
dbfLib.initialize(); |
93 |
dbfLib.postInitialize(); |
94 |
|
95 |
dataManager = DALLocator.getDataManager(); |
96 |
} |
97 |
|
98 |
public void testPersistence() { |
99 |
DBFStoreParameters dbfParameters = null;
|
100 |
|
101 |
try {
|
102 |
dbfParameters = (DBFStoreParameters) dataManager |
103 |
.createStoreParameters(DBFStoreProvider.NAME); |
104 |
|
105 |
dbfParameters.setFile(dbf_prueba); |
106 |
|
107 |
FeatureStore store = (FeatureStore) dataManager |
108 |
.createStore(dbfParameters); |
109 |
|
110 |
testSimpleIteration(store); |
111 |
|
112 |
XMLEntityState state = (XMLEntityState) store.getState(); |
113 |
|
114 |
System.out.println(state.getXMLEntity().toString());
|
115 |
|
116 |
FeatureStore store2 = (FeatureStore) ToolsLocator |
117 |
.getPersistenceManager().create( |
118 |
state); |
119 |
|
120 |
testSimpleIteration(store2); |
121 |
|
122 |
XMLEntityState state2 = (XMLEntityState) store.getState(); |
123 |
|
124 |
assertEquals(state.getXMLEntity().toString(), state2.getXMLEntity() |
125 |
.toString()); |
126 |
|
127 |
assertEquals(dbf_prueba.getPath(), |
128 |
((DBFStoreParameters) store2.getParameters()).getFile().getPath()); |
129 |
store.dispose(); |
130 |
store2.dispose(); |
131 |
|
132 |
} catch (DataException e3) {
|
133 |
e3.printStackTrace(); |
134 |
fail(); |
135 |
return;
|
136 |
} catch (PersistenceException e) {
|
137 |
e.printStackTrace(); |
138 |
fail(); |
139 |
return;
|
140 |
} |
141 |
|
142 |
} |
143 |
|
144 |
public void testSimpleIteration(FeatureStore store) { |
145 |
FeatureSet set; |
146 |
try {
|
147 |
|
148 |
FeatureType type = store.getDefaultFeatureType(); |
149 |
set = store.getFeatureSet(); |
150 |
|
151 |
Iterator it = set.iterator();
|
152 |
Iterator ftIt;
|
153 |
FeatureAttributeDescriptor desc; |
154 |
|
155 |
Feature feature; |
156 |
while (it.hasNext()) {
|
157 |
ftIt = type.iterator(); |
158 |
|
159 |
feature = (Feature) it.next(); |
160 |
while (ftIt.hasNext()) {
|
161 |
desc = (FeatureAttributeDescriptor) ftIt.next(); |
162 |
System.out.println(desc.getName() + ":" |
163 |
+ feature.get(desc.getName())); |
164 |
|
165 |
} |
166 |
System.out.println("=================="); |
167 |
} |
168 |
|
169 |
set.dispose(); |
170 |
|
171 |
|
172 |
} catch (DataException e3) {
|
173 |
e3.printStackTrace(); |
174 |
fail(); |
175 |
return;
|
176 |
} |
177 |
|
178 |
|
179 |
} |
180 |
|
181 |
public void testSimpleIteration(DBFStoreParameters dbfParameters) { |
182 |
FeatureStore store = null;
|
183 |
try {
|
184 |
store = (FeatureStore) dataManager.createStore(dbfParameters); |
185 |
|
186 |
this.testSimpleIteration(store);
|
187 |
|
188 |
store.dispose(); |
189 |
|
190 |
|
191 |
} catch (DataException e3) {
|
192 |
e3.printStackTrace(); |
193 |
fail(); |
194 |
return;
|
195 |
} |
196 |
|
197 |
|
198 |
} |
199 |
|
200 |
public void testSimpleIteration() { |
201 |
DBFStoreParameters dbfParameters = null;
|
202 |
|
203 |
try {
|
204 |
dbfParameters = (DBFStoreParameters) dataManager |
205 |
.createStoreParameters(DBFStoreProvider.NAME); |
206 |
|
207 |
dbfParameters.setFile(dbf_prueba); |
208 |
|
209 |
this.testSimpleIteration(dbfParameters);
|
210 |
|
211 |
|
212 |
|
213 |
} catch (DataException e3) {
|
214 |
e3.printStackTrace(); |
215 |
fail(); |
216 |
return;
|
217 |
} |
218 |
|
219 |
} |
220 |
|
221 |
public void test() { |
222 |
DBFStoreParameters dbfParameters = null;
|
223 |
|
224 |
try {
|
225 |
dbfParameters = (DBFStoreParameters) dataManager |
226 |
.createStoreParameters(DBFStoreProvider.NAME); |
227 |
|
228 |
dbfParameters.setFile(dbf_prueba); |
229 |
|
230 |
FeatureStore store = (FeatureStore) dataManager |
231 |
.createStore(dbfParameters); |
232 |
FeatureSet set = store.getFeatureSet(); |
233 |
|
234 |
|
235 |
set.dispose(); |
236 |
|
237 |
} catch (DataException e3) {
|
238 |
e3.printStackTrace(); |
239 |
fail(); |
240 |
return;
|
241 |
} |
242 |
|
243 |
} |
244 |
|
245 |
public void testExplorer() { |
246 |
FeatureStore store = null;
|
247 |
DBFStoreParameters dbfParameters = null;
|
248 |
|
249 |
try {
|
250 |
dbfParameters = (DBFStoreParameters) dataManager |
251 |
.createStoreParameters(DBFStoreProvider.NAME); |
252 |
|
253 |
dbfParameters.setFile(dbf_prueba); |
254 |
|
255 |
store = (FeatureStore) dataManager.createStore(dbfParameters); |
256 |
|
257 |
DataServerExplorer explorer = store.getExplorer(); |
258 |
|
259 |
assertEquals(2, explorer.list().size());
|
260 |
|
261 |
store.dispose(); |
262 |
|
263 |
} catch (DataException e3) {
|
264 |
e3.printStackTrace(); |
265 |
fail(); |
266 |
return;
|
267 |
} |
268 |
|
269 |
} |
270 |
|
271 |
public void testSelection() { |
272 |
DBFStoreParameters dbfParameters = null;
|
273 |
|
274 |
try {
|
275 |
dbfParameters = (DBFStoreParameters) dataManager |
276 |
.createStoreParameters(DBFStoreProvider.NAME); |
277 |
|
278 |
dbfParameters.setFile(dbf_prueba); |
279 |
|
280 |
FeatureStore store = (FeatureStore) dataManager |
281 |
.createStore(dbfParameters); |
282 |
FeatureSet set = store.getFeatureSet(); |
283 |
|
284 |
assertTrue(store.getFeatureSelection().isEmpty()); |
285 |
store.setSelection(set); |
286 |
assertFalse(store.getFeatureSelection().isEmpty()); |
287 |
|
288 |
assertEquals(set.getSize(), store.getFeatureSelection().getSize()); |
289 |
|
290 |
Iterator iter = set.iterator();
|
291 |
while (iter.hasNext()) {
|
292 |
assertTrue(store.getFeatureSelection().isSelected( |
293 |
(Feature) iter.next())); |
294 |
} |
295 |
|
296 |
store.getFeatureSelection().reverse(); |
297 |
assertTrue(store.getFeatureSelection().isEmpty()); |
298 |
assertEquals(0, store.getFeatureSelection().getSize());
|
299 |
store.getFeatureSelection().reverse(); |
300 |
assertEquals(set.getSize(), store.getFeatureSelection().getSize()); |
301 |
assertFalse(store.getFeatureSelection().isEmpty()); |
302 |
|
303 |
|
304 |
|
305 |
set.dispose(); |
306 |
|
307 |
} catch (DataException e3) {
|
308 |
e3.printStackTrace(); |
309 |
fail(); |
310 |
return;
|
311 |
} |
312 |
|
313 |
} |
314 |
|
315 |
|
316 |
public void testCustomFTypeSet() { |
317 |
DBFStoreParameters dbfParameters = null;
|
318 |
|
319 |
try {
|
320 |
dbfParameters = (DBFStoreParameters) dataManager |
321 |
.createStoreParameters(DBFStoreProvider.NAME); |
322 |
|
323 |
dbfParameters.setFile(dbf_prueba); |
324 |
|
325 |
FeatureStore store = (FeatureStore) dataManager |
326 |
.createStore(dbfParameters); |
327 |
|
328 |
FeatureSet set, set1; |
329 |
FeatureQuery query; |
330 |
Iterator iter, iter1, attrIter;
|
331 |
Feature feature, feature1; |
332 |
FeatureAttributeDescriptor attr; |
333 |
|
334 |
set = store.getFeatureSet(); |
335 |
attrIter = store.getDefaultFeatureType().iterator(); |
336 |
|
337 |
while (attrIter.hasNext()) {
|
338 |
attr = (FeatureAttributeDescriptor) attrIter.next(); |
339 |
int fieldIndex = attr.getIndex();
|
340 |
|
341 |
query = store.createFeatureQuery(); |
342 |
String fieldName = store.getDefaultFeatureType()
|
343 |
.getAttributeDescriptor(fieldIndex).getName(); |
344 |
|
345 |
|
346 |
query.setAttributeNames(new String[] { fieldName }); |
347 |
set1 = store.getFeatureSet(query); |
348 |
|
349 |
iter = set.fastIterator(); |
350 |
iter1 = set1.fastIterator(); |
351 |
|
352 |
while (iter.hasNext() && iter1.hasNext()) {
|
353 |
feature = (Feature) iter.next(); |
354 |
feature1 = (Feature) iter1.next(); |
355 |
assertEquals(feature.get(fieldName), feature1 |
356 |
.get(fieldName)); |
357 |
assertEquals(feature.get(fieldIndex), feature1.get(0));
|
358 |
} |
359 |
assertFalse(iter.hasNext()); |
360 |
assertFalse(iter1.hasNext()); |
361 |
|
362 |
set1.dispose(); |
363 |
} |
364 |
set.dispose(); |
365 |
|
366 |
|
367 |
} catch (DataException e3) {
|
368 |
e3.printStackTrace(); |
369 |
fail(); |
370 |
return;
|
371 |
} |
372 |
|
373 |
} |
374 |
|
375 |
} |