Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.db / org.gvsig.fmap.dal.db.jdbc / src / test / java / org / gvsig / fmap / dal / store / jdbc2 / SQLBuilderTest.java @ 44198

History | View | Annotate | Download (20.8 KB)

1 43114 jjdelcerro
package org.gvsig.fmap.dal.store.jdbc2;
2
3 44198 jjdelcerro
import junit.framework.TestCase;
4 43114 jjdelcerro
import org.apache.commons.lang3.ArrayUtils;
5
import org.cresques.cts.IProjection;
6 44198 jjdelcerro
import org.gvsig.expressionevaluator.ExpressionBuilder;
7 43114 jjdelcerro
import org.gvsig.fmap.crs.CRSFactory;
8
import org.gvsig.fmap.dal.SQLBuilder;
9
import org.gvsig.fmap.dal.SQLBuilder.Privilege;
10
import org.gvsig.fmap.dal.feature.spi.SQLBuilderBase;
11
import org.gvsig.fmap.geom.DataTypes;
12
import org.gvsig.fmap.geom.Geometry;
13
import org.gvsig.fmap.geom.GeometryLocator;
14
import org.gvsig.fmap.geom.GeometryManager;
15
import org.gvsig.fmap.geom.primitive.Polygon;
16 44198 jjdelcerro
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
17 43114 jjdelcerro
18 44198 jjdelcerro
public class SQLBuilderTest extends TestCase {
19 43114 jjdelcerro
20 44198 jjdelcerro
    public SQLBuilderTest(String testName) {
21
        super(testName);
22
    }
23
24 43114 jjdelcerro
    @Override
25 44198 jjdelcerro
    protected void setUp() throws Exception {
26
        super.setUp();
27
        new DefaultLibrariesInitializer().fullInitialize();
28
    }
29 43114 jjdelcerro
30 44198 jjdelcerro
    @Override
31
    protected void tearDown() throws Exception {
32
        super.tearDown();
33 43114 jjdelcerro
    }
34 44198 jjdelcerro
35
    private SQLBuilder createSQLBuilder() {
36
        return new SQLBuilderBase();
37 43114 jjdelcerro
    }
38
39
40
    public void testCalulateEnvelope() throws Exception {
41
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
42
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
43
44
        Polygon limit = geometryManager.createPolygon(Geometry.SUBTYPES.GEOM2D);
45
        limit.addVertex(0, 0);
46
        limit.addVertex(0, 100);
47
        limit.addVertex(100, 100);
48
        limit.addVertex(100, 0);
49
        limit.addVertex(0, 0);
50
51 44198 jjdelcerro
        SQLBuilder sqlbuilder = createSQLBuilder();
52
        ExpressionBuilder expbuilder = sqlbuilder.expression();
53 43114 jjdelcerro
54 44198 jjdelcerro
        sqlbuilder.select().column().value(
55
            expbuilder.as_geometry(
56
              expbuilder.ST_ExtentAggregate(
57
                expbuilder.column("the_geom")
58 43114 jjdelcerro
              )
59
            )
60
        ).as("envelope");
61 44198 jjdelcerro
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
62
        sqlbuilder.select().where().set(
63
            expbuilder.ST_Intersects(
64
                expbuilder.ST_Envelope(
65
                    expbuilder.column("the_geom")
66 43114 jjdelcerro
                ),
67 44198 jjdelcerro
                expbuilder.geometry(limit, proj)
68 43114 jjdelcerro
            )
69
        );
70 44198 jjdelcerro
        sqlbuilder.select().where().and(
71
                expbuilder.custom("x = 27")
72 43114 jjdelcerro
        );
73
74
        System.out.println("# Test:: testCalulateEnvelope");
75 44198 jjdelcerro
        System.out.println("# SQL:: " + sqlbuilder.toString());
76
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
77
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
78 43114 jjdelcerro
        assertEquals(
79 44198 jjdelcerro
                "SELECT ST_AsBinary(ST_ExtentAggregate(\"the_geom\")) AS \"envelope\" FROM \"master\".\"dbo\".\"test1\" WHERE ST_Intersects((ST_Envelope(\"the_geom\")), (ST_GeomFromWKB((DECODE('000000000300000001000000050000000000000000000000000000000000000000000000004059000000000000405900000000000040590000000000004059000000000000000000000000000000000000000000000000000000000000','hex')), (4326)))) AND x = 27",
80
                sqlbuilder.toString()
81 43114 jjdelcerro
        );
82
        assertEquals(
83
                "[the_geom]",
84 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.variables_names())
85 43114 jjdelcerro
        );
86
        assertEquals(
87
                "[]",
88 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.parameters_names())
89 43114 jjdelcerro
        );
