Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / libraries / libFMap_dalfile / src-test / org / gvsig / fmap / dal / explorer / filesystem / FileSystemExplorerTest.java @ 27723

History | View | Annotate | Download (5.41 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.explorer.filesystem;
29

    
30
import java.io.File;
31
import java.util.Iterator;
32
import java.util.List;
33

    
34
import junit.framework.TestCase;
35

    
36
import org.gvsig.fmap.dal.DALFileLibrary;
37
import org.gvsig.fmap.dal.DALLibrary;
38
import org.gvsig.fmap.dal.DALLocator;
39
import org.gvsig.fmap.dal.DataManager;
40
import org.gvsig.fmap.dal.DataServerExplorer;
41
import org.gvsig.fmap.dal.DataStoreParameters;
42
import org.gvsig.fmap.dal.DataTypes;
43
import org.gvsig.fmap.dal.NewDataStoreParameters;
44
import org.gvsig.fmap.dal.feature.EditableFeatureType;
45
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
46
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorer;
47
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorerParameters;
48
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
49
import org.gvsig.fmap.dal.store.dbf.DBFStoreParameters;
50
import org.gvsig.fmap.dal.store.dbf.DBFStoreProvider;
51
import org.gvsig.fmap.dal.store.dbf.TestDBF;
52

    
53
public class FileSystemExplorerTest extends TestCase {
54

    
55
        private static DataManager dataManager = null;
56
        public static final File dbf_data = new File(TestDBF.class.getResource(
57
                        "data/prueba.dbf").getFile()).getParentFile();
58

    
59

    
60
        protected void setUp() throws Exception {
61
                super.setUp();
62

    
63
                if (dataManager != null) {
64
                        return;
65
                }
66
                DALLibrary lib = new DALLibrary();
67
                lib.initialize();
68
                lib.postInitialize();
69

    
70
                DALFileLibrary libFile = new DALFileLibrary();
71
                libFile.initialize();
72
                libFile.postInitialize();
73

    
74
                dataManager = DALLocator.getDataManager();
75

    
76
        }
77

    
78
        public void testList() throws Exception {
79
                FilesystemServerExplorerParameters exParam = (FilesystemServerExplorerParameters) dataManager
80
                                .createServerExplorerParameters(FilesystemServerExplorer.NAME);
81

    
82
                exParam.setRoot(dbf_data.getPath());
83

    
84
                DataServerExplorer ex = dataManager.createServerExplorer(exParam);
85

    
86
                List list = ex.list();
87

    
88
                assertEquals(2, list.size());
89

    
90
                if (((FilesystemStoreParameters) list.get(0)).getFile().getPath()
91
                                .equals(TestDBF.dbf_prueba.getPath())) {
92
                        assertEquals(((FilesystemStoreParameters) list.get(1)).getFile()
93
                                        .getPath(), TestDBF.dbf_pruebaNull.getPath());
94

    
95
                } else {
96
                        assertEquals(((FilesystemStoreParameters) list.get(0)).getFile()
97
                                        .getPath(), TestDBF.dbf_pruebaNull.getPath());
98
                        assertEquals(((FilesystemStoreParameters) list.get(1)).getFile()
99
                                        .getPath(), TestDBF.dbf_prueba.getPath());
100
                }
101

    
102
                Iterator iter = list.iterator();
103
                TestDBF testDBF = new TestDBF(false, true);
104
                while (iter.hasNext()) {
105
                        testDBF.testSimpleIteration((DBFStoreParameters) iter.next());
106
                }
107

    
108

    
109

    
110
        }
111

    
112
        private boolean deleteDir(File dir) {
113
                File[] files = dir.listFiles();
114
                for (int i = 0; i < files.length; i++) {
115
                        if (files[i].isDirectory()) {
116
                                if (!deleteDir(files[i])) {
117
                                        return false;
118
                                }
119
                        }
120
                        if (!files[i].delete()) {
121
                                return false;
122
                        }
123
                }
124
                return dir.delete();
125
        }
126

    
127
        public void testAddRemove() throws Exception {
128
                File tmpDir = new File("_FilesystemExplorer.tmp");
129

    
130
                if (tmpDir.exists()) {
131
                        if (!deleteDir(tmpDir)) {
132
                                fail("Clean tmp dir:" + tmpDir.getAbsolutePath());
133
                        }
134
                }
135

    
136
                tmpDir.mkdir();
137

    
138
                FilesystemServerExplorerParameters exParam = (FilesystemServerExplorerParameters) dataManager
139
                                .createServerExplorerParameters(FilesystemServerExplorer.NAME);
140

    
141
                exParam.setRoot(tmpDir.getAbsolutePath());
142

    
143
                DataServerExplorer ex = dataManager.createServerExplorer(exParam);
144

    
145
                assertTrue(ex.canAdd());
146

    
147
                assertTrue(ex.canAdd(DBFStoreProvider.NAME));
148

    
149
                assertEquals(0, ex.list().size());
150

    
151
                NewDataStoreParameters newParams = ex
152
                                .getAddParameters(DBFStoreProvider.NAME);
153

    
154
                ((FilesystemStoreParameters) newParams).setFile(new File(tmpDir,
155
                                "tmp1.dbf"));
156
                EditableFeatureType fType;
157
                if (((NewFeatureStoreParameters) newParams).getDefaultFeatureType() instanceof EditableFeatureType) {
158
                        fType = (EditableFeatureType) ((NewFeatureStoreParameters) newParams)
159
                                        .getDefaultFeatureType();
160
                } else {
161
                        fType = ((NewFeatureStoreParameters) newParams)
162
                                        .getDefaultFeatureType().getEditable();
163
                }
164
                fType.add("campo1", DataTypes.STRING).setSize(10);
165
                ((NewFeatureStoreParameters) newParams).setDefaultFeatureType(fType);
166
                ex.add(newParams, false);
167

    
168
                List list = ex.list();
169
                assertEquals(1, list.size());
170

    
171
                Iterator iter = list.iterator();
172
                TestDBF testDBF = new TestDBF(false, true);
173
                while (iter.hasNext()) {
174
                        testDBF.testSimpleIteration((DBFStoreParameters) iter.next());
175
                }
176

    
177
                ex.remove((DataStoreParameters) list.get(0));
178

    
179
                assertEquals(0, ex.list().size());
180

    
181

    
182
        }
183
}