16
16
package com .datastax .oss .driver .core .metadata ;
17
17
18
18
import static org .assertj .core .api .Assertions .assertThat ;
19
+ import static org .assertj .core .api .Assumptions .assumeThat ;
19
20
import static org .awaitility .Awaitility .await ;
20
21
import static org .mockito .Mockito .mock ;
21
22
import static org .mockito .Mockito .verify ;
22
23
23
24
import com .datastax .oss .driver .api .core .CqlIdentifier ;
24
25
import com .datastax .oss .driver .api .core .CqlSession ;
26
+ import com .datastax .oss .driver .api .core .Version ;
25
27
import com .datastax .oss .driver .api .core .config .DefaultDriverOption ;
26
28
import com .datastax .oss .driver .api .core .config .DriverConfigLoader ;
27
29
import com .datastax .oss .driver .api .core .metadata .Metadata ;
28
30
import com .datastax .oss .driver .api .core .metadata .schema .SchemaChangeListener ;
29
31
import com .datastax .oss .driver .api .core .type .DataTypes ;
30
- import com .datastax .oss .driver .api .testinfra .CassandraRequirement ;
32
+ import com .datastax .oss .driver .api .testinfra .ccm . CcmBridge ;
31
33
import com .datastax .oss .driver .api .testinfra .ccm .CustomCcmRule ;
34
+ import com .datastax .oss .driver .api .testinfra .ccm .CustomCcmRule .Builder ;
32
35
import com .datastax .oss .driver .api .testinfra .session .SessionRule ;
33
36
import com .datastax .oss .driver .api .testinfra .session .SessionUtils ;
34
37
import com .google .common .collect .ImmutableList ;
48
51
49
52
public class SchemaChangesIT {
50
53
51
- private static final CustomCcmRule CCM_RULE = CustomCcmRule .builder ().build ();
54
+ static {
55
+ Builder builder = CustomCcmRule .builder ();
56
+ if (!CcmBridge .DSE_ENABLEMENT
57
+ && CcmBridge .VERSION .nextStable ().compareTo (Version .V4_0_0 ) >= 0 ) {
58
+ builder .withCassandraConfiguration ("enable_materialized_views" , true );
59
+ }
60
+ CCM_RULE = builder .build ();
61
+ }
62
+
63
+ private static final CustomCcmRule CCM_RULE ;
52
64
53
65
// A client that we only use to set up the tests
54
66
private static final SessionRule <CqlSession > ADMIN_SESSION_RULE =
@@ -227,8 +239,9 @@ public void should_handle_type_update() {
227
239
}
228
240
229
241
@ Test
230
- @ CassandraRequirement (min = "3.0" )
231
242
public void should_handle_view_creation () {
243
+ assumeThat (CCM_RULE .getCcmBridge ().getCassandraVersion ().compareTo (Version .V3_0_0 ) >= 0 )
244
+ .isTrue ();
232
245
should_handle_creation (
233
246
"CREATE TABLE scores(user text, game text, score int, PRIMARY KEY (user, game))" ,
234
247
"CREATE MATERIALIZED VIEW highscores "
@@ -257,8 +270,9 @@ public void should_handle_view_creation() {
257
270
}
258
271
259
272
@ Test
260
- @ CassandraRequirement (min = "3.0" )
261
273
public void should_handle_view_drop () {
274
+ assumeThat (CCM_RULE .getCcmBridge ().getCassandraVersion ().compareTo (Version .V3_0_0 ) >= 0 )
275
+ .isTrue ();
262
276
should_handle_drop (
263
277
ImmutableList .of (
264
278
"CREATE TABLE scores(user text, game text, score int, PRIMARY KEY (user, game))" ,
@@ -276,8 +290,9 @@ public void should_handle_view_drop() {
276
290
}
277
291
278
292
@ Test
279
- @ CassandraRequirement (min = "3.0" )
280
293
public void should_handle_view_update () {
294
+ assumeThat (CCM_RULE .getCcmBridge ().getCassandraVersion ().compareTo (Version .V3_0_0 ) >= 0 )
295
+ .isTrue ();
281
296
should_handle_update (
282
297
ImmutableList .of (
283
298
"CREATE TABLE scores(user text, game text, score int, PRIMARY KEY (user, game))" ,
@@ -298,8 +313,9 @@ public void should_handle_view_update() {
298
313
}
299
314
300
315
@ Test
301
- @ CassandraRequirement (min = "2.2" )
302
316
public void should_handle_function_creation () {
317
+ assumeThat (CCM_RULE .getCcmBridge ().getCassandraVersion ().compareTo (Version .V2_2_0 ) >= 0 )
318
+ .isTrue ();
303
319
should_handle_creation (
304
320
null ,
305
321
"CREATE FUNCTION id(i int) RETURNS NULL ON NULL INPUT RETURNS int "
@@ -321,8 +337,9 @@ public void should_handle_function_creation() {
321
337
}
322
338
323
339
@ Test
324
- @ CassandraRequirement (min = "2.2" )
325
340
public void should_handle_function_drop () {
341
+ assumeThat (CCM_RULE .getCcmBridge ().getCassandraVersion ().compareTo (Version .V2_2_0 ) >= 0 )
342
+ .isTrue ();
326
343
should_handle_drop (
327
344
ImmutableList .of (
328
345
"CREATE FUNCTION id(i int) RETURNS NULL ON NULL INPUT RETURNS int "
@@ -336,8 +353,9 @@ public void should_handle_function_drop() {
336
353
}
337
354
338
355
@ Test
339
- @ CassandraRequirement (min = "2.2" )
340
356
public void should_handle_function_update () {
357
+ assumeThat (CCM_RULE .getCcmBridge ().getCassandraVersion ().compareTo (Version .V2_2_0 ) >= 0 )
358
+ .isTrue ();
341
359
should_handle_update_via_drop_and_recreate (
342
360
ImmutableList .of (
343
361
"CREATE FUNCTION id(i int) RETURNS NULL ON NULL INPUT RETURNS int "
@@ -355,8 +373,9 @@ public void should_handle_function_update() {
355
373
}
356
374
357
375
@ Test
358
- @ CassandraRequirement (min = "2.2" )
359
376
public void should_handle_aggregate_creation () {
377
+ assumeThat (CCM_RULE .getCcmBridge ().getCassandraVersion ().compareTo (Version .V2_2_0 ) >= 0 )
378
+ .isTrue ();
360
379
should_handle_creation (
361
380
"CREATE FUNCTION plus(i int, j int) RETURNS NULL ON NULL INPUT RETURNS int "
362
381
+ "LANGUAGE java AS 'return i+j;'" ,
@@ -380,8 +399,9 @@ public void should_handle_aggregate_creation() {
380
399
}
381
400
382
401
@ Test
383
- @ CassandraRequirement (min = "2.2" )
384
402
public void should_handle_aggregate_drop () {
403
+ assumeThat (CCM_RULE .getCcmBridge ().getCassandraVersion ().compareTo (Version .V2_2_0 ) >= 0 )
404
+ .isTrue ();
385
405
should_handle_drop (
386
406
ImmutableList .of (
387
407
"CREATE FUNCTION plus(i int, j int) RETURNS NULL ON NULL INPUT RETURNS int "
@@ -396,8 +416,9 @@ public void should_handle_aggregate_drop() {
396
416
}
397
417
398
418
@ Test
399
- @ CassandraRequirement (min = "2.2" )
400
419
public void should_handle_aggregate_update () {
420
+ assumeThat (CCM_RULE .getCcmBridge ().getCassandraVersion ().compareTo (Version .V2_2_0 ) >= 0 )
421
+ .isTrue ();
401
422
should_handle_update_via_drop_and_recreate (
402
423
ImmutableList .of (
403
424
"CREATE FUNCTION plus(i int, j int) RETURNS NULL ON NULL INPUT RETURNS int "
0 commit comments