90
    }
91
92
    public void testCount() throws Exception {
93 44198 jjdelcerro
        SQLBuilder sqlbuilder = createSQLBuilder();
94
        ExpressionBuilder expbuilder = sqlbuilder.expression();
95 43114 jjdelcerro
96 44198 jjdelcerro
        sqlbuilder.select().column().value(sqlbuilder.count().all());
97
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
98
        sqlbuilder.select().from().subquery(null);
99
        sqlbuilder.select().where().set( expbuilder.custom("pp = 200"));
100 43114 jjdelcerro
101
        System.out.println("# Test:: testCount");
102 44198 jjdelcerro
        System.out.println("# SQL:: " + sqlbuilder.toString());
103
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
104
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
105 43114 jjdelcerro
106
        //# Test:: testCount
107
        //# SQL:: SELECT COUNT(*) FROM "master"."dbo"."test1" WHERE pp = 200
108
        //# Variables:: []
109
        //# Parametros:: []
110
111
        assertEquals(
112
                "SELECT COUNT(*) FROM \"master\".\"dbo\".\"test1\" WHERE pp = 200",
113 44198 jjdelcerro
                sqlbuilder.toString()
114 43114 jjdelcerro
        );
115
        assertEquals(
116
                "[]",
117 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.variables_names())
118 43114 jjdelcerro
        );
119
        assertEquals(
120
                "[]",
121 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.parameters_names())
122 43114 jjdelcerro
        );
123
    }
124
125
    public void testCreateTable() throws Exception {
126 44198 jjdelcerro
        SQLBuilder sqlbuilder = createSQLBuilder();
127
        ExpressionBuilder expbuilder = sqlbuilder.expression();
128 43114 jjdelcerro
129 44198 jjdelcerro
        sqlbuilder.create_table().table().database("master").schema("dbo").name("test1");
130
        sqlbuilder.create_table().add_column(
131 43114 jjdelcerro
                "name",
132
                DataTypes.STRING,
133
                45,
134
                0,
135
                false,
136 43355 jjdelcerro
                false,
137 43114 jjdelcerro
                true,
138
                false,
139
                null
140
        );
141 44198 jjdelcerro
        sqlbuilder.create_table().add_column(
142 43114 jjdelcerro
                "id",
143
                DataTypes.INT,
144
                0,
145
                0,
146
                true,
147
                false,
148 43355 jjdelcerro
                false,
149 43114 jjdelcerro
                true,
150
                0
151
        );
152 44198 jjdelcerro
        sqlbuilder.create_table().add_column(
153 43114 jjdelcerro
                "geom",
154
                DataTypes.GEOMETRY,
155
                0,
156
                0,
157
                false,
158 43355 jjdelcerro
                false,
159 43114 jjdelcerro
                true,
160
                false,
161
                null
162
        );
163
164
165
        // CREATE TABLE "master"."dbo"."test1" ("name" VARCHAR(45) DEFAULT NULL NULL, "id" SERIAL DEFAULT '0' NOT NULL PRIMARY KEY, "geom" TEXT DEFAULT NULL NULL )
166
        System.out.println("# Test:: testCreateTable");
167 44198 jjdelcerro
        System.out.println("# SQL:: " + sqlbuilder.toString());
168
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
169
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
170 43114 jjdelcerro
        assertEquals(
171
                "CREATE TABLE \"master\".\"dbo\".\"test1\" (\"name\" VARCHAR(45) DEFAULT NULL NULL, \"id\" SERIAL DEFAULT '0' NOT NULL PRIMARY KEY, \"geom\" TEXT DEFAULT NULL NULL )",
172 44198 jjdelcerro
                sqlbuilder.toString()
173 43114 jjdelcerro
        );
174
        assertEquals(
175
                "[]",
176 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.variables_names())
177 43114 jjdelcerro
        );
