Revision 951

View differences:

org.gvsig.oracle/tags/org.gvsig.oracle-2.0.158/org.gvsig.oracle.provider/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2

  
3
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4

  
5
    <modelVersion>4.0.0</modelVersion>
6
    <artifactId>org.gvsig.oracle.provider</artifactId>
7
    <packaging>jar</packaging>
8
    <name>${project.artifactId}</name>
9
    <description>DAL provider for PostgeSQL files</description>
10
    <parent>
11
        <groupId>org.gvsig</groupId>
12
        <artifactId>org.gvsig.oracle</artifactId>
13
        <version>2.0.158</version>
14
    </parent>
15

  
16
    <dependencies>
17
        <dependency>
18
            <groupId>com.googlecode.log4jdbc</groupId>
19
            <artifactId>log4jdbc</artifactId>
20
            <scope>compile</scope>
21
        </dependency>
22
        <dependency>
23
            <groupId>org.gvsig</groupId>
24
            <artifactId>org.gvsig.tools.lib</artifactId>
25
            <scope>compile</scope>
26
        </dependency>
27
        <dependency>
28
            <groupId>org.gvsig</groupId>
29
            <artifactId>org.gvsig.projection.api</artifactId>
30
            <scope>compile</scope>
31
        </dependency>
32
        <dependency>
33
            <groupId>org.gvsig</groupId>
34
            <artifactId>org.gvsig.fmap.dal.api</artifactId>
35
            <scope>compile</scope>
36
        </dependency>
37
    
38
        <dependency>
39
            <groupId>org.gvsig</groupId>
40
            <artifactId>org.gvsig.fmap.dal.db.jdbc</artifactId>
41
            <scope>compile</scope>
42
        </dependency>
43
        <dependency>
44
            <groupId>org.gvsig</groupId>
45
            <artifactId>org.gvsig.fmap.dal.db.jdbc</artifactId>
46
            <scope>test</scope>
47
            <type>test-jar</type>
48
        </dependency>
49

  
50
        <dependency>
51
            <groupId>org.gvsig</groupId>
52
            <artifactId>org.gvsig.fmap.dal.db.lib</artifactId>
53
            <scope>compile</scope>
54
        </dependency>
55
    
56
        <dependency>
57
            <groupId>org.gvsig</groupId>
58
            <artifactId>org.gvsig.fmap.dal.spi</artifactId>
59
            <scope>compile</scope>
60
        </dependency>
61
        <dependency>
62
            <groupId>org.gvsig</groupId>
63
            <artifactId>org.gvsig.metadata.lib.basic.api</artifactId>
64
            <scope>compile</scope>
65
        </dependency>
66
        <dependency>
67
            <groupId>org.gvsig</groupId>
68
            <artifactId>org.gvsig.fmap.geometry.api</artifactId>
69
            <scope>compile</scope>
70
        </dependency>
71
        <dependency>
72
            <groupId>org.gvsig</groupId>
73
            <artifactId>org.gvsig.expressionevaluator.lib.api</artifactId>
74
            <scope>compile</scope>
75
        </dependency>
76
        <dependency>
77
            <groupId>org.gvsig</groupId>
78
            <artifactId>org.gvsig.expressionevaluator.geometry.lib.api</artifactId>
79
            <scope>compile</scope>
80
        </dependency>
81
        <dependency>
82
            <groupId>org.gvsig</groupId>
83
            <artifactId>org.gvsig.timesupport.lib.api</artifactId>
84
            <scope>compile</scope>
85
        </dependency>  
86
        <dependency>
87
            <groupId>org.gvsig</groupId>
88
            <artifactId>org.gvsig.utils</artifactId>
89
            <scope>compile</scope>
90
        </dependency>
91

  
92
        <dependency>
93
            <groupId>com.oracle</groupId>
94
            <artifactId>ojdbc</artifactId>
95
            <scope>compile</scope>
96
        </dependency>
97

  
98
        <dependency>
99
            <groupId>commons-dbcp</groupId>
100
            <artifactId>commons-dbcp</artifactId>
101
            <scope>compile</scope>
102
        </dependency>
103
        <dependency>
104
            <groupId>commons-collections</groupId>
105
            <artifactId>commons-collections</artifactId>
106
            <scope>compile</scope>
107
        </dependency>
108

  
109

  
110
        <!-- TESTS -->
111
        <dependency>
112
            <groupId>org.gvsig</groupId>
113
            <artifactId>org.gvsig.fmap.dal.impl</artifactId>
114
            <scope>test</scope>
115
        </dependency>
116
        <dependency>
117
            <groupId>org.gvsig</groupId>
118
            <artifactId>${org.gvsig.fmap.geometry.impl}</artifactId>
119
            <scope>test</scope>
120
        </dependency>    
121
        <dependency>
122
            <groupId>org.gvsig</groupId>
123
            <artifactId>org.gvsig.tools.lib</artifactId>
124
            <type>test-jar</type>
125
            <scope>test</scope>
126
        </dependency>
127
        <dependency>
128
            <groupId>org.gvsig</groupId>
129
            <artifactId>org.gvsig.compat.se</artifactId>
130
            <scope>test</scope>
131
        </dependency>
132
        <dependency>
133
            <groupId>org.gvsig</groupId>
134
            <artifactId>org.gvsig.expressionevaluator.lib.impl</artifactId>
135
            <scope>test</scope>
136
        </dependency>
137
        <dependency>
138
            <groupId>org.gvsig</groupId>
139
            <artifactId>org.gvsig.expressionevaluator.geometry.lib.impl</artifactId>
140
            <scope>test</scope>
141
        </dependency>
142
        <dependency>
143
            <groupId>org.gvsig</groupId>
144
            <artifactId>${org.gvsig.proj.lib.impl}</artifactId>
145
            <scope>test</scope>
146
        </dependency>
147
    
148
        <!--    <dependency>
149
          <groupId>org.gvsig</groupId>
150
          <artifactId>org.gvsig.projection.cresques.impl</artifactId>
151
          <scope>test</scope>
152
        </dependency>-->
153
<!--        <dependency>
154
            <groupId>org.gvsig</groupId>
155
            <artifactId>org.gvsig.compat.se</artifactId>
156
            <scope>test</scope>
157
        </dependency>-->
158
        <dependency>
159
            <groupId>org.gvsig</groupId>
160
            <artifactId>org.gvsig.metadata.lib.basic.impl</artifactId>
161
            <scope>test</scope>
162
        </dependency>      
163
        <dependency>
164
            <groupId>org.gvsig</groupId>
165
            <artifactId>org.gvsig.timesupport.lib.impl</artifactId>
166
            <scope>test</scope>
167
        </dependency>   
168

  
169
        <dependency>
170
            <groupId>org.gvsig</groupId>
171
            <artifactId>org.gvsig.fmap.dal.file.csv</artifactId>
172
            <scope>test</scope>
173
        </dependency>
174
        <dependency>
175
            <groupId>org.gvsig</groupId>
176
            <artifactId>org.gvsig.fmap.dal.file.lib</artifactId>
177
            <scope>test</scope>
178
        </dependency>
179
        <dependency>
180
            <groupId>org.gvsig</groupId>
181
            <artifactId>org.gvsig.tools.util.impl</artifactId>
182
            <scope>test</scope>
183
        </dependency>
184

  
185
    </dependencies>
186

  
187
    <build>
188
        <plugins>
189

  
190
            <plugin>
191
                <groupId>org.apache.maven.plugins</groupId>
192
                <artifactId>maven-surefire-plugin</artifactId>
193
                <configuration>
194
                    <!-- Skip test execution ? -->
195
                    <skipTests>false</skipTests>
196
                    <!-- Ignore test execution failure ? -->
197
                    <testFailureIgnore>false</testFailureIgnore>
198
                    <excludes>
199
                        <exclude>**/TestCreate.java</exclude>
200
                    </excludes>
201
                </configuration>
202
            </plugin>
203
        
204
            <!-- Skip test compilation ? -->
205
            <plugin>
206
                <groupId>org.apache.maven.plugins</groupId>
207
                <artifactId>maven-compiler-plugin</artifactId>
