Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / libraries / org.gvsig.geocoding / src-test / org / gvsig / geocoding / persistence / TestPersistenceSaveLoad.java @ 32479

History | View | Annotate | Download (9.53 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 Prodevelop S.L  main development
26
 */
27

    
28
package org.gvsig.geocoding.persistence;
29

    
30
import java.util.ArrayList;
31
import java.util.List;
32

    
33
import org.gvsig.geocoding.GeocodingTags;
34
import org.gvsig.geocoding.address.Literal;
35
import org.gvsig.geocoding.address.impl.DefaultLiteral;
36
import org.gvsig.geocoding.impl.DefaultGeocodingLibrary;
37
import org.gvsig.geocoding.pattern.GeocodingPattern;
38
import org.gvsig.geocoding.pattern.GeocodingSource;
39
import org.gvsig.geocoding.pattern.impl.DefaultGeocodingPattern;
40
import org.gvsig.geocoding.pattern.impl.DefaultGeocodingSource;
41
import org.gvsig.geocoding.styles.AbstractGeocodingStyle;
42
import org.gvsig.geocoding.styles.impl.Composed;
43
import org.gvsig.geocoding.styles.impl.DoubleRange;
44
import org.gvsig.geocoding.styles.impl.SimpleCentroid;
45
import org.gvsig.geocoding.styles.impl.SimpleRange;
46
import org.gvsig.tools.library.Library;
47
import org.gvsig.utils.XMLEntity;
48
import org.gvsig.utils.XMLException;
49
import org.slf4j.Logger;
50
import org.slf4j.LoggerFactory;
51

    
52
/**
53
 * Test
54
 * 
55
 * @author <a href="mailto:jsanz@prodevelop.es"> Jorge Gaspar Sanz Salinas</a>
56
 * @author <a href="mailto:vsanjaime@prodevelop.es"> Vicent Sanjaime Calvet</a>
57
 */
58

    
59
public class TestPersistenceSaveLoad extends
60
                org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase {
61

    
62
        private static final Logger log = LoggerFactory
63
                        .getLogger(TestPersistenceSaveLoad.class);
64

    
65
        /**
66
         * tearDown
67
         */
68
        public void tearDown() {
69

    
70
        }
71

    
72
        /**
73
         * test literal
74
         * 
75
         * @throws XMLException
76
         */
77
        public void testPersistCentroid() throws XMLException {
78

    
79
                GeocodingPattern pat = getPattern();
80

    
81
                XMLEntity xml = pat.getXMLEntity();
82

    
83
                GeocodingPattern pat2 = new DefaultGeocodingPattern();
84
                pat2.setXMLEntity(xml);
85

    
86
                assertEquals(pat.getPatternName(), pat2.getPatternName());
87
                assertEquals(pat.getSettings().getMaxResultsNumber(), pat2.getSettings()
88
                                .getMaxResultsNumber());
89
                assertEquals(pat.getDataSource().getLayerProvider(), pat2.getDataSource()
90
                                .getLayerProvider());
91
                assertEquals(pat.getDataSource().getStyle().getRelationsLiteral()
92
                                .firstKey(), pat2.getDataSource().getStyle().getRelationsLiteral()
93
                                .firstKey());
94

    
95
        }
96

    
97
        /**
98
         * test literal
99
         * 
100
         * @throws XMLException
101
         */
102
        public void testPersistSimpleRange() throws XMLException {
103

    
104
                GeocodingPattern pat = getPattern1();
105

    
106
                XMLEntity xml = pat.getXMLEntity();
107

    
108
                GeocodingPattern pat2 = new DefaultGeocodingPattern();
109
                pat2.setXMLEntity(xml);
110

    
111
                assertEquals(pat.getPatternName(), pat2.getPatternName());
112
                assertEquals(pat.getSettings().getMaxResultsNumber(), pat2.getSettings()
113
                                .getMaxResultsNumber());
114
                assertEquals(pat.getDataSource().getLayerProvider(), pat2.getDataSource()
115
                                .getLayerProvider());
116
                assertEquals(pat.getDataSource().getStyle().getRelationsLiteral()
117
                                .firstKey(), pat2.getDataSource().getStyle().getRelationsLiteral()
118
                                .firstKey());
119
                assertEquals(((SimpleRange) pat.getDataSource().getStyle())
120
                                .getFirstNumber(), ((SimpleRange) pat2.getDataSource().getStyle())
121
                                .getFirstNumber());
122

    
123
        }
124

    
125
        /**
126
         * test literal
127
         * 
128
         * @throws XMLException
129
         */
130
        public void testPersistDoubleRange() throws XMLException {
131

    
132
                GeocodingPattern pat = getPattern2();
133

    
134
                XMLEntity xml = pat.getXMLEntity();
135

    
136
                GeocodingPattern pat2 = new DefaultGeocodingPattern();
137
                pat2.setXMLEntity(xml);
138

    
139
                assertEquals(pat.getPatternName(), pat2.getPatternName());
140
                assertEquals(pat.getSettings().getMaxResultsNumber(), pat2.getSettings()
141
                                .getMaxResultsNumber());
142
                assertEquals(pat.getDataSource().getLayerProvider(), pat2.getDataSource()
143
                                .getLayerProvider());
144
                assertEquals(pat.getDataSource().getStyle().getRelationsLiteral()
145
                                .firstKey(), pat2.getDataSource().getStyle().getRelationsLiteral()
146
                                .firstKey());
147
                assertEquals(((DoubleRange) pat.getDataSource().getStyle())
148
                                .getLastRightNumber(), ((DoubleRange) pat2.getDataSource()
149
                                .getStyle()).getLastRightNumber());
150

    
151
        }
152

    
153
        /**
154
         * test literal
155
         * 
156
         * @throws XMLException
157
         */
158
        public void testPersistComposed() throws XMLException {
159

    
160
                GeocodingPattern pat = getPattern3();
161

    
162
                XMLEntity xml = pat.getXMLEntity();
163

    
164
                GeocodingPattern pat2 = new DefaultGeocodingPattern();
165
                pat2.setXMLEntity(xml);
166

    
167
                assertEquals(pat.getPatternName(), pat2.getPatternName());
168
                assertEquals(pat.getSettings().getMaxResultsNumber(), pat2.getSettings()
169
                                .getMaxResultsNumber());
170
                assertEquals(pat.getDataSource().getLayerProvider(), pat2.getDataSource()
171
                                .getLayerProvider());
172
                assertEquals(pat.getDataSource().getStyle().getRelationsLiteral()
173
                                .firstKey(), pat2.getDataSource().getStyle().getRelationsLiteral()
174
                                .firstKey());
175
                
176

    
177
        }
178

    
179
        @Override
180
        protected void doSetUp() throws Exception {
181

    
182
                Library geocoLib = new DefaultGeocodingLibrary();
183
                geocoLib.initialize();
184
                geocoLib.postInitialize();
185

    
186
        }
187

    
188
        /**
189
         * get pattern
190
         * 
191
         * @return
192
         */
193
        private GeocodingPattern getPattern() {
194

    
195
                GeocodingPattern pat = new DefaultGeocodingPattern();
196

    
197
                pat.setPatternName("SimpleCentroid style");
198

    
199
                GeocodingSource source = new DefaultGeocodingSource();
200
                source.setLayerName("Layer");
201
                source.setLayerProvider("SHP");
202

    
203
                AbstractGeocodingStyle style = new SimpleCentroid();
204
                Literal relations = new DefaultLiteral();
205
                relations.put("Calle", "STREET_NAM");
206
                relations.put("City", "CITY");
207
                relations.put("Barrio", "STREET");
208

    
209
                style.setRelationsLiteral(relations);
210
                source.setStyle(style);
211

    
212
                pat.setSource(source);
213

    
214
                return pat;
215
        }
216

    
217
        /**
218
         * get pattern
219
         * 
220
         * @return
221
         */
222
        private GeocodingPattern getPattern1() {
223

    
224
                GeocodingPattern pat = new DefaultGeocodingPattern();
225

    
226
                pat.setPatternName("SimpleRange style");
227

    
228
                GeocodingSource source = new DefaultGeocodingSource();
229
                source.setLayerName("Layer");
230
                source.setLayerProvider("SHP");
231

    
232
                AbstractGeocodingStyle style = new SimpleRange();
233
                Literal relations = new DefaultLiteral();
234
                relations.put("Calle", "STREET_NAM");
235
                relations.put("City", "CITY");
236
                relations.put("Barrio", "STREET");
237
                relations.put(GeocodingTags.FIRSTNUMBER, "NUM");
238
                relations.put(GeocodingTags.LASTNUMBER, "NUM2");
239

    
240
                style.setRelationsLiteral(relations);
241
                ((SimpleRange) style).setFirstNumber(GeocodingTags.FIRSTNUMBER);
242
                ((SimpleRange) style).setLastNumber(GeocodingTags.LASTNUMBER);
243

    
244
                source.setStyle(style);
245

    
246
                pat.setSource(source);
247

    
248
                return pat;
249
        }
250

    
251
        /**
252
         * get pattern
253
         * 
254
         * @return
255
         */
256
        private GeocodingPattern getPattern2() {
257

    
258
                GeocodingPattern pat = new DefaultGeocodingPattern();
259

    
260
                pat.setPatternName("DoubleRange style");
261

    
262
                GeocodingSource source = new DefaultGeocodingSource();
263
                source.setLayerName("Layer");
264
                source.setLayerProvider("SHP");
265

    
266
                AbstractGeocodingStyle style = new DoubleRange();
267
                Literal relations = new DefaultLiteral();
268
                relations.put("Calle", "STREET_NAM");
269
                relations.put("City", "CITY");
270
                relations.put("Barrio", "STREET");
271
                relations.put(GeocodingTags.FIRSTLEFTNUMBER, "NUM");
272
                relations.put(GeocodingTags.FIRSTRIGHTNUMBER, "NUM2");
273
                relations.put(GeocodingTags.LASTLEFTNUMBER, "NUM3");
274
                relations.put(GeocodingTags.LASTRIGHTNUMBER, "NUM4");
275

    
276
                style.setRelationsLiteral(relations);
277
                ((DoubleRange) style).setFirstLeftNumber(GeocodingTags.FIRSTLEFTNUMBER);
278
                ((DoubleRange) style)
279
                                .setFirstRightNumber(GeocodingTags.FIRSTRIGHTNUMBER);
280
                ((DoubleRange) style).setLastLeftNumber(GeocodingTags.LASTLEFTNUMBER);
281
                ((DoubleRange) style).setLastRightNumber(GeocodingTags.LASTRIGHTNUMBER);
282

    
283
                source.setStyle(style);
284

    
285
                pat.setSource(source);
286

    
287
                return pat;
288
        }
289

    
290
        /**
291
         * get pattern
292
         * 
293
         * @return
294
         */
295
        private GeocodingPattern getPattern3() {
296

    
297
                GeocodingPattern pat = new DefaultGeocodingPattern();
298

    
299
                pat.setPatternName("Composed style");
300

    
301
                GeocodingSource source = new DefaultGeocodingSource();
302
                source.setLayerName("Layer");
303
                source.setLayerProvider("SHP");
304

    
305
                AbstractGeocodingStyle style = new Composed();
306
                Literal lit = new DefaultLiteral();
307
                lit.put("Calle", "STREET_NAM");
308
                lit.put("City", "CITY");
309
                lit.put("Barrio", "STREET");
310

    
311
                style.setRelationsLiteral(lit);
312

    
313
                Literal lit2 = new DefaultLiteral();
314
                lit2.put("Calle", "STREET_NAM1");
315
                lit2.put("City", "CITY1");
316
                lit2.put("Barrio", "STREET1");
317

    
318
                Literal lit3 = new DefaultLiteral();
319
                lit3.put("Calle", "STREET_NAM2");
320
                lit3.put("City", "CITY2");
321
                lit3.put("Barrio", "STREET2");
322

    
323
                List<Literal> intersectLit = new ArrayList<Literal>();
324
                intersectLit.add(lit2);
325
                intersectLit.add(lit3);
326
                ((Composed) style).setIntersectsLiterals(intersectLit);
327

    
328
                source.setStyle(style);
329

    
330
                pat.setSource(source);
331

    
332
                return pat;
333
        }
334

    
335
}