178
        assertEquals(
179
                "[]",
180 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.parameters_names())
181 43114 jjdelcerro
        );
182
    }
183
184
    public void testDropTable() throws Exception {
185 44198 jjdelcerro
        SQLBuilder sqlbuilder = createSQLBuilder();
186
        ExpressionBuilder expbuilder = sqlbuilder.expression();
187 43114 jjdelcerro
188 44198 jjdelcerro
        sqlbuilder.drop_table().table().database("master").schema("dbo").name("test1");
189 43114 jjdelcerro
190
        // DROP TABLE "master"."dbo"."test1"; DELETE FROM GEOMETRY_COLUMNS WHERE f_table_schema = 'dbo' AND f_table_name = 'test1'
191
192
        System.out.println("# Test:: testDropTable");
193 44198 jjdelcerro
        System.out.println("# SQL:: " + sqlbuilder.toString());
194
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
195
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
196 43114 jjdelcerro
        assertEquals(
197
                "DROP TABLE \"master\".\"dbo\".\"test1\"; DELETE FROM GEOMETRY_COLUMNS WHERE f_table_schema = 'dbo' AND f_table_name = 'test1'",
198 44198 jjdelcerro
                sqlbuilder.toString()
199 43114 jjdelcerro
        );
200
        assertEquals(
201
                "[]",
202 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.variables_names())
203 43114 jjdelcerro
        );
204
        assertEquals(
205
                "[]",
206 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.parameters_names())
207 43114 jjdelcerro
        );
208
    }
209
210
    public void testFetchFeatureProviderByReference() throws Exception {
211 44198 jjdelcerro
        SQLBuilder sqlbuilder = createSQLBuilder();
212
        ExpressionBuilder expbuilder = sqlbuilder.expression();
213 43114 jjdelcerro
214
        String value = "yoyo";
215 44198 jjdelcerro
        sqlbuilder.select().column().name("name");
216
        sqlbuilder.select().column().name("id");
217
        sqlbuilder.select().column().name("geom").as_geometry();
218
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
219
        sqlbuilder.select().where().set(
220
            expbuilder.eq(
221
                expbuilder.column("name"),
222
                expbuilder.parameter(value).as_constant()
223 43114 jjdelcerro
            )
224
        );
225 44198 jjdelcerro
        sqlbuilder.select().limit(1);
226 43114 jjdelcerro
227
        // SELECT "name", "id", ST_AsBinary("geom") FROM "master"."dbo"."test1" WHERE ( ("name") = (?) ) LIMIT 1
228
229
        System.out.println("# Test:: testFetchFeatureProviderByReference");
230 44198 jjdelcerro
        System.out.println("# SQL:: " + sqlbuilder.toString());
231
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
232
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
233 43114 jjdelcerro
        assertEquals(
234
                "SELECT \"name\", \"id\", ST_AsBinary(\"geom\") FROM \"master\".\"dbo\".\"test1\" WHERE ( (\"name\") = (?) ) LIMIT 1",
235 44198 jjdelcerro
                sqlbuilder.toString()
236 43114 jjdelcerro
        );
237
        assertEquals(
238
                "[geom, id, name]",
239 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.variables_names())
240 43114 jjdelcerro
        );
241
        assertEquals(
242
                "['yoyo']",
243 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.parameters_names())
244 43114 jjdelcerro
        );
245
    }