208
                <executions>
209
                    <execution>
210
                        <id>default-testCompile</id>
211
                        <phase>process-test-sources</phase>
212
                        <goals>
213
                            <goal>testCompile</goal>
214
                        </goals>
215
                        <configuration>
216
                            <skip>false</skip>
217
                        </configuration>
218
                    </execution>
219
                </executions>
220
            </plugin>
221

  
222
        </plugins>
223
    </build>
224

  
225
</project>
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.158/org.gvsig.oracle.provider/src/test/java/org/gvsig/oracle/dal/TestCreate.java
1
package org.gvsig.oracle.dal;
2

  
3
import java.util.Date;
4
import java.util.List;
5
import junit.framework.TestCase;
6
import static junit.framework.TestCase.assertEquals;
7
import org.gvsig.fmap.dal.DALLocator;
8
import org.gvsig.fmap.dal.DataManager;
9
import org.gvsig.fmap.dal.DataTypes;
10
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
11
import org.gvsig.fmap.dal.feature.EditableFeature;
12
import org.gvsig.fmap.dal.feature.EditableFeatureType;
13
import org.gvsig.fmap.dal.feature.Feature;
14
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
15
import org.gvsig.fmap.dal.feature.FeatureStore;
16
import org.gvsig.fmap.dal.feature.FeatureType;
17
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
18
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters;
19
import org.gvsig.fmap.dal.store.jdbc2.JDBCServerExplorer;
20
import org.gvsig.fmap.geom.Geometry;
21
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
22
import org.slf4j.Logger;
23
import org.slf4j.LoggerFactory;
24

  
25
public class TestCreate extends TestCase {
26

  
27
    private static final Logger LOGGER = LoggerFactory.getLogger(TestCreate.class);
28

  
29
    public static final String DBNAME = "testCreate";
30

  
31
    public static final int ZERO_DEFAULT_DISPLAY_SIZE = 0;
32
    public static final int BYTE_DEFAULT_DISPLAY_SIZE = 4;
33
    public static final int FLOAT_DEFAULT_DISPLAY_SIZE = 4;
34
    public static final int DOUBLE_DEFAULT_DISPLAY_SIZE = 8;
35

  
36
    public TestCreate(String testName) {
37
        super(testName);
38
    }
39

  
40
    @Override
41
    protected void setUp() throws Exception {
42
        super.setUp();
43
        new DefaultLibrariesInitializer().fullInitialize();
44
    }
45

  
46
    @Override
47
    protected void tearDown() throws Exception {
48
        super.tearDown();
49
    }
50

  
51
    // TODO add test methods here. The name must begin with 'test'. For example:
52
    // public void testHello() {}
53
    protected String getProviderName() {
54
        return OracleLibrary.NAME;
55
    }
56

  
57
    protected String getTargetName() {
58
        return "testCreateTarget6".toUpperCase();
59
    }
60

  
61
    protected FeatureStore openTargetStore1(JDBCServerExplorer explorer) throws Exception {
62
        JDBCStoreParameters params = explorer.get(getTargetName());
63

  
64
        DataManager dataManager = DALLocator.getDataManager();
65
        FeatureStore store;
66
        try {
67
            store = (FeatureStore) dataManager.openStore(
68
                    getProviderName(),
69
                    params
70
            );
71
        } catch (ValidateDataParametersException ex) {
72
            LOGGER.warn(ex.getLocalizedMessageStack());
73
            throw ex;
74
        }
75
        return store;
76
    }
77

  
78
    protected void createFrom(JDBCServerExplorer explorer, FeatureStore sourceStore) throws Exception {
79
        NewFeatureStoreParameters params = (NewFeatureStoreParameters) explorer.getAddParameters(
80
                getTargetName()
81
        );
82
        EditableFeatureType ft = params.getDefaultFeatureType();
83
        ft.addAll(sourceStore.getDefaultFeatureType());
84
        explorer.add(getProviderName(), params, true);
85
    }
86

  
87
    protected void checkTypes(JDBCServerExplorer explorer, FeatureType sourceFeatureType, boolean withDalResource) throws Exception {
88
        FeatureStore targetStore = openTargetStore1(explorer);
89
        FeatureType targetFeatureType = targetStore.getDefaultFeatureType();
90

  
91
        assertEquals("Feature type size", sourceFeatureType.size(), targetFeatureType.size());
92
        for (int i = 0; i < sourceFeatureType.size(); i++) {
93
            FeatureAttributeDescriptor sourceAttr = sourceFeatureType.get(i);
94
            FeatureAttributeDescriptor targetAttr = targetFeatureType.get(i);
95
            if (withDalResource) {
96
                if (sourceAttr.getType() == DataTypes.GEOMETRY) {
97
                    assertEquals(
98
                            String.format("Field %s name mismatch", sourceAttr.getName()),
99
                            sourceAttr.getName().toUpperCase(),
100
                            targetAttr.getName()
101
                    );
102
                } else {
103
                    assertEquals(
104
                            String.format("Field %s name mismatch", sourceAttr.getName()),
105
                            sourceAttr.getName(),
106
                            targetAttr.getName()
107
                    );
108
                }
109

  
110
                assertEquals(
111
                        String.format("Field %s type mismatch", sourceAttr.getName()),
112
                        sourceAttr.getDataTypeName(),
113
                        targetAttr.getDataTypeName()
114
                );
115
                assertEquals(
116
                        String.format("Field %s display size mismatch", sourceAttr.getName()),
117
                        sourceAttr.getDisplaySize(),
118
                        targetAttr.getDisplaySize()
119
                );
120
                assertEquals(
121
                        String.format("Field %s size mismatch", sourceAttr.getName()),
122
                        sourceAttr.getSize(),
123
                        targetAttr.getSize()
124
                );
125
                assertEquals(
126
                        String.format("Field %s precision mismatch", sourceAttr.getName()),
127
                        sourceAttr.getPrecision(),
128
                        targetAttr.getPrecision()
129
                );
130
                assertEquals(
131
                        String.format("Field %s scale mismatch", sourceAttr.getName()),
132
                        sourceAttr.getScale(),
133
                        targetAttr.getScale()
134
                );
135

  
136
                if (sourceAttr.getType() == DataTypes.GEOMETRY) {
137
                    assertEquals(
138
                            String.format("Field %s geometry type mismatch", sourceAttr.getName()),
139
                            sourceAttr.getGeomType().getName(),
140
                            targetAttr.getGeomType().getName()
141
                    );
142
                    assertEquals(
143
                            String.format("Field %s geometry SRS mismatch", sourceAttr.getName()),
144
                            sourceAttr.getSRS().getAbrev(),
145
                            targetAttr.getSRS().getAbrev()
146
                    );
147

  
148
                }
149

  
150
            } else {
151
                switch (sourceAttr.getType()) {
152
                    case DataTypes.BYTE:
153
                        assertEquals(
154
                                String.format("Field %s name mismatch", sourceAttr.getName()),
155
                                sourceAttr.getName(),
156
                                targetAttr.getName()
157
                        );
158
                        assertEquals(
159
                                String.format("Field %s type mismatch", sourceAttr.getName()),
160
                                DataTypes.DECIMAL,
161
                                targetAttr.getDataType().getType()
162
                        );
163
                        assertEquals(
164
                                String.format("Field %s display size mismatch", sourceAttr.getName()),
165
                                BYTE_DEFAULT_DISPLAY_SIZE,
166
                                targetAttr.getDisplaySize()
167
                        );
168
                        assertEquals(
169
                                String.format("Field %s size mismatch", sourceAttr.getName()),
170
                                sourceAttr.getSize(),
171
                                targetAttr.getSize()
172
                        );
173
                        assertEquals(
174
                                String.format("Field %s precision mismatch", sourceAttr.getName()),
175
                                sourceAttr.getPrecision(),
176
                                targetAttr.getPrecision()
177
                        );
178
                        assertEquals(
179
                                String.format("Field %s scale mismatch", sourceAttr.getName()),
180
                                sourceAttr.getScale(),
181
                                targetAttr.getScale()
182
                        );
183
                        break;
184
                    case DataTypes.BOOLEAN:
185
                        assertEquals(
186
                                String.format("Field %s name mismatch", sourceAttr.getName()),
187
                                sourceAttr.getName(),
188
                                targetAttr.getName()
189
                        );
190
                        assertEquals(
191
                                String.format("Field %s type mismatch", sourceAttr.getName()),
192
                                DataTypes.STRING_NAME,
193
                                targetAttr.getDataTypeName()
194
                        );
195
                        assertEquals(String.format("Field %s display size mismatch", sourceAttr.getName()),
196
                                ZERO_DEFAULT_DISPLAY_SIZE,
197
                                targetAttr.getDisplaySize()
198
                        );
199
                        assertEquals(String.format("Field %s size mismatch", sourceAttr.getName()),
200
                                OracleSQLBuilder.BOOLEAN_STRING_DEFAULT_LENGTH,
201
                                targetAttr.getSize()
202
                        );
203
                        assertEquals(
204
                                String.format("Field %s precision mismatch", sourceAttr.getName()),
205
                                sourceAttr.getPrecision(),
206
                                targetAttr.getPrecision()
207
                        );
208
                        assertEquals(
209
                                String.format("Field %s scale mismatch", sourceAttr.getName()),
210
                                sourceAttr.getScale(),
211
                                targetAttr.getScale()
212
                        );
213
                        break;
214
                    case DataTypes.STRING:
215
                        assertEquals(
216
                                String.format("Field %s name mismatch", sourceAttr.getName()),
217
                                sourceAttr.getName(),
218
                                targetAttr.getName()
219
                        );
220
                        assertEquals(
221
                                String.format("Field %s type mismatch", sourceAttr.getName()),
222
                                sourceAttr.getDataTypeName(),
223
                                targetAttr.getDataTypeName()
224
                        );
225
                        assertEquals(String.format("Field %s display size mismatch", sourceAttr.getName()),
226
                                ZERO_DEFAULT_DISPLAY_SIZE,
227
                                targetAttr.getDisplaySize()
228
                        );
229
                        assertEquals(
230
                                String.format("Field %s size mismatch", sourceAttr.getName()),
231
                                sourceAttr.getSize(),
232
                                targetAttr.getSize()
233
                        );
234
                        assertEquals(
235
                                String.format("Field %s precision mismatch", sourceAttr.getName()),
236
                                sourceAttr.getPrecision(),
237
                                targetAttr.getPrecision()
238
                        );
239
                        assertEquals(
240
                                String.format("Field %s scale mismatch", sourceAttr.getName()),
241
                                sourceAttr.getScale(),
242
                                targetAttr.getScale()
243
                        );
244
                        break;
245
                    case DataTypes.TIME:
246
                    case DataTypes.DATE:
247
                        assertEquals(
248
                                String.format("Field %s name mismatch", sourceAttr.getName()),
249
                                sourceAttr.getName(),
250
                                targetAttr.getName()
251
                        );
252
                        assertEquals(
253
                                String.format("Field %s type mismatch", sourceAttr.getName()),
254
                                DataTypes.TIMESTAMP_NAME,
255
                                targetAttr.getDataTypeName()
256
                        );
257
                        assertEquals(String.format("Field %s display size mismatch", sourceAttr.getName()),
258
                                ZERO_DEFAULT_DISPLAY_SIZE,
259
                                targetAttr.getDisplaySize()
260
                        );
261
                        assertEquals(
262
                                String.format("Field %s size mismatch", sourceAttr.getName()),
263
                                sourceAttr.getSize(),
264
                                targetAttr.getSize()
265
                        );
266
                        assertEquals(
267
                                String.format("Field %s precision mismatch", sourceAttr.getName()),
268
                                sourceAttr.getPrecision(),
269
                                targetAttr.getPrecision()
270
                        );
271
                        assertEquals(
272
                                String.format("Field %s scale mismatch", sourceAttr.getName()),
273
                                sourceAttr.getScale(),
274
                                targetAttr.getScale()
275
                        );
276
                        break;
277

  
278
                    case DataTypes.DOUBLE:
279
                        assertEquals(
280
                                String.format("Field %s name mismatch", sourceAttr.getName()),
281
                                sourceAttr.getName(),
282
                                targetAttr.getName()
283
                        );
284
                        assertEquals(
285
                                String.format("Field %s type mismatch", sourceAttr.getName()),
286
                                sourceAttr.getDataTypeName(),
287
                                targetAttr.getDataTypeName()
288
                        );
289
                        assertEquals(
290
                                String.format("Field %s display size mismatch", sourceAttr.getName()),
291
                                DOUBLE_DEFAULT_DISPLAY_SIZE,
292
                                targetAttr.getDisplaySize()
293
                        );
294
                        assertEquals(
295
                                String.format("Field %s size mismatch", sourceAttr.getName()),
296
                                sourceAttr.getSize(),
297
                                targetAttr.getSize()
298
                        );
299
                        assertEquals(
300
                                String.format("Field %s precision mismatch", sourceAttr.getName()),
301
                                sourceAttr.getPrecision(),
302
                                targetAttr.getPrecision()
303
                        );
304
                        assertEquals(
305
                                String.format("Field %s scale mismatch", sourceAttr.getName()),
306
                                sourceAttr.getScale(),
307
                                targetAttr.getScale()
308
                        );
309
                        break;
310
                    case DataTypes.FLOAT:
311
                        assertEquals(
312
                                String.format("Field %s name mismatch", sourceAttr.getName()),
313
                                sourceAttr.getName(),
314
                                targetAttr.getName()
315
                        );
316
                        assertEquals(
317
                                String.format("Field %s type mismatch", sourceAttr.getName()),
318
                                sourceAttr.getDataTypeName(),
319
                                targetAttr.getDataTypeName()
320
                        );
321
                        assertEquals(
322
                                String.format("Field %s display size mismatch", sourceAttr.getName()),
323
                                FLOAT_DEFAULT_DISPLAY_SIZE,
324
                                targetAttr.getDisplaySize()
325
                        );
326
                        assertEquals(
327
                                String.format("Field %s size mismatch", sourceAttr.getName()),
328
                                sourceAttr.getSize(),
329
                                targetAttr.getSize()
330
                        );
331
                        assertEquals(
332
                                String.format("Field %s precision mismatch", sourceAttr.getName()),
333
                                sourceAttr.getPrecision(),
334
                                targetAttr.getPrecision()
335
                        );
336
                        assertEquals(
337
                                String.format("Field %s scale mismatch", sourceAttr.getName()),
338
                                sourceAttr.getScale(),
339
                                targetAttr.getScale()
340
                        );
341
                        break;
342

  
343
                    case DataTypes.INT:
344
                    case DataTypes.LONG:
345
                    case DataTypes.TIMESTAMP:
346
                        assertEquals(
347
                                String.format("Field %s name mismatch", sourceAttr.getName()),
348
                                sourceAttr.getName(),
349
                                targetAttr.getName()
350
                        );
351
                        assertEquals(
352
                                String.format("Field %s type mismatch", sourceAttr.getName()),
353
                                sourceAttr.getDataType().getType(),
354
                                targetAttr.getDataType().getType()
355
                        );
356
                        assertEquals(String.format("Field %s display size mismatch", sourceAttr.getName()),
357
                                ZERO_DEFAULT_DISPLAY_SIZE,
358
                                targetAttr.getDisplaySize()
359
                        );
360
                        assertEquals(
361
                                String.format("Field %s size mismatch", sourceAttr.getName()),
362
                                sourceAttr.getSize(),
363
                                targetAttr.getSize()
364
                        );
365
                        assertEquals(
366
                                String.format("Field %s precision mismatch", sourceAttr.getName()),
367
                                sourceAttr.getPrecision(),
368
                                targetAttr.getPrecision()
369
                        );
370
                        assertEquals(
371
                                String.format("Field %s scale mismatch", sourceAttr.getName()),
372
                                sourceAttr.getScale(),
373
                                targetAttr.getScale()
374
                        );
375
                        break;
376

  
377
                    case DataTypes.DECIMAL:
378
                        assertEquals(
379
                                String.format("Field %s name mismatch", sourceAttr.getName()),
380
                                sourceAttr.getName(),
381
                                targetAttr.getName()
382
                        );
383
                        assertEquals(
384
                                String.format("Field %s type mismatch", sourceAttr.getName()),
385
                                sourceAttr.getDataTypeName(),
386
                                targetAttr.getDataTypeName()
387
                        );
388
                        assertEquals(
389
                                String.format("Field %s display size mismatch", sourceAttr.getName()),
390
                                sourceAttr.getPrecision() + 2, //Precision plus sign and decimal separator
391
                                targetAttr.getDisplaySize()
392
                        );
393
                        assertEquals(
394
                                String.format("Field %s size mismatch", sourceAttr.getName()),
395
                                sourceAttr.getSize(),
396
                                targetAttr.getSize()
397
                        );
398
                        assertEquals(
399
                                String.format("Field %s precision mismatch", sourceAttr.getName()),
400
                                sourceAttr.getPrecision(),
401
                                targetAttr.getPrecision()
402
                        );
403
                        assertEquals(
404
                                String.format("Field %s scale mismatch", sourceAttr.getName()),
405
                                sourceAttr.getScale(),
406
                                targetAttr.getScale()
407
                        );
408
                        break;
409
                    case DataTypes.GEOMETRY:
410
                        assertEquals(
411
                                String.format("Field %s name mismatch", sourceAttr.getName()),
412
                                sourceAttr.getName().toUpperCase(),
413
                                targetAttr.getName()
414
                        );
415
                        assertEquals(
416
                                String.format("Field %s type mismatch", sourceAttr.getName()),
417
                                sourceAttr.getDataTypeName(),
418
                                targetAttr.getDataTypeName()
419
                        );
420
                        assertEquals(
421
                                String.format("Field %s geometry type mismatch", sourceAttr.getName()),
422
                                sourceAttr.getGeomType().getName(),
423
                                targetAttr.getGeomType().getName()
424
                        );
425
                        assertEquals(
426
                                String.format("Field %s geometry SRS mismatch", sourceAttr.getName()),
427
                                sourceAttr.getSRS().getAbrev(),
428
                                targetAttr.getSRS().getAbrev()
429
                        );
430
                        assertEquals(
431
                                String.format("Field %s size mismatch", sourceAttr.getName()),
432
                                sourceAttr.getSize(),
433
                                targetAttr.getSize()
434
                        );
435
                        assertEquals(
436
                                String.format("Field %s precision mismatch", sourceAttr.getName()),
437
                                sourceAttr.getPrecision(),
438
                                targetAttr.getPrecision()
439
                        );
440
                        break;
441
                    default:
442
                        fail(
443
                                String.format("Field %s type %d (%s) not supported.",
444
                                        targetAttr.getName(),
445
                                        targetAttr.getType(),
446
                                        targetAttr.getDataTypeName()
447
                                )
448
                        );
449
                }
450
            }
451
        }
452
    }
453

  
454
    protected void copyFrom(JDBCServerExplorer explorer, FeatureStore sourceStore, int mode) throws Exception {
455
        FeatureStore targetStore = openTargetStore1(explorer);
456
        targetStore.edit(mode);
457
        try {
458
            for (Feature sourceFeature : sourceStore.getFeatureSet()) {
459
                EditableFeature targetFeature = targetStore.createNewFeature(sourceFeature);
460
                targetStore.insert(targetFeature);
461
            }
462
        } finally {
463
            targetStore.finishEditing();
464
        }
465
    }
466

  
467
    protected void checkData(JDBCServerExplorer explorer, FeatureStore sourceStore, boolean withDalResource) throws Exception {
468
        FeatureStore targetStore = openTargetStore1(explorer);
469

  
470
        List<Feature> sourceFeatures = sourceStore.getFeatures();
471
        List<Feature> targetFeatures = targetStore.getFeatures();
472
        assertEquals("Count features", sourceFeatures.size(), targetFeatures.size());
473
        for (int i = 0; i < targetFeatures.size(); i++) {
474
            Feature sourceFeature = sourceFeatures.get(i);
475
            Feature targetFeature = targetFeatures.get(i);
476
            for (FeatureAttributeDescriptor sourceAttr : sourceStore.getDefaultFeatureType()) {
477
                switch (sourceAttr.getType()) {
478
                    case DataTypes.BYTE:
479
                        assertEquals(
480
                                String.format("Feature %03d attribute %s", i, sourceAttr.getName()),
481
                                sourceFeature.getInt(sourceAttr.getName()),
482
                                targetFeature.getInt(sourceAttr.getName())
483
                        );
484
                        break;
485
                    case DataTypes.TIMESTAMP:
486
                        Date sourceTimestamp = sourceFeature.getDate(sourceAttr.getName());
487
                        Date targetTimestamp = targetFeature.getDate(sourceAttr.getName());
488
                        assertEquals(
489
                                String.format("Feature %03d attribute %s", i, sourceAttr.getName()),
490
                                sourceTimestamp,
491
                                targetTimestamp
492
                        );
493
                        break;
494
                    case DataTypes.TIME:
495
                        assertEquals(
496
                                String.format("Feature %03d attribute %s", i, sourceAttr.getName()),
497
                                sourceFeature.getDate(sourceAttr.getName()),
498
                                targetFeature.getDate(sourceAttr.getName())
499
                        );
500
                        break;
501
                    case DataTypes.GEOMETRY:
502
                        Geometry sourceGeometry = (Geometry) (sourceFeature.get(sourceAttr.getName()));
503
                        Geometry targetGeometry = (Geometry) (targetFeature.get(sourceAttr.getName()));
504
                        if (sourceGeometry == null) {
505
                            assertNull(targetGeometry);
506
                        } else {
507
                            assertEquals(
508
                                    String.format("Feature %03d attribute %s", i, sourceAttr.getName()),
509
                                    sourceGeometry.getGeometryType(),
510
                                    targetGeometry.getGeometryType()
511
                            );
512
                            assertTrue(sourceGeometry.distance(targetGeometry) < 0.0000000000001);
513
                        }
514

  
515
                        break;
516

  
517
                    case DataTypes.BOOLEAN:
518
                        assertEquals(
519
                                String.format("Feature %03d attribute %s", i, sourceAttr.getName()),
520
                                sourceFeature.getBoolean(sourceAttr.getName()),
521
                                targetFeature.getBoolean(sourceAttr.getName())
522
                        );
523
                        break;
524
                    case DataTypes.STRING:
525
                    case DataTypes.INT:
526
                    case DataTypes.LONG:
527
                    case DataTypes.FLOAT:
528
                    case DataTypes.DOUBLE:
529
                    default:
530
                        Object sourceValue = sourceFeature.get(sourceAttr.getName());
531
                        Object targetValue = targetFeature.get(sourceAttr.getName());
532
                        if (sourceValue == null) {
533
                            LOGGER.info(String.format("Feature %03d attribute %s is null", i, sourceAttr.getName()));
534
                        }
535
                        assertEquals(
536
                                String.format("Feature %03d attribute %s", i, sourceAttr.getName()),
537
                                sourceValue,
538
                                targetValue
539
                        );
540
                }
541
            }
542
        }
543
    }
544

  
545
    public void testCreatePopulateAndCheckDataWithoutDalResource() throws Exception {
546
//        FeatureStore sourceStore = TestUtils.openSourceStoreShort();
547
        FeatureStore sourceStore = TestUtils.openSourceStore1();
548
        JDBCServerExplorer explorer = TestUtils.openServerExplorer();
549

  
550
        JDBCStoreParameters params = explorer.get(this.getTargetName());
551
        if(params != null && explorer.exists(params) ){
552
                explorer.remove(params);
553
        }
554

  
555
        createFrom(explorer, sourceStore);
556

  
557
        TestUtils.removeDALResource(this.getTargetName());
558
        checkTypes(explorer, sourceStore.getDefaultFeatureType(), false);
559

  
560
        copyFrom(explorer, sourceStore, FeatureStore.MODE_APPEND);
561
        TestUtils.removeDALResource(this.getTargetName());
562
        checkData(explorer, sourceStore, false);
563

  
564
        explorer.remove(params);
565

  
566
        createFrom(explorer, sourceStore);
567
        copyFrom(explorer, sourceStore, FeatureStore.MODE_FULLEDIT);
568
        TestUtils.removeDALResource(this.getTargetName());
569
        checkData(explorer, sourceStore, false);
570

  
571
        explorer.remove(params);
572

  
573
    }
574

  
575
    public void testCreatePopulateAndCheckDataWithDalResource() throws Exception {
576
//        FeatureStore sourceStore = TestUtils.openSourceStoreShort();
577
        FeatureStore sourceStore = TestUtils.openSourceStore1();
578
        JDBCServerExplorer explorer = TestUtils.openServerExplorer();
579

  
580
        JDBCStoreParameters params = explorer.get(this.getTargetName());
581
        if (params != null && explorer.exists(params)) {
582
            explorer.remove(params);
583
        }
584

  
585
        createFrom(explorer, sourceStore);
586

  
587
        checkTypes(explorer, sourceStore.getDefaultFeatureType(), true);
588

  
589
        copyFrom(explorer, sourceStore, FeatureStore.MODE_APPEND);
590
        checkData(explorer, sourceStore, true);
591

  
592
        explorer.remove(params);
593

  
594
        createFrom(explorer, sourceStore);
595
        copyFrom(explorer, sourceStore, FeatureStore.MODE_FULLEDIT);
596
        checkData(explorer, sourceStore, true);
597

  
598
        explorer.remove(params);
599

  
600
    }
601

  
602
}
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.158/org.gvsig.oracle.provider/src/test/java/org/gvsig/oracle/dal/operations/sql/TestTableIsEmpty.java
1
package org.gvsig.oracle.dal.operations.sql;
2

  
3
import java.util.List;
4
import junit.framework.TestCase;
5
import org.gvsig.fmap.dal.feature.FeatureStore;
6
import org.gvsig.fmap.dal.feature.FeatureType;
7
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
8
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
9
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
10
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
11
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.TableIsEmptyOperation;
12
import org.gvsig.oracle.dal.TestUtils;
13
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
14
import org.slf4j.Logger;
15
import org.slf4j.LoggerFactory;
16

  
17
public class TestTableIsEmpty extends TestCase {
18

  
19
  private static final Logger LOGGER = LoggerFactory.getLogger(TestTableIsEmpty.class);
20

  
21
  public TestTableIsEmpty(String testName) {
22
    super(testName);
23
  }
24

  
25
  @Override
26
  protected void setUp() throws Exception {
27
    super.setUp();
28
    new DefaultLibrariesInitializer().fullInitialize();
29
  }
30

  
31
  @Override
32
  protected void tearDown() throws Exception {
33
    super.tearDown();
34
  }
35

  
36
  // TODO add test methods here. The name must begin with 'test'. For example:
37
  // public void testHello() {}
38
  
39
  public void testTableIsEmpty() throws Exception {
40
    JDBCHelper helper = TestUtils.getJDBCHelper();
41
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
42
    OperationsFactory operations = helper.getOperations();
43

  
44
    List<String> expectedSQLs = TestUtils.getSQLs("tableIsEmpty.sql");
45
    
46
    FeatureStore sourceStore = TestUtils.openSourceStore1();
47

  
48
    TableReference table = operations.createTableReference(
49
            "dbtest", 
50
            sqlbuilder.default_schema(), 
51
            "test", 
52
            null
53
    );
54
    FeatureType featureType = sourceStore.getDefaultFeatureType();
55
    TableIsEmptyOperation tableIsEmpty = operations.createTableIsEmpty(
56
            featureType,
57
            table,
58
            null, 
59
            null
60
    );
61
    
62
    String sql = tableIsEmpty.getSQL();
63
    assertEquals("TableIsEmpty SQL", expectedSQLs.get(0), sql);
64
  }
65

  
66
}
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.158/org.gvsig.oracle.provider/src/test/java/org/gvsig/oracle/dal/operations/sql/TestPerformChanges.java
1
package org.gvsig.oracle.dal.operations.sql;
2

  
3
import java.util.Collections;
4
import java.util.List;
5
import junit.framework.TestCase;
6
import org.gvsig.fmap.dal.DALLocator;
7
import org.gvsig.fmap.dal.DataTypes;
8
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
9
import org.gvsig.fmap.dal.feature.EditableFeatureType;
10
import org.gvsig.fmap.dal.feature.FeatureStore;
11
import org.gvsig.fmap.dal.feature.FeatureType;
12
import org.gvsig.fmap.dal.feature.FeatureType.FeatureTypeChanged;
13
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
14
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
15
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
16
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
17
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.PerformChangesOperation;
18
import org.gvsig.oracle.dal.TestUtils;
19
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
20
import org.slf4j.Logger;
21
import org.slf4j.LoggerFactory;
22

  
23
public class TestPerformChanges extends TestCase {
24

  
25
  private static final Logger LOGGER = LoggerFactory.getLogger(TestPerformChanges.class);
26

  
27
  public TestPerformChanges(String testName) {
28
    super(testName);
29
  }
30

  
31
  @Override
32
  protected void setUp() throws Exception {
33
    super.setUp();
34
    new DefaultLibrariesInitializer().fullInitialize();
35
  }
36

  
37
  @Override
38
  protected void tearDown() throws Exception {
39
    super.tearDown();
40
  }
41

  
42
  // TODO add test methods here. The name must begin with 'test'. For example:
43
  // public void testHello() {}
44
  
45
  public void testPerformChanges() throws Exception {
46
    JDBCHelper helper = TestUtils.getJDBCHelper();
47
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
48
    OperationsFactory operations = helper.getOperations();
49

  
50
    List<String> expectedSQLs = TestUtils.getSQLs("performChanges.sql");
51
    
52
    FeatureStore sourceStore = TestUtils.openSourceStore1();
53

  
54
    TableReference table = operations.createTableReference(
55
            "dbtest", 
56
            sqlbuilder.default_schema(), 
57
            "test", 
58
            null
59
    );
60
    FeatureType featureType = sourceStore.getDefaultFeatureType();
61
    
62
    
63
    FeatureTypeChanged featureTypeChanged = new FeatureTypeChanged() {
64
      @Override
65
      public FeatureType getSource() {
66
        EditableFeatureType ft = DALLocator.getDataManager().createFeatureType();
67
        EditableFeatureAttributeDescriptor id = ft.add("ID", DataTypes.INT);
68
        id.copyFrom(featureType.getAttributeDescriptor("ID"));
69
        return ft;
70
      }
71

  
72
      @Override
73
      public FeatureType getTarget() {
74
        return featureType;
75
      }
76
    };
77
    List<FeatureTypeChanged> featureTypesChangeds = Collections.singletonList(featureTypeChanged);
78
    
79
    PerformChangesOperation performChanges = operations.createPerformChanges(
80
            table, 
81
            sourceStore.getDefaultFeatureType(),
82
            null, 
83
            null, 
84
            null, 
85
            featureTypesChangeds.iterator()
86
    );
87
    String insertSQL = performChanges.getInsertSQL();
88
    String deleteSQL = performChanges.getDeleteSQL();
89
    String updateSQL = performChanges.getUpdateSQL();
90
    List<String> updateTableSQLs = performChanges.getUpdateTableSQLs();
91

  
92
    assertEquals("Insert SQL", expectedSQLs.get(0), insertSQL);
93
    assertEquals("Delete SQL", expectedSQLs.get(1), deleteSQL);
94
    assertEquals("Update SQL", expectedSQLs.get(2), updateSQL);
95
    assertEquals("UpdateTable num. SQLs", expectedSQLs.size()-3, updateTableSQLs.size());
96
    for (int i = 0; i < updateTableSQLs.size(); i++) {
97
      assertEquals("UpdateTable SQL "+i, expectedSQLs.get(i+3), updateTableSQLs.get(i));
98
    }
99
    
100
    
101
  }
102

  
103
}
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.158/org.gvsig.oracle.provider/src/test/java/org/gvsig/oracle/dal/operations/sql/TestNotAndOr.java
1
package org.gvsig.oracle.dal.operations.sql;
2

  
3
import java.util.List;
4
import junit.framework.TestCase;
5
import org.gvsig.fmap.dal.feature.FeatureQuery;
6
import org.gvsig.fmap.dal.feature.FeatureStore;
7
import org.gvsig.fmap.dal.feature.FeatureType;
8
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
9
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
10
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
11
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
12
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.ResultSetForSetProviderOperation;
13
import org.gvsig.oracle.dal.TestUtils;
14
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
15
import org.gvsig.tools.util.ListBuilder;
16
import org.slf4j.Logger;
17
import org.slf4j.LoggerFactory;
18

  
19
public class TestNotAndOr extends TestCase {
20

  
21
    private static final Logger LOGGER = LoggerFactory.getLogger(TestNotAndOr.class);
22

  
23
    public TestNotAndOr(String testName) {
24
        super(testName);
25
    }
26

  
27
    @Override
28
    protected void setUp() throws Exception {
29
        super.setUp();
30
        new DefaultLibrariesInitializer().fullInitialize();
31
    }
32

  
33
    @Override
34
    protected void tearDown() throws Exception {
35
        super.tearDown();
36
    }
37

  
38
    public void testNot1() throws Exception {
39
        try {
40
            JDBCHelper helper = TestUtils.getJDBCHelper();
41
            JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
42
            OperationsFactory operations = helper.getOperations();
43

  
44
            List<String> expectedSQLs = ListBuilder.create(
45
                    "SELECT \"P1\".\"TEST\".\"ID\", \"P1\".\"TEST\".\"Byte\", \"P1\".\"TEST\".\"Bool1\", \"P1\".\"TEST\".\"Long\", \"P1\".\"TEST\".\"Timestamp\", \"P1\".\"TEST\".\"Date\", \"P1\".\"TEST\".\"Time\", \"P1\".\"TEST\".\"Bool2\", \"P1\".\"TEST\".\"String\", \"P1\".\"TEST\".\"Bool3\", \"P1\".\"TEST\".\"Double\", \"P1\".\"TEST\".\"Bool4\", \"P1\".\"TEST\".\"Float\", \"P1\".\"TEST\".\"Bool5\", \"P1\".\"TEST\".\"Decimal\", NVL2((\"P1\".\"TEST\".\"Geometry\"),(\"P1\".\"TEST\".\"Geometry\").Get_WKB(),NULL) "
46
                            + "FROM \"P1\".\"TEST\" "
47
                            + "WHERE (NOT (\"P1\".\"TEST\".\"String\" = 'T')) "
48
                            + "ORDER BY \"P1\".\"TEST\".\"ID\" ASC"
49
            );
50

  
51
            FeatureStore sourceStore = TestUtils.openSourceStore1();
52

  
53
            TableReference table = operations.createTableReference(
54
                    "dbtest",
55
                    sqlbuilder.default_schema(),
56
                    "test",
57
                    null
58
            );
59
            String filter = "NOT \"String\"";
60
            FeatureType featureType = sourceStore.getDefaultFeatureType();
61
            FeatureQuery query = sourceStore.createFeatureQuery();
62
            query.addFilter(filter);
63
            ResultSetForSetProviderOperation resultSetForSetProvider = operations.createResultSetForSetProvider(
64
                    table,
65
                    null,
66
                    null,
67
                    query,
68
                    featureType,
69
                    featureType,
70
                    0,
71
                    0,
72
                    0
73
            );
74
            String sql = resultSetForSetProvider.getSQL();
75
            System.out.println("###### SQL:" + sql);
76
            System.out.println("###### EXP:" + expectedSQLs.get(0));
77

  
78
            assertEquals("NOT SQL", expectedSQLs.get(0), sql);
79
        } catch (Throwable th) {
80
            LOGGER.warn("",th);
81
            throw th;
82
        }
83
    }
84
    
85
    public void testAnd1() throws Exception {
86
        try {
87
            JDBCHelper helper = TestUtils.getJDBCHelper();
88
            JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
89
            OperationsFactory operations = helper.getOperations();
90

  
91
            List<String> expectedSQLs = ListBuilder.create(
92
                    "SELECT \"P1\".\"TEST\".\"ID\", \"P1\".\"TEST\".\"Byte\", \"P1\".\"TEST\".\"Bool1\", \"P1\".\"TEST\".\"Long\", \"P1\".\"TEST\".\"Timestamp\", \"P1\".\"TEST\".\"Date\", \"P1\".\"TEST\".\"Time\", \"P1\".\"TEST\".\"Bool2\", \"P1\".\"TEST\".\"String\", \"P1\".\"TEST\".\"Bool3\", \"P1\".\"TEST\".\"Double\", \"P1\".\"TEST\".\"Bool4\", \"P1\".\"TEST\".\"Float\", \"P1\".\"TEST\".\"Bool5\", \"P1\".\"TEST\".\"Decimal\", NVL2((\"P1\".\"TEST\".\"Geometry\"),(\"P1\".\"TEST\".\"Geometry\").Get_WKB(),NULL) "
93
                            + "FROM \"P1\".\"TEST\" "
94
                            + "WHERE ( ((\"P1\".\"TEST\".\"String\" = 'T')) AND (( (\"P1\".\"TEST\".\"ID\") = (2) )) ) "
95
                            + "ORDER BY \"P1\".\"TEST\".\"ID\" ASC"
96
            );
97

  
98
            FeatureStore sourceStore = TestUtils.openSourceStore1();
99

  
100
            TableReference table = operations.createTableReference(
101
                    "dbtest",
102
                    sqlbuilder.default_schema(),
103
                    "test",
104
                    null
105
            );
106
            String filter = "\"String\" AND \"ID\" = 2";
107
            FeatureType featureType = sourceStore.getDefaultFeatureType();
108
            FeatureQuery query = sourceStore.createFeatureQuery();
109
            query.addFilter(filter);
110
            ResultSetForSetProviderOperation resultSetForSetProvider = operations.createResultSetForSetProvider(
111
                    table,
112
                    null,
113
                    null,
114
                    query,
115
                    featureType,
116
                    featureType,
117
                    0,
118
                    0,
119
                    0
120
            );
121
            String sql = resultSetForSetProvider.getSQL();
122
            System.out.println("###### SQL:" + sql);
123
            System.out.println("###### EXP:" + expectedSQLs.get(0));
124

  
125
            assertEquals("AND1 SQL", expectedSQLs.get(0), sql);
126
        } catch (Throwable th) {
127
            LOGGER.warn("",th);
128
            throw th;
129
        }
130
    }
131

  
132
    public void testAnd2() throws Exception {
133
        try {
134
            JDBCHelper helper = TestUtils.getJDBCHelper();
135
            JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
136
            OperationsFactory operations = helper.getOperations();
137

  
138
            List<String> expectedSQLs = ListBuilder.create(
139
                    "SELECT \"P1\".\"TEST\".\"ID\", \"P1\".\"TEST\".\"Byte\", \"P1\".\"TEST\".\"Bool1\", \"P1\".\"TEST\".\"Long\", \"P1\".\"TEST\".\"Timestamp\", \"P1\".\"TEST\".\"Date\", \"P1\".\"TEST\".\"Time\", \"P1\".\"TEST\".\"Bool2\", \"P1\".\"TEST\".\"String\", \"P1\".\"TEST\".\"Bool3\", \"P1\".\"TEST\".\"Double\", \"P1\".\"TEST\".\"Bool4\", \"P1\".\"TEST\".\"Float\", \"P1\".\"TEST\".\"Bool5\", \"P1\".\"TEST\".\"Decimal\", NVL2((\"P1\".\"TEST\".\"Geometry\"),(\"P1\".\"TEST\".\"Geometry\").Get_WKB(),NULL) "
140
                            + "FROM \"P1\".\"TEST\" "
141
                            + "WHERE ( (( (\"P1\".\"TEST\".\"ID\") = (2) )) AND ((\"P1\".\"TEST\".\"String\" = 'T')) ) "
142
                            + "ORDER BY \"P1\".\"TEST\".\"ID\" ASC"
143
            );
144

  
145
            FeatureStore sourceStore = TestUtils.openSourceStore1();
146

  
147
            TableReference table = operations.createTableReference(
148
                    "dbtest",
149
                    sqlbuilder.default_schema(),
150
                    "test",
151
                    null
152
            );
153
            String filter = "\"ID\" = 2 AND \"String\"";
154
            FeatureType featureType = sourceStore.getDefaultFeatureType();
155
            FeatureQuery query = sourceStore.createFeatureQuery();
156
            query.addFilter(filter);
157
            ResultSetForSetProviderOperation resultSetForSetProvider = operations.createResultSetForSetProvider(
158
                    table,
159
                    null,
160
                    null,
161
                    query,
162
                    featureType,
163
                    featureType,
164
                    0,
165
                    0,
166
                    0
167
            );
168
            String sql = resultSetForSetProvider.getSQL();
169
            System.out.println("###### SQL:" + sql);
170
            System.out.println("###### EXP:" + expectedSQLs.get(0));
171

  
172
            assertEquals("AND2 SQL", expectedSQLs.get(0), sql);
173
        } catch (Throwable th) {
174
            LOGGER.warn("",th);
175
            throw th;
176
        }
177
    }
178

  
179
    public void testAnd3() throws Exception {
180
        try {
181
            JDBCHelper helper = TestUtils.getJDBCHelper();
182
            JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
183
            OperationsFactory operations = helper.getOperations();
184

  
185
            List<String> expectedSQLs = ListBuilder.create(
186
                    "SELECT \"P1\".\"TEST\".\"ID\", \"P1\".\"TEST\".\"Byte\", \"P1\".\"TEST\".\"Bool1\", \"P1\".\"TEST\".\"Long\", \"P1\".\"TEST\".\"Timestamp\", \"P1\".\"TEST\".\"Date\", \"P1\".\"TEST\".\"Time\", \"P1\".\"TEST\".\"Bool2\", \"P1\".\"TEST\".\"String\", \"P1\".\"TEST\".\"Bool3\", \"P1\".\"TEST\".\"Double\", \"P1\".\"TEST\".\"Bool4\", \"P1\".\"TEST\".\"Float\", \"P1\".\"TEST\".\"Bool5\", \"P1\".\"TEST\".\"Decimal\", NVL2((\"P1\".\"TEST\".\"Geometry\"),(\"P1\".\"TEST\".\"Geometry\").Get_WKB(),NULL) "
187
                            + "FROM \"P1\".\"TEST\" "
188
                            + "WHERE ( ((\"P1\".\"TEST\".\"String\" = 'T')) AND ((\"P1\".\"TEST\".\"String\" = 'T')) ) "
189
                            + "ORDER BY \"P1\".\"TEST\".\"ID\" ASC"
190
            );
191

  
192
            FeatureStore sourceStore = TestUtils.openSourceStore1();
193

  
194
            TableReference table = operations.createTableReference(
195
                    "dbtest",
196
                    sqlbuilder.default_schema(),
197
                    "test",
198
                    null
199
            );
200
            String filter = "\"String\" AND \"String\"";
201
            FeatureType featureType = sourceStore.getDefaultFeatureType();
202
            FeatureQuery query = sourceStore.createFeatureQuery();
203
            query.addFilter(filter);
204
            ResultSetForSetProviderOperation resultSetForSetProvider = operations.createResultSetForSetProvider(
205
                    table,
206
                    null,
207
                    null,
208
                    query,
209
                    featureType,
210
                    featureType,
211
                    0,
212
                    0,
213
                    0
214
            );
215
            String sql = resultSetForSetProvider.getSQL();
216
            System.out.println("###### SQL:" + sql);
217
            System.out.println("###### EXP:" + expectedSQLs.get(0));
218

  
219
            assertEquals("AND3 SQL", expectedSQLs.get(0), sql);
220
        } catch (Throwable th) {
221
            LOGGER.warn("",th);
222
            throw th;
223
        }
224
    }
225
    
226
    public void testOr1() throws Exception {
227
        try {
228
            JDBCHelper helper = TestUtils.getJDBCHelper();
229
            JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
230
            OperationsFactory operations = helper.getOperations();
231

  
232
            List<String> expectedSQLs = ListBuilder.create(
233
                    "SELECT \"P1\".\"TEST\".\"ID\", \"P1\".\"TEST\".\"Byte\", \"P1\".\"TEST\".\"Bool1\", \"P1\".\"TEST\".\"Long\", \"P1\".\"TEST\".\"Timestamp\", \"P1\".\"TEST\".\"Date\", \"P1\".\"TEST\".\"Time\", \"P1\".\"TEST\".\"Bool2\", \"P1\".\"TEST\".\"String\", \"P1\".\"TEST\".\"Bool3\", \"P1\".\"TEST\".\"Double\", \"P1\".\"TEST\".\"Bool4\", \"P1\".\"TEST\".\"Float\", \"P1\".\"TEST\".\"Bool5\", \"P1\".\"TEST\".\"Decimal\", NVL2((\"P1\".\"TEST\".\"Geometry\"),(\"P1\".\"TEST\".\"Geometry\").Get_WKB(),NULL) "
234
                            + "FROM \"P1\".\"TEST\" "
235
                            + "WHERE ( ((\"P1\".\"TEST\".\"String\" = 'T')) OR (( (\"P1\".\"TEST\".\"ID\") = (2) )) ) "
236
                            + "ORDER BY \"P1\".\"TEST\".\"ID\" ASC"
237
            );
238

  
239
            FeatureStore sourceStore = TestUtils.openSourceStore1();
240

  
241
            TableReference table = operations.createTableReference(
242
                    "dbtest",
243
                    sqlbuilder.default_schema(),
244
                    "test",
245
                    null
246
            );
247
            String filter = "\"String\" OR \"ID\" = 2";
248
            FeatureType featureType = sourceStore.getDefaultFeatureType();
249
            FeatureQuery query = sourceStore.createFeatureQuery();
250
            query.addFilter(filter);
251
            ResultSetForSetProviderOperation resultSetForSetProvider = operations.createResultSetForSetProvider(
252
                    table,
253
                    null,
254
                    null,
255
                    query,
256
                    featureType,
257
                    featureType,
258
                    0,
259
                    0,
260
                    0
261
            );
262
            String sql = resultSetForSetProvider.getSQL();
263
            System.out.println("###### SQL:" + sql);
264
            System.out.println("###### EXP:" + expectedSQLs.get(0));
265

  
266
            assertEquals("OR1 SQL", expectedSQLs.get(0), sql);
267
        } catch (Throwable th) {
268
            LOGGER.warn("",th);
269
            throw th;
270
        }
271
    }
272

  
273
    public void testOr2() throws Exception {
274
        try {
275
            JDBCHelper helper = TestUtils.getJDBCHelper();
276
            JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
277
            OperationsFactory operations = helper.getOperations();
278

  
279
            List<String> expectedSQLs = ListBuilder.create(
280
                    "SELECT \"P1\".\"TEST\".\"ID\", \"P1\".\"TEST\".\"Byte\", \"P1\".\"TEST\".\"Bool1\", \"P1\".\"TEST\".\"Long\", \"P1\".\"TEST\".\"Timestamp\", \"P1\".\"TEST\".\"Date\", \"P1\".\"TEST\".\"Time\", \"P1\".\"TEST\".\"Bool2\", \"P1\".\"TEST\".\"String\", \"P1\".\"TEST\".\"Bool3\", \"P1\".\"TEST\".\"Double\", \"P1\".\"TEST\".\"Bool4\", \"P1\".\"TEST\".\"Float\", \"P1\".\"TEST\".\"Bool5\", \"P1\".\"TEST\".\"Decimal\", NVL2((\"P1\".\"TEST\".\"Geometry\"),(\"P1\".\"TEST\".\"Geometry\").Get_WKB(),NULL) "
281
                            + "FROM \"P1\".\"TEST\" "
282
                            + "WHERE ( (( (\"P1\".\"TEST\".\"ID\") = (2) )) OR ((\"P1\".\"TEST\".\"String\" = 'T')) ) "
283
                            + "ORDER BY \"P1\".\"TEST\".\"ID\" ASC"
284
            );
285

  
286
            FeatureStore sourceStore = TestUtils.openSourceStore1();
287

  
288
            TableReference table = operations.createTableReference(
289
                    "dbtest",
290
                    sqlbuilder.default_schema(),
291
                    "test",
292
                    null
293
            );
294
            String filter = "\"ID\" = 2 OR \"String\"";
295
            FeatureType featureType = sourceStore.getDefaultFeatureType();
296
            FeatureQuery query = sourceStore.createFeatureQuery();
297
            query.addFilter(filter);
298
            ResultSetForSetProviderOperation resultSetForSetProvider = operations.createResultSetForSetProvider(
299
                    table,
300
                    null,
301
                    null,
302
                    query,
303
                    featureType,
304
                    featureType,
305
                    0,
306
                    0,
307
                    0
308
            );
309
            String sql = resultSetForSetProvider.getSQL();
310
            System.out.println("###### SQL:" + sql);
311
            System.out.println("###### EXP:" + expectedSQLs.get(0));
312

  
313
            assertEquals("OR2 SQL", expectedSQLs.get(0), sql);
314
        } catch (Throwable th) {
315
            LOGGER.warn("",th);
316
            throw th;
317
        }
318
    }
319

  
320
    public void testOr3() throws Exception {
321
        try {
322
            JDBCHelper helper = TestUtils.getJDBCHelper();
323
            JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
324
            OperationsFactory operations = helper.getOperations();
325

  
326
            List<String> expectedSQLs = ListBuilder.create(
327
                    "SELECT \"P1\".\"TEST\".\"ID\", \"P1\".\"TEST\".\"Byte\", \"P1\".\"TEST\".\"Bool1\", \"P1\".\"TEST\".\"Long\", \"P1\".\"TEST\".\"Timestamp\", \"P1\".\"TEST\".\"Date\", \"P1\".\"TEST\".\"Time\", \"P1\".\"TEST\".\"Bool2\", \"P1\".\"TEST\".\"String\", \"P1\".\"TEST\".\"Bool3\", \"P1\".\"TEST\".\"Double\", \"P1\".\"TEST\".\"Bool4\", \"P1\".\"TEST\".\"Float\", \"P1\".\"TEST\".\"Bool5\", \"P1\".\"TEST\".\"Decimal\", NVL2((\"P1\".\"TEST\".\"Geometry\"),(\"P1\".\"TEST\".\"Geometry\").Get_WKB(),NULL) "
328
                            + "FROM \"P1\".\"TEST\" "
329
                            + "WHERE ( ((\"P1\".\"TEST\".\"String\" = 'T')) OR ((\"P1\".\"TEST\".\"String\" = 'T')) ) "
330
                            + "ORDER BY \"P1\".\"TEST\".\"ID\" ASC"
331
            );
332

  
333
            FeatureStore sourceStore = TestUtils.openSourceStore1();
334

  
335
            TableReference table = operations.createTableReference(
336
                    "dbtest",
337
                    sqlbuilder.default_schema(),
338
                    "test",
339
                    null
340
            );
341
            String filter = "\"String\" OR \"String\"";
342
            FeatureType featureType = sourceStore.getDefaultFeatureType();
343
            FeatureQuery query = sourceStore.createFeatureQuery();
344
            query.addFilter(filter);
345
            ResultSetForSetProviderOperation resultSetForSetProvider = operations.createResultSetForSetProvider(
346
                    table,
347
                    null,
348
                    null,
349
                    query,
350
                    featureType,
351
                    featureType,
352
                    0,
353
                    0,
354
                    0
355
            );
356
            String sql = resultSetForSetProvider.getSQL();
357
            System.out.println("###### SQL:" + sql);
358
            System.out.println("###### EXP:" + expectedSQLs.get(0));
359

  
360
            assertEquals("OR3 SQL", expectedSQLs.get(0), sql);
361
        } catch (Throwable th) {
362
            LOGGER.warn("",th);
363
            throw th;
364
        }
365
    }
366

  
367
}
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.158/org.gvsig.oracle.provider/src/test/java/org/gvsig/oracle/dal/operations/sql/TestUpdateTableStatistics.java
1
package org.gvsig.oracle.dal.operations.sql;
2

  
3
import java.util.List;
4
import junit.framework.TestCase;
5
import org.gvsig.fmap.dal.feature.FeatureStore;
6
import org.gvsig.fmap.dal.feature.FeatureType;
7
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
8
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
9
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
10
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
11
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.UpdateTableStatisticsOperation;
12
import org.gvsig.oracle.dal.TestUtils;
13
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
14
import org.slf4j.Logger;
15
import org.slf4j.LoggerFactory;
16

  
17
public class TestUpdateTableStatistics extends TestCase {
18

  
19
  private static final Logger LOGGER = LoggerFactory.getLogger(TestUpdateTableStatistics.class);
20

  
21
  public TestUpdateTableStatistics(String testName) {
22
    super(testName);
23
  }
24

  
25
  @Override
26
  protected void setUp() throws Exception {
27
    super.setUp();
28
    new DefaultLibrariesInitializer().fullInitialize();
29
  }
30

  
31
  @Override
32
  protected void tearDown() throws Exception {
33
    super.tearDown();
34
  }
35

  
36
  // TODO add test methods here. The name must begin with 'test'. For example:
37
  // public void testHello() {}
38
  
39
  public void testUpdateTableStatistics() throws Exception {
40
    JDBCHelper helper = TestUtils.getJDBCHelper();
41
    JDBCSQLBuilderBase sqlbuilder = helper.createSQLBuilder();
42
    OperationsFactory operations = helper.getOperations();
43

  
44
    List<String> expectedSQLs = TestUtils.getSQLs("updateTableStatistics.sql");
45
    
46
    FeatureStore sourceStore = TestUtils.openSourceStore1();
47

  
48
    TableReference table = operations.createTableReference(
49
            "dbtest", 
50
            sqlbuilder.default_schema(), 
51
            "test", 
52
            null
53
    );
54
    FeatureType featureType = sourceStore.getDefaultFeatureType();
55
    UpdateTableStatisticsOperation updateTableStatistics = operations.createUpdateTableStatistics(
56
            table
57
    );
58
    
59
    List<String> SQLs = updateTableStatistics.getSQLs();
60
    assertEquals("UpdateTableStatistics num. SQLs", expectedSQLs.size(), SQLs.size());
61
    for (int i = 0; i < expectedSQLs.size(); i++) {
62
      assertEquals("UpdateTableStatistics SQL "+i, expectedSQLs.get(i), SQLs.get(i));
63
    }
64
  }
65

  
66
}
org.gvsig.oracle/tags/org.gvsig.oracle-2.0.158/org.gvsig.oracle.provider/src/test/java/org/gvsig/oracle/dal/operations/sql/TestAppend.java
1
package org.gvsig.oracle.dal.operations.sql;
2

  
3
import java.util.ArrayList;
4
import java.util.List;
5
import junit.framework.TestCase;
6
import org.gvsig.fmap.dal.DataTypes;
7
import org.gvsig.fmap.dal.feature.Feature;
8
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
9
import org.gvsig.fmap.dal.feature.FeatureStore;
10
import static org.gvsig.fmap.dal.feature.FeatureStore.SUBMODE_NONE;
11
import org.gvsig.fmap.dal.feature.FeatureType;
12
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
13
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
14
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
15
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
16
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.AppendOperation;
17
import org.gvsig.fmap.geom.GeometryUtils;
18
import org.gvsig.oracle.dal.TestUtils;
19
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
20
import org.slf4j.Logger;
21
import org.slf4j.LoggerFactory;
22

  
23
public class TestAppend extends TestCase {
24

  
25
    private static final Logger LOGGER = LoggerFactory.getLogger(TestAppend.class);
26

  
27
    public TestAppend(String testName) {
28
        super(testName);
29
    }
30

  
31
    @Override
32
    protected void setUp() throws Exception {
33
        super.setUp();
34
        new DefaultLibrariesInitializer().fullInitialize();
35
    }
36

  
37
    @Override
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff