@@ -75,37 +75,42 @@ class SessionBoltV3IT {
75
75
76
76
@ Test
77
77
void shouldSetTransactionMetadata () {
78
- Map <String , Object > metadata = new HashMap <>();
79
- metadata .put ("a" , "hello world" );
80
- metadata .put ("b" , LocalDate .now ());
81
- metadata .put ("c" , asList (true , false , true ));
78
+ if (driver .isNeo4j44OrEarlier ()) {
79
+ Map <String , Object > metadata = new HashMap <>();
80
+ metadata .put ("a" , "hello world" );
81
+ metadata .put ("b" , LocalDate .now ());
82
+ metadata .put ("c" , asList (true , false , true ));
82
83
83
- TransactionConfig config =
84
- TransactionConfig .builder ().withMetadata (metadata ).build ();
84
+ TransactionConfig config =
85
+ TransactionConfig .builder ().withMetadata (metadata ).build ();
85
86
86
- // call listTransactions procedure that should list itself with the specified metadata
87
- Result result = driver .session ().run ("CALL dbms.listTransactions()" , config );
88
- Map <String , Object > receivedMetadata = result .single ().get ("metaData" ).asMap ();
87
+ // call listTransactions procedure that should list itself with the specified metadata
88
+ Result result = driver .session ().run ("CALL dbms.listTransactions()" , config );
89
+ Map <String , Object > receivedMetadata =
90
+ result .single ().get ("metaData" ).asMap ();
89
91
90
- assertEquals (metadata , receivedMetadata );
92
+ assertEquals (metadata , receivedMetadata );
93
+ }
91
94
}
92
95
93
96
@ Test
94
97
void shouldSetTransactionMetadataAsync () {
95
- Map <String , Object > metadata = new HashMap <>();
96
- metadata .put ("key1" , "value1" );
97
- metadata .put ("key2" , 42L );
98
+ if (driver .isNeo4j44OrEarlier ()) {
99
+ Map <String , Object > metadata = new HashMap <>();
100
+ metadata .put ("key1" , "value1" );
101
+ metadata .put ("key2" , 42L );
98
102
99
- TransactionConfig config =
100
- TransactionConfig .builder ().withMetadata (metadata ).build ();
103
+ TransactionConfig config =
104
+ TransactionConfig .builder ().withMetadata (metadata ).build ();
101
105
102
- // call listTransactions procedure that should list itself with the specified metadata
103
- CompletionStage <Map <String , Object >> metadataFuture = driver .asyncSession ()
104
- .runAsync ("CALL dbms.listTransactions()" , config )
105
- .thenCompose (ResultCursor ::singleAsync )
106
- .thenApply (record -> record .get ("metaData" ).asMap ());
106
+ // call listTransactions procedure that should list itself with the specified metadata
107
+ CompletionStage <Map <String , Object >> metadataFuture = driver .asyncSession ()
108
+ .runAsync ("CALL dbms.listTransactions()" , config )
109
+ .thenCompose (ResultCursor ::singleAsync )
110
+ .thenApply (record -> record .get ("metaData" ).asMap ());
107
111
108
- assertEquals (metadata , await (metadataFuture ));
112
+ assertEquals (metadata , await (metadataFuture ));
113
+ }
109
114
}
110
115
111
116
@ Test
@@ -300,50 +305,54 @@ void shouldSendGoodbyeWhenClosingDriver() {
300
305
}
301
306
302
307
private static void testTransactionMetadataWithAsyncTransactionFunctions (boolean read ) {
303
- AsyncSession asyncSession = driver .asyncSession ();
304
- Map <String , Object > metadata = new HashMap <>();
305
- metadata .put ("foo" , "bar" );
306
- metadata .put ("baz" , true );
307
- metadata .put ("qux" , 12345L );
308
-
309
- TransactionConfig config =
310
- TransactionConfig .builder ().withMetadata (metadata ).build ();
311
-
312
- // call listTransactions procedure that should list itself with the specified metadata
313
- CompletionStage <Record > singleFuture = read
314
- ? asyncSession .readTransactionAsync (
315
- tx -> tx .runAsync ("CALL dbms.listTransactions()" ).thenCompose (ResultCursor ::singleAsync ),
316
- config )
317
- : asyncSession .writeTransactionAsync (
318
- tx -> tx .runAsync ("CALL dbms.listTransactions()" ).thenCompose (ResultCursor ::singleAsync ),
319
- config );
320
-
321
- CompletionStage <Map <String , Object >> metadataFuture =
322
- singleFuture .thenApply (record -> record .get ("metaData" ).asMap ());
323
-
324
- assertEquals (metadata , await (metadataFuture ));
308
+ if (driver .isNeo4j44OrEarlier ()) {
309
+ AsyncSession asyncSession = driver .asyncSession ();
310
+ Map <String , Object > metadata = new HashMap <>();
311
+ metadata .put ("foo" , "bar" );
312
+ metadata .put ("baz" , true );
313
+ metadata .put ("qux" , 12345L );
314
+
315
+ TransactionConfig config =
316
+ TransactionConfig .builder ().withMetadata (metadata ).build ();
317
+
318
+ // call listTransactions procedure that should list itself with the specified metadata
319
+ CompletionStage <Record > singleFuture = read
320
+ ? asyncSession .readTransactionAsync (
321
+ tx -> tx .runAsync ("CALL dbms.listTransactions()" ).thenCompose (ResultCursor ::singleAsync ),
322
+ config )
323
+ : asyncSession .writeTransactionAsync (
324
+ tx -> tx .runAsync ("CALL dbms.listTransactions()" ).thenCompose (ResultCursor ::singleAsync ),
325
+ config );
326
+
327
+ CompletionStage <Map <String , Object >> metadataFuture =
328
+ singleFuture .thenApply (record -> record .get ("metaData" ).asMap ());
329
+
330
+ assertEquals (metadata , await (metadataFuture ));
331
+ }
325
332
}
326
333
327
334
private static void testTransactionMetadataWithTransactionFunctions (boolean read ) {
328
- Session session = driver .session ();
329
- Map <String , Object > metadata = new HashMap <>();
330
- metadata .put ("foo" , "bar" );
331
- metadata .put ("baz" , true );
332
- metadata .put ("qux" , 12345L );
333
-
334
- TransactionConfig config =
335
- TransactionConfig .builder ().withMetadata (metadata ).build ();
336
-
337
- // call listTransactions procedure that should list itself with the specified metadata
338
- Record single = read
339
- ? session .readTransaction (
340
- tx -> tx .run ("CALL dbms.listTransactions()" ).single (), config )
341
- : session .writeTransaction (
342
- tx -> tx .run ("CALL dbms.listTransactions()" ).single (), config );
343
-
344
- Map <String , Object > receivedMetadata = single .get ("metaData" ).asMap ();
345
-
346
- assertEquals (metadata , receivedMetadata );
335
+ if (driver .isNeo4j44OrEarlier ()) {
336
+ Session session = driver .session ();
337
+ Map <String , Object > metadata = new HashMap <>();
338
+ metadata .put ("foo" , "bar" );
339
+ metadata .put ("baz" , true );
340
+ metadata .put ("qux" , 12345L );
341
+
342
+ TransactionConfig config =
343
+ TransactionConfig .builder ().withMetadata (metadata ).build ();
344
+
345
+ // call listTransactions procedure that should list itself with the specified metadata
346
+ Record single = read
347
+ ? session .readTransaction (
348
+ tx -> tx .run ("CALL dbms.listTransactions()" ).single (), config )
349
+ : session .writeTransaction (
350
+ tx -> tx .run ("CALL dbms.listTransactions()" ).single (), config );
351
+
352
+ Map <String , Object > receivedMetadata = single .get ("metaData" ).asMap ();
353
+
354
+ assertEquals (metadata , receivedMetadata );
355
+ }
347
356
}
348
357
349
358
private static void verifyValidException (Exception error ) {
0 commit comments