246
247
    public void testFetchFeatureType() throws Exception {
248 44198 jjdelcerro
        SQLBuilder sqlbuilder = createSQLBuilder();
249
        ExpressionBuilder expbuilder = sqlbuilder.expression();
250 43114 jjdelcerro
251 44198 jjdelcerro
        sqlbuilder.select().column().all();
252
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
253
        sqlbuilder.select().limit(1);
254 43114 jjdelcerro
255
        System.out.println("# Test:: testFetchFeatureType");
256 44198 jjdelcerro
        System.out.println("# SQL:: " + sqlbuilder.toString());
257
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
258
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
259 43114 jjdelcerro
260
        //# Test:: testFetchFeatureType
261
        //# SQL:: SELECT * FROM [master].[dbo].[test1] LIMMIT 1
262
        //# Variables:: []
263
        //# Parametros:: []
264
265
        assertEquals(
266
                "SELECT * FROM \"master\".\"dbo\".\"test1\" LIMIT 1",
267 44198 jjdelcerro
                sqlbuilder.toString()
268 43114 jjdelcerro
        );
269
        assertEquals(
270
                "[]",
271 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.variables_names())
272 43114 jjdelcerro
        );
273
        assertEquals(
274
                "[]",
275 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.parameters_names())
276 43114 jjdelcerro
        );
277
    }
278
279
    public void testPerformDeletes() throws Exception {
280 44198 jjdelcerro
        SQLBuilder sqlbuilder = createSQLBuilder();
281
        ExpressionBuilder expbuilder = sqlbuilder.expression();
282 43114 jjdelcerro
283 44198 jjdelcerro
        sqlbuilder.delete().table().database("master").schema("dbo").name("test1");
284
        sqlbuilder.delete().where().and(
285
            expbuilder.eq(
286
                expbuilder.column("id1"),
287
                expbuilder.parameter("id1").as_variable()
288 43114 jjdelcerro
            )
289
        );
290 44198 jjdelcerro
        sqlbuilder.delete().where().and(
291
            expbuilder.eq(
292
                expbuilder.column("id2"),
293
                expbuilder.parameter("id2").as_variable()
294 43114 jjdelcerro
            )
295
        );
296
297
        // DELETE FROM "master"."dbo"."test1" WHERE ( ("id1") = (?) ) AND ( ("id2") = (?) )
298
299
        System.out.println("# Test:: testPerformDeletes");
300 44198 jjdelcerro
        System.out.println("# SQL:: " + sqlbuilder.toString());
301
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
302
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
303 43114 jjdelcerro
        assertEquals(
304
                "DELETE FROM \"master\".\"dbo\".\"test1\" WHERE ( (\"id1\") = (?) ) AND ( (\"id2\") = (?) )",
305 44198 jjdelcerro
                sqlbuilder.toString()
306 43114 jjdelcerro
        );
307
        assertEquals(
308
                "[id1, id2]",
309 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.variables_names())
310 43114 jjdelcerro
        );
311
        assertEquals(
312
                "[\"id1\", \"id2\"]",
313 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.parameters_names())
314 43114 jjdelcerro
        );
315
    }
316
317
    public void testPerformInserts1() throws Exception {
318
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
319
320 44198 jjdelcerro
        SQLBuilder sqlbuilder = createSQLBuilder();
321
        ExpressionBuilder expbuilder = sqlbuilder.expression();
322 43114 jjdelcerro
323 44198 jjdelcerro
        sqlbuilder.insert().table().database("master").schema("dbo").name("test1");
324
        sqlbuilder.insert().column().name("id").with_value(expbuilder.parameter("id"));
325
        sqlbuilder.insert().column().name("name").with_value(expbuilder.parameter("name"));
326
        sqlbuilder.insert().column().name("geom").with_value(expbuilder.parameter("geom").as_geometry_variable().srs(proj));
327 43114 jjdelcerro
328
        System.out.println("# Test:: testPerformInserts1");
329 44198 jjdelcerro
        System.out.println("# SQL:: " + sqlbuilder.toString());
330
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
331
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
332 43114 jjdelcerro
        assertEquals(
333 44198 jjdelcerro
                "INSERT INTO \"master\".\"dbo\".\"test1\" ( \"id\", \"name\", \"geom\" ) VALUES ( ?, ?, ST_GeomFromWKB((?), (4326)) )",
334
                sqlbuilder.toString()
335 43114 jjdelcerro
        );
336
        assertEquals(
337
                "[geom, id, name]",
338 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.variables_names())
339 43114 jjdelcerro
        );
