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.h2 / src / test / java / org / gvsig / fmap / dal / store / h2 / H2SpatialSQLBuilderTest.java @ 44361

History | View | Annotate | Download (23 KB)

1
package org.gvsig.fmap.dal.store.h2;
2

    
3
import junit.framework.TestCase;
4
import org.apache.commons.lang3.ArrayUtils;
5
import org.apache.commons.lang3.StringUtils;
6
import org.cresques.cts.IProjection;
7
import org.gvsig.expressionevaluator.ExpressionBuilder;
8
import org.gvsig.fmap.crs.CRSFactory;
9
import org.gvsig.fmap.dal.SQLBuilder;
10
import org.gvsig.fmap.dal.SQLBuilder.Privilege;
11
import org.gvsig.fmap.dal.feature.spi.SQLBuilderBase;
12
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
13
import static org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase.PROP_TABLE;
14
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.OperationsFactoryBase;
15
import org.gvsig.fmap.geom.DataTypes;
16
import org.gvsig.fmap.geom.Geometry;
17
import org.gvsig.fmap.geom.GeometryLocator;
18
import org.gvsig.fmap.geom.GeometryManager;
19
import org.gvsig.fmap.geom.primitive.Polygon;
20
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
21

    
22
public class H2SpatialSQLBuilderTest extends TestCase {
23
    
24
    public H2SpatialSQLBuilderTest(String testName) {
25
        super(testName);
26
    }
27

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

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

    
39
    private SQLBuilder createSQLBuilder() {
40
        return new H2SpatialSQLBuilder(new H2SpatialHelper(null));
41
    }
42
    
43
    public void testCalulateEnvelopeOfColumn() throws Exception {
44
        
45
        TableReference table = new OperationsFactoryBase.DefaultTableReference("master","dbo","test1", null);
46
        String columnName = "the_geom";
47
        
48
        SQLBuilder sqlbuilder = createSQLBuilder();
49
        ExpressionBuilder expbuilder = sqlbuilder.expression();
50
        
51
        sqlbuilder.select().column().value(
52
            expbuilder.as_geometry(
53
                expbuilder.ST_ExtentAggregate(
54
                        expbuilder.column(columnName)
55
                )
56
            )
57
        );
58
        //sqlbuilder.select().group_by(expbuilder.column(columnName));
59
        sqlbuilder.select().from().table()
60
                .database(table.getDatabase())
61
                .schema(table.getSchema())
62
                .name(table.getTable());
63
        sqlbuilder.select().from().subquery(table.getSubquery());
64

    
65
        sqlbuilder.select().where().and(        
66
            expbuilder.not_is_null(expbuilder.column(columnName))
67
        );
68
        
69
        System.out.println("# Test:: testCalulateEnvelopeOfColumn");
70
        System.out.println("# SQL:: " + sqlbuilder.toString());
71
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
72
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
73
        assertEquals(
74
                "SELECT ST_AsBinary(ST_Extent(\"the_geom\")) FROM \"dbo\".\"test1\" WHERE ( (\"the_geom\") NOT IS NULL )",
75
                sqlbuilder.toString()
76
        );
77
        assertEquals(
78
                "[the_geom]",
79
                ArrayUtils.toString(sqlbuilder.variables_names())
80
        );
81
        assertEquals(
82
                "[]",
83
                ArrayUtils.toString(sqlbuilder.parameters_names())
84
        );
85
    }
86
 
87
    public void testCalulateEnvelope() throws Exception {
88
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
89
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
90
        
91
        Polygon limit = geometryManager.createPolygon(Geometry.SUBTYPES.GEOM2D);
92
        limit.addVertex(0, 0);
93
        limit.addVertex(0, 100);
94
        limit.addVertex(100, 100);
95
        limit.addVertex(100, 0);
96
        limit.addVertex(0, 0);
97
        
98
        SQLBuilder sqlbuilder = createSQLBuilder();
99
        ExpressionBuilder expbuilder = sqlbuilder.expression();
100
        
101
        sqlbuilder.select().column().value(
102
            expbuilder.as_geometry(
103
              expbuilder.ST_ExtentAggregate(
104
                expbuilder.column("the_geom")
105
              )
106
            )
107
        ).as("envelope");
108
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
109
        sqlbuilder.select().where().set(
110
            expbuilder.ST_Intersects(
111
                expbuilder.ST_Envelope(
112
                    expbuilder.column("the_geom")
113
                ),
114
                expbuilder.geometry(limit, proj)
115
            )
116
        );
117
        sqlbuilder.select().where().and(
118
                expbuilder.custom("x = 27")
119
        );
120
        
121
        System.out.println("# Test:: testCalulateEnvelope");
122
        System.out.println("# SQL:: " + sqlbuilder.toString());
123
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
124
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
125
        assertEquals(
126
                "SELECT ST_AsBinary(ST_Extent(\"the_geom\")) AS \"envelope\" FROM \"dbo\".\"test1\" WHERE (( ((ST_Envelope(\"the_geom\")) && (ST_GeomFromWKB((x'000000000300000001000000050000000000000000000000000000000000000000000000004059000000000000405900000000000040590000000000004059000000000000000000000000000000000000000000000000000000000000'), (4326)))) AND ST_Intersects((ST_Envelope(\"the_geom\")),(ST_GeomFromWKB((x'000000000300000001000000050000000000000000000000000000000000000000000000004059000000000000405900000000000040590000000000004059000000000000000000000000000000000000000000000000000000000000'), (4326))) )) AND x = 27)",
127
                sqlbuilder.toString()
128
        );
129
        assertEquals(
130
                "[the_geom]",
131
                ArrayUtils.toString(sqlbuilder.variables_names())
132
        );
133
        assertEquals(
134
                "[]",
135
                ArrayUtils.toString(sqlbuilder.parameters_names())
136
        );
137
    }
138

    
139
    public void testCount() throws Exception {
140
        SQLBuilder sqlbuilder = createSQLBuilder();
141
        ExpressionBuilder expbuilder = sqlbuilder.expression();
142
        
143
        sqlbuilder.select().column().value(sqlbuilder.count().all());
144
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
145
        sqlbuilder.select().from().subquery(null);
146
        sqlbuilder.select().where().set( expbuilder.custom("pp = 200"));
147

    
148
        System.out.println("# Test:: testCount");
149
        System.out.println("# SQL:: " + sqlbuilder.toString());
150
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
151
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
152

    
153
        //# Test:: testCount
154
        //# SQL:: SELECT COUNT(*) FROM "test1" WHERE pp = 200
155
        //# Variables:: []
156
        //# Parametros:: []
157

    
158
        assertEquals(
159
                "SELECT COUNT(*) FROM \"dbo\".\"test1\" WHERE pp = 200",
160
                sqlbuilder.toString()
161
        );
162
        assertEquals(
163
                "[]",
164
                ArrayUtils.toString(sqlbuilder.variables_names())
165
        );
166
        assertEquals(
167
                "[]",
168
                ArrayUtils.toString(sqlbuilder.parameters_names())
169
        );
170
    }
171
    
172
    public void testCreateTable() throws Exception {
173
        SQLBuilder sqlbuilder = createSQLBuilder();
174
        ExpressionBuilder expbuilder = sqlbuilder.expression();
175

    
176
        sqlbuilder.create_table().table().database("master").schema("dbo").name("test1");
177
        sqlbuilder.create_table().add_column(
178
                "name",
179
                DataTypes.STRING,
180
                45,
181
                0,
182
                false,
183
                false,
184
                true,
185
                false,
186
                null
187
        );
188
        sqlbuilder.create_table().add_column(
189
                "id",
190
                DataTypes.INT,
191
                0,
192
                0,
193
                true,
194
                false,
195
                false,
196
                true,
197
                0
198
        );
199
        sqlbuilder.create_table().add_column(
200
                "geom",
201
                DataTypes.GEOMETRY,
202
                0,
203
                0,
204
                false,
205
                false,
206
                true,
207
                false,
208
                null
209
        );
210

    
211
        
212
        // CREATE TABLE "test1" ("name" VARCHAR(45) DEFAULT NULL, "id" INTEGER PRIMARY KEY AUTO_INCREMENT DEFAULT '0' NOT NULL, "geom" GEOMETRY ); ALTER TABLE "test1" ADD CONSTRAINT IF NOT EXISTS "constraint_test1_geom_dim" CHECK ST_CoordDim("geom") = 2
213
        System.out.println("# Test:: testCreateTable");
214
        System.out.println("# SQL:: " + sqlbuilder.toString());
215
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
216
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
217
        assertEquals(
218
                "CREATE TABLE \"dbo\".\"test1\" (\"name\" VARCHAR(45) DEFAULT NULL, \"id\" INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL, \"geom\" GEOMETRY ); ALTER TABLE \"dbo\".\"test1\" ADD CONSTRAINT IF NOT EXISTS \"constraint_test1_geom_dim\" CHECK NVL2(\"geom\", ST_CoordDim(\"geom\") = 2, TRUE)",
219
                sqlbuilder.toString()
220
        );
221
        assertEquals(
222
                "[]",
223
                ArrayUtils.toString(sqlbuilder.variables_names())
224
        );
225
        assertEquals(
226
                "[]",
227
                ArrayUtils.toString(sqlbuilder.parameters_names())
228
        );
229
    }
230

    
231
    public void testDropTable() throws Exception {
232
        SQLBuilder sqlbuilder = createSQLBuilder();
233
        ExpressionBuilder expbuilder = sqlbuilder.expression();
234
        
235
        sqlbuilder.drop_table().table().database("master").schema("dbo").name("test1");
236

    
237
        // DROP TABLE "test1"
238
        
239
        System.out.println("# Test:: testDropTable");
240
        System.out.println("# SQL:: " + sqlbuilder.toString());
241
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
242
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
243
        assertEquals(
244
                "DROP TABLE \"dbo\".\"test1\"",
245
                sqlbuilder.toString()
246
        );
247
        assertEquals(
248
                "[]",
249
                ArrayUtils.toString(sqlbuilder.variables_names())
250
        );
251
        assertEquals(
252
                "[]",
253
                ArrayUtils.toString(sqlbuilder.parameters_names())
254
        );
255
    }
256
    
257
    public void testFetchFeatureProviderByReference() throws Exception {
258
        SQLBuilder sqlbuilder = new SQLBuilderBase();
259
        ExpressionBuilder expbuilder = sqlbuilder.expression();
260
        
261
        String value = "yoyo";
262
        sqlbuilder.select().column().name("name");
263
        sqlbuilder.select().column().name("id");
264
        sqlbuilder.select().column().name("geom").as_geometry();
265
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
266
        sqlbuilder.select().where().set(
267
            expbuilder.eq(
268
                expbuilder.column("name"),
269
                expbuilder.parameter(value).as_constant()
270
            )
271
        );
272
        sqlbuilder.select().limit(1);
273

    
274
        // SELECT "name", "id", ST_AsBinary("geom") FROM "master"."dbo"."test1" WHERE ( ("name") = (?) ) LIMIT 1
275

    
276
        System.out.println("# Test:: testFetchFeatureProviderByReference");
277
        System.out.println("# SQL:: " + sqlbuilder.toString());
278
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
279
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
280
        assertEquals(
281
                "SELECT \"name\", \"id\", ST_AsBinary(\"geom\") FROM \"master\".\"dbo\".\"test1\" WHERE ( (\"name\") = (?) ) LIMIT 1",
282
                sqlbuilder.toString()
283
        );
284
        assertEquals(
285
                "[geom, id, name]",
286
                ArrayUtils.toString(sqlbuilder.variables_names())
287
        );
288
        assertEquals(
289
                "['yoyo']",
290
                ArrayUtils.toString(sqlbuilder.parameters_names())
291
        );
292
    }
293
    
294
    public void testFetchFeatureType() throws Exception {
295
        SQLBuilder sqlbuilder = createSQLBuilder();
296
        ExpressionBuilder expbuilder = sqlbuilder.expression();
297

    
298
        sqlbuilder.select().column().all();
299
        sqlbuilder.select().from().table().database("master").schema("dbo").name("test1");
300
        sqlbuilder.select().limit(1);
301

    
302
        System.out.println("# Test:: testFetchFeatureType");
303
        System.out.println("# SQL:: " + sqlbuilder.toString());
304
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
305
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
306
        
307
        //# Test:: testFetchFeatureType
308
        //# SQL:: SELECT * FROM "test1" LIMIT 1
309
        //# Variables:: []
310
        //# Parametros:: []        
311
        
312
        assertEquals(
313
                "SELECT * FROM \"dbo\".\"test1\" LIMIT 1",
314
                sqlbuilder.toString()
315
        );
316
        assertEquals(
317
                "[]",
318
                ArrayUtils.toString(sqlbuilder.variables_names())
319
        );
320
        assertEquals(
321
                "[]",
322
                ArrayUtils.toString(sqlbuilder.parameters_names())
323
        );
324
    }
325
        
326
    public void testPerformDeletes() throws Exception {
327
        SQLBuilder sqlbuilder = createSQLBuilder();
328
        ExpressionBuilder expbuilder = sqlbuilder.expression();
329

    
330
        sqlbuilder.delete().table().database("master").schema("dbo").name("test1");
331
        sqlbuilder.delete().where().and(
332
            expbuilder.eq( 
333
                expbuilder.column("id1"),
334
                expbuilder.parameter("id1").as_variable()
335
            )
336
        );
337
        sqlbuilder.delete().where().and(
338
            expbuilder.eq( 
339
                expbuilder.column("id2"),
340
                expbuilder.parameter("id2").as_variable()
341
            )
342
        );
343

    
344
        // DELETE FROM "test1" WHERE ( ("id1") = (?) ) AND ( ("id2") = (?) )
345

    
346
        System.out.println("# Test:: testPerformDeletes");
347
        System.out.println("# SQL:: " + sqlbuilder.toString());
348
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
349
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
350
        assertEquals(
351
                "DELETE FROM \"dbo\".\"test1\" WHERE (( (\"id1\") = (?) ) AND ( (\"id2\") = (?) ))",
352
                sqlbuilder.toString()
353
        );
354
        assertEquals(
355
                "[id1, id2]",
356
                ArrayUtils.toString(sqlbuilder.variables_names())
357
        );
358
        assertEquals(
359
                "[\"id1\", \"id2\"]",
360
                ArrayUtils.toString(sqlbuilder.parameters_names())
361
        );
362
    }
363

    
364
    public void testPerformInserts1() throws Exception {
365
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
366

    
367
        SQLBuilder sqlbuilder = createSQLBuilder();
368
        ExpressionBuilder expbuilder = sqlbuilder.expression();
369

    
370
        sqlbuilder.insert().table().database("master").schema("dbo").name("test1");
371
        sqlbuilder.insert().column().name("id").with_value(expbuilder.parameter("id"));
372
        sqlbuilder.insert().column().name("name").with_value(expbuilder.parameter("name"));
373
        sqlbuilder.insert().column().name("geom").with_value(expbuilder.parameter("geom").as_geometry_variable().srs(proj));
374
        
375
        System.out.println("# Test:: testPerformInserts1");
376
        System.out.println("# SQL:: " + sqlbuilder.toString());
377
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
378
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
379
        assertEquals(
380
                "INSERT INTO \"dbo\".\"test1\" ( \"id\", \"name\", \"geom\" ) VALUES ( ?, ?, ST_GeomFromWKB((?), (4326)) )",
381
                sqlbuilder.toString()
382
        );
383
        assertEquals(
384
                "[geom, id, name]",
385
                ArrayUtils.toString(sqlbuilder.variables_names())
386
        );
387
        assertEquals(
388
                "[\"id\", \"name\", \"geom\"]",
389
                ArrayUtils.toString(sqlbuilder.parameters_names())
390
        );
391
    }
392

    
393
    public void testPerformInserts2() throws Exception {
394
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
395

    
396
        SQLBuilder sqlbuilder = createSQLBuilder();
397
        ExpressionBuilder expbuilder = sqlbuilder.expression();
398

    
399
        sqlbuilder.insert().table().database("master").schema("dbo").name("test1");
400
        sqlbuilder.insert().column().name("id").with_value(expbuilder.parameter("id"));
401
        sqlbuilder.insert().column().name("name").with_value(expbuilder.parameter("name"));
402
        sqlbuilder.insert().column().name("geom").with_value(expbuilder.parameter("geom").as_geometry_variable().srs(proj));
403
        
404
        System.out.println("# Test:: testPerformInserts2");
405
        System.out.println("# SQL:: " + sqlbuilder.toString());
406
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
407
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
408
        assertEquals(
409
                "INSERT INTO \"dbo\".\"test1\" ( \"id\", \"name\", \"geom\" ) VALUES ( ?, ?, ST_GeomFromWKB((?), (4326)) )",
410
                sqlbuilder.toString()
411
        );
412
        assertEquals(
413
                "[geom, id, name]",
414
                ArrayUtils.toString(sqlbuilder.variables_names())
415
        );
416
        assertEquals(
417
                "[\"id\", \"name\", \"geom\"]",
418
                ArrayUtils.toString(sqlbuilder.parameters_names())
419
        );
420
    }
421

    
422
    public void testPerformUpdates1() throws Exception {
423
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
424

    
425
        SQLBuilder sqlbuilder = createSQLBuilder();
426
        ExpressionBuilder expbuilder = sqlbuilder.expression();
427

    
428
        sqlbuilder.update().table().database("master").schema("dbo").name("test1");
429
        sqlbuilder.update().where().and(
430
            expbuilder.eq(
431
                expbuilder.column("id"), 
432
                expbuilder.parameter("id").as_variable()
433
            )
434
        );
435
        sqlbuilder.update().column().name("name").with_value(expbuilder.parameter("name"));
436
        sqlbuilder.update().column().name("geom").with_value(
437
                expbuilder.parameter("geom").as_geometry_variable().srs(proj) 
438
        );
439

    
440
        System.out.println("# Test:: testPerformUpdates");
441
        System.out.println("# SQL:: " + sqlbuilder.toString());
442
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
443
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
444
        assertEquals(
445
                "UPDATE \"dbo\".\"test1\" SET \"name\" = ?, \"geom\" = ST_GeomFromWKB((?), (4326)) WHERE ( (\"id\") = (?) )",
446
                sqlbuilder.toString()
447
        );
448
        assertEquals(
449
                "[geom, id, name]",
450
                ArrayUtils.toString(sqlbuilder.variables_names())
451
        );
452
        assertEquals(
453
                "[\"name\", \"geom\", \"id\"]",
454
                ArrayUtils.toString(sqlbuilder.parameters_names())
455
        );
456
    }
457

    
458
    public void testPerformUpdates2() throws Exception {
459
        IProjection proj = CRSFactory.getCRS("EPSG:4326");
460

    
461
        SQLBuilder sqlbuilder = createSQLBuilder();
462
        ExpressionBuilder expbuilder = sqlbuilder.expression();
463

    
464
        sqlbuilder.update().table().database("master").schema("dbo").name("test1");
465
        sqlbuilder.update().where().and(
466
            expbuilder.eq(
467
                expbuilder.column("id"), 
468
                expbuilder.parameter("id").as_variable()
469
            )
470
        );
471
        sqlbuilder.update().column().name("name").with_value(expbuilder.parameter("name"));
472
        sqlbuilder.update().column().name("geom").with_value(
473
                expbuilder.parameter("geom").as_geometry_variable()
474
                        .srs(expbuilder.parameter().value(proj)) 
475
        );
476

    
477
        System.out.println("# Test:: testPerformUpdates");
478
        System.out.println("# SQL:: " + sqlbuilder.toString());
479
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
480
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
481
        assertEquals(
482
                "UPDATE \"dbo\".\"test1\" SET \"name\" = ?, \"geom\" = ST_GeomFromWKB((?), (?)) WHERE ( (\"id\") = (?) )",
483
                sqlbuilder.toString()
484
        );
485
        assertEquals(
486
                "[geom, id, name]",
487
                ArrayUtils.toString(sqlbuilder.variables_names())
488
        );
489
        assertEquals(
490
                "[\"name\", \"geom\", 4326, \"id\"]",
491
                ArrayUtils.toString(sqlbuilder.parameters_names())
492
        );
493
    }
494

    
495
    public void testGrant1() throws Exception {
496

    
497
        SQLBuilder sqlbuilder = createSQLBuilder();
498
        ExpressionBuilder expbuilder = sqlbuilder.expression();
499

    
500
        sqlbuilder.grant().table().database("master").schema("dbo").name("test1");
501
        sqlbuilder.grant().role("prueba").select().insert().update();
502
        sqlbuilder.grant().role("gis").all();
503
                
504
        
505
        System.out.println("# Test:: testGrant1");
506
        System.out.println("# SQL:: " + sqlbuilder.toString());
507
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
508
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
509
        assertEquals(
510
                "",
511
                sqlbuilder.toString()
512
        );
513
        assertEquals(
514
                "[]",
515
                ArrayUtils.toString(sqlbuilder.variables_names())
516
        );
517
        assertEquals(
518
                "[]",
519
                ArrayUtils.toString(sqlbuilder.parameters_names())
520
        );
521
    }
522

    
523
    public void testGrant2() throws Exception {
524

    
525
        SQLBuilder sqlbuilder = new SQLBuilderBase();
526
        ExpressionBuilder expbuilder = sqlbuilder.expression();
527

    
528
        sqlbuilder.grant().table().database("master").schema("dbo").name("test1");
529
        sqlbuilder.grant().role("prueba").privilege(Privilege.SELECT)
530
                .privilege(Privilege.INSERT)
531
                .privilege(Privilege.UPDATE);
532
        sqlbuilder.grant().role("gis").privilege(Privilege.ALL);
533
                
534
        
535
        System.out.println("# Test:: testGrant2");
536
        System.out.println("# SQL:: " + sqlbuilder.toString());
537
        System.out.println("# Variables:: " + ArrayUtils.toString(sqlbuilder.variables_names()));
538
        System.out.println("# Parametros:: " + ArrayUtils.toString(sqlbuilder.parameters_names()));
539
        assertEquals(
540
                "",
541
                sqlbuilder.toString()
542
        );
543
        assertEquals(
544
                "[]",
545
                ArrayUtils.toString(sqlbuilder.variables_names())
546
        );
547
        assertEquals(
548
                "[]",
549
                ArrayUtils.toString(sqlbuilder.parameters_names())
550
        );
551
    }
552

    
553

    
554
}