340
        assertEquals(
341
                "[\"id\", \"name\", \"geom\"]",
342 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.parameters_names())
343 43114 jjdelcerro
        );
344
    }
345
346
    public void testPerformInserts2() throws Exception {
347
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
348
349 44198 jjdelcerro
        SQLBuilder sqlbuilder = createSQLBuilder();
350
        ExpressionBuilder expbuilder = sqlbuilder.expression();
351 43114 jjdelcerro
352 44198 jjdelcerro
        sqlbuilder.insert().table().database("master").schema("dbo").name("test1");
353
        sqlbuilder.insert().column().name("id").with_value(expbuilder.parameter("id"));
354
        sqlbuilder.insert().column().name("name").with_value(expbuilder.parameter("name"));
355
        sqlbuilder.insert().column().name("geom").with_value(expbuilder.parameter("geom").as_geometry_variable().srs(proj));
356 43114 jjdelcerro
357
        System.out.println("# Test:: testPerformInserts2");
358 44198 jjdelcerro
        System.out.println("# SQL:: " + sqlbuilder.toString());
359
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
360
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
361 43114 jjdelcerro
        assertEquals(
362 44198 jjdelcerro
                "INSERT INTO \"master\".\"dbo\".\"test1\" ( \"id\", \"name\", \"geom\" ) VALUES ( ?, ?, ST_GeomFromWKB((?), (4326)) )",
363
                sqlbuilder.toString()
364 43114 jjdelcerro
        );
365
        assertEquals(
366
                "[geom, id, name]",
367 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.variables_names())
368 43114 jjdelcerro
        );
369
        assertEquals(
370 44198 jjdelcerro
                "[\"id\", \"name\", \"geom\"]",
371
                ArrayUtils.toString(sqlbuilder.parameters_names())
372 43114 jjdelcerro
        );
373
    }
374
375 44198 jjdelcerro
    public void testPerformUpdates1() throws Exception {
376 43114 jjdelcerro
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
377
378 44198 jjdelcerro
        SQLBuilder sqlbuilder = createSQLBuilder();
379
        ExpressionBuilder expbuilder = sqlbuilder.expression();
380 43114 jjdelcerro
381 44198 jjdelcerro
        sqlbuilder.update().table().database("master").schema("dbo").name("test1");
382
        sqlbuilder.update().where().and(
383
            expbuilder.eq(
384
                expbuilder.column("id"),
385
                expbuilder.parameter("id").as_variable()
386 43114 jjdelcerro
            )
387
        );
388 44198 jjdelcerro
        sqlbuilder.update().column().name("name").with_value(expbuilder.parameter("name"));
389
        sqlbuilder.update().column().name("geom").with_value(
390
                expbuilder.parameter("geom").as_geometry_variable().srs(proj)
391 43114 jjdelcerro
        );
392
393 44198 jjdelcerro
        System.out.println("# Test:: testPerformUpdates");
394
        System.out.println("# SQL:: " + sqlbuilder.toString());
395
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
396
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
397
        assertEquals(
398
                "UPDATE \"master\".\"dbo\".\"test1\" SET \"name\" = ?, \"geom\" = ST_GeomFromWKB((?), (4326)) WHERE ( (\"id\") = (?) )",
399
                sqlbuilder.toString()
400
        );
401
        assertEquals(
402
                "[geom, id, name]",
403
                ArrayUtils.toString(sqlbuilder.variables_names())
404
        );
405
        assertEquals(
406
                "[\"name\", \"geom\", \"id\"]",
407
                ArrayUtils.toString(sqlbuilder.parameters_names())
408
        );
409
    }
410 43114 jjdelcerro
411 44198 jjdelcerro
    public void testPerformUpdates2() throws Exception {
412
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
413
414
        SQLBuilder sqlbuilder = createSQLBuilder();
415
        ExpressionBuilder expbuilder = sqlbuilder.expression();
416
417
        sqlbuilder.update().table().database("master").schema("dbo").name("test1");
418
        sqlbuilder.update().where().and(
419
            expbuilder.eq(
420
                expbuilder.column("id"),
421
                expbuilder.parameter("id").as_variable()
422
            )
423
        );
424
        sqlbuilder.update().column().name("name").with_value(expbuilder.parameter("name"));
425
        sqlbuilder.update().column().name("geom").with_value(
426
                expbuilder.parameter("geom").as_geometry_variable()
427
                        .srs(expbuilder.parameter().value(proj))
428
        );
429
430 43114 jjdelcerro
        System.out.println("# Test:: testPerformUpdates");
431 44198 jjdelcerro
        System.out.println("# SQL:: " + sqlbuilder.toString());
432
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
433
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
434 43114 jjdelcerro
        assertEquals(
435 44198 jjdelcerro
                "UPDATE \"master\".\"dbo\".\"test1\" SET \"name\" = ?, \"geom\" = ST_GeomFromWKB((?), (?)) WHERE ( (\"id\") = (?) )",
436
                sqlbuilder.toString()
437 43114 jjdelcerro
        );
438
        assertEquals(
439
                "[geom, id, name]",
440 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.variables_names())
441 43114 jjdelcerro
        );
442
        assertEquals(
443
                "[\"name\", \"geom\", 4326, \"id\"]",
444 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.parameters_names())
445 43114 jjdelcerro
        );
446
    }
447
448
    public void testGrant1() throws Exception {
449
450 44198 jjdelcerro
        SQLBuilder sqlbuilder = createSQLBuilder();
451
        ExpressionBuilder expbuilder = sqlbuilder.expression();
452 43114 jjdelcerro
453 44198 jjdelcerro
        sqlbuilder.grant().table().database("master").schema("dbo").name("test1");
454
        sqlbuilder.grant().role("prueba").select().insert().update();
455
        sqlbuilder.grant().role("gis").all();
456 43114 jjdelcerro
457
458
        System.out.println("# Test:: testGrant1");
459 44198 jjdelcerro
        System.out.println("# SQL:: " + sqlbuilder.toString());
460
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
461
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
462 43114 jjdelcerro
        assertEquals(
463
                "",
464 44198 jjdelcerro
                sqlbuilder.toString()
465 43114 jjdelcerro
        );
466
        assertEquals(
467
                "[]",
468 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.variables_names())
469 43114 jjdelcerro
        );
470
        assertEquals(
471
                "[]",
472 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.parameters_names())
473 43114 jjdelcerro
        );
474
    }
475
476
    public void testGrant2() throws Exception {
477
478 44198 jjdelcerro
        SQLBuilder sqlbuilder = createSQLBuilder();
479
        ExpressionBuilder expbuilder = sqlbuilder.expression();
480 43114 jjdelcerro
481 44198 jjdelcerro
        sqlbuilder.grant().table().database("master").schema("dbo").name("test1");
482
        sqlbuilder.grant().role("prueba").privilege(Privilege.SELECT)
483 43114 jjdelcerro
                .privilege(Privilege.INSERT)
484
                .privilege(Privilege.UPDATE);
485 44198 jjdelcerro
        sqlbuilder.grant().role("gis").privilege(Privilege.ALL);
486 43114 jjdelcerro
487
488
        System.out.println("# Test:: testGrant2");
489 44198 jjdelcerro
        System.out.println("# SQL:: " + sqlbuilder.toString());
490
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
491
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
492 43114 jjdelcerro
        assertEquals(
493
                "",
494 44198 jjdelcerro
                sqlbuilder.toString()
495 43114 jjdelcerro
        );
496
        assertEquals(
497
                "[]",
498 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.variables_names())
499 43114 jjdelcerro
        );
500
        assertEquals(
501
                "[]",
502 44198 jjdelcerro
                ArrayUtils.toString(sqlbuilder.parameters_names())
503 43114 jjdelcerro
        );
504
    }
505
506
507
}