37
37
public class DB2DataTypeTest extends DB2TestBase {
38
38
39
39
40
- // Enum for enum testing
40
+ // Enum for enum testing
41
41
enum Days {
42
42
MONDAY , TUESDAY , WEDNESDAY , THURSDAY , FRIDAY , SATURDAY , SUNDAY
43
43
}
44
44
45
-
45
+
46
46
/**
47
47
* In DB2 the FLOAT and DOUBLE column types both map to an 8-byte
48
48
* double-precision column (i.e. Java double). Ensure that a Java
@@ -51,10 +51,14 @@ enum Days {
51
51
@ Test
52
52
public void testFloatIntoFloatColumn (TestContext ctx ) {
53
53
connect (ctx .asyncAssertSuccess (conn -> {
54
- conn .preparedQuery ("INSERT INTO db2_types (id,test_float) VALUES (?, ?)" )
55
- .execute (Tuple .of (1 , 5.0f ), ctx .asyncAssertSuccess (insertResult -> {
56
- conn .preparedQuery ("SELECT id,test_float FROM db2_types WHERE id = 1" )
57
- .execute (ctx .asyncAssertSuccess (rows -> {
54
+ conn
55
+ .preparedQuery ("INSERT INTO db2_types (id,test_float) VALUES (?, ?)" )
56
+ .execute (Tuple .of (1 , 5.0f ))
57
+ .onComplete (ctx .asyncAssertSuccess (insertResult -> {
58
+ conn
59
+ .preparedQuery ("SELECT id,test_float FROM db2_types WHERE id = 1" )
60
+ .execute ()
61
+ .onComplete (ctx .asyncAssertSuccess (rows -> {
58
62
ctx .assertEquals (1 , rows .size ());
59
63
Row row = rows .iterator ().next ();
60
64
ctx .assertEquals (1 , row .getInteger (0 ));
@@ -72,10 +76,14 @@ public void testFloatIntoFloatColumn(TestContext ctx) {
72
76
@ Test
73
77
public void testByteIntoSmallIntColumn (TestContext ctx ) {
74
78
connect (ctx .asyncAssertSuccess (conn -> {
75
- conn .preparedQuery ("INSERT INTO db2_types (id,test_byte) VALUES (?, ?)" )
76
- .execute (Tuple .of (2 , (byte ) 0xCA ), ctx .asyncAssertSuccess (insertResult -> {
77
- conn .preparedQuery ("SELECT id,test_byte FROM db2_types WHERE id = 2" )
78
- .execute (ctx .asyncAssertSuccess (rows -> {
79
+ conn
80
+ .preparedQuery ("INSERT INTO db2_types (id,test_byte) VALUES (?, ?)" )
81
+ .execute (Tuple .of (2 , (byte ) 0xCA ))
82
+ .onComplete (ctx .asyncAssertSuccess (insertResult -> {
83
+ conn
84
+ .preparedQuery ("SELECT id,test_byte FROM db2_types WHERE id = 2" )
85
+ .execute ()
86
+ .onComplete (ctx .asyncAssertSuccess (rows -> {
79
87
ctx .assertEquals (1 , rows .size ());
80
88
Row row = rows .iterator ().next ();
81
89
ctx .assertEquals (2 , row .getInteger (0 ));
@@ -89,10 +97,14 @@ public void testByteIntoSmallIntColumn(TestContext ctx) {
89
97
public void testByteArrayIntoVarchar (TestContext ctx ) {
90
98
byte [] expected = "hello world" .getBytes ();
91
99
connect (ctx .asyncAssertSuccess (conn -> {
92
- conn .preparedQuery ("INSERT INTO db2_types (id,test_bytes) VALUES (?, ?)" )
93
- .execute (Tuple .of (3 , "hello world" .getBytes ()), ctx .asyncAssertSuccess (insertResult -> {
94
- conn .preparedQuery ("SELECT id,test_bytes FROM db2_types WHERE id = 3" )
95
- .execute (ctx .asyncAssertSuccess (rows -> {
100
+ conn
101
+ .preparedQuery ("INSERT INTO db2_types (id,test_bytes) VALUES (?, ?)" )
102
+ .execute (Tuple .of (3 , "hello world" .getBytes ()))
103
+ .onComplete (ctx .asyncAssertSuccess (insertResult -> {
104
+ conn
105
+ .preparedQuery ("SELECT id,test_bytes FROM db2_types WHERE id = 3" )
106
+ .execute ()
107
+ .onComplete (ctx .asyncAssertSuccess (rows -> {
96
108
ctx .assertEquals (1 , rows .size ());
97
109
Row row = rows .iterator ().next ();
98
110
ctx .assertEquals (3 , row .getInteger (0 ));
@@ -108,10 +120,14 @@ public void testByteArrayIntoVarchar(TestContext ctx) {
108
120
public void testByteBufIntoVarchar (TestContext ctx ) {
109
121
byte [] expected = "hello world" .getBytes ();
110
122
connect (ctx .asyncAssertSuccess (conn -> {
111
- conn .preparedQuery ("INSERT INTO db2_types (id,test_bytes) VALUES (?, ?)" )
112
- .execute (Tuple .of (4 , Buffer .buffer (expected )), ctx .asyncAssertSuccess (insertResult -> {
113
- conn .preparedQuery ("SELECT id,test_bytes FROM db2_types WHERE id = 4" )
114
- .execute (ctx .asyncAssertSuccess (rows -> {
123
+ conn
124
+ .preparedQuery ("INSERT INTO db2_types (id,test_bytes) VALUES (?, ?)" )
125
+ .execute (Tuple .of (4 , Buffer .buffer (expected )))
126
+ .onComplete (ctx .asyncAssertSuccess (insertResult -> {
127
+ conn
128
+ .preparedQuery ("SELECT id,test_bytes FROM db2_types WHERE id = 4" )
129
+ .execute ()
130
+ .onComplete (ctx .asyncAssertSuccess (rows -> {
115
131
ctx .assertEquals (1 , rows .size ());
116
132
Row row = rows .iterator ().next ();
117
133
ctx .assertEquals (4 , row .getInteger (0 ));
@@ -127,10 +143,14 @@ public void testByteBufIntoVarchar(TestContext ctx) {
127
143
public void testTimestamp (TestContext ctx ) {
128
144
LocalDateTime now = LocalDateTime .now ();
129
145
connect (ctx .asyncAssertSuccess (conn -> {
130
- conn .preparedQuery ("INSERT INTO db2_types (id,test_tstamp) VALUES (?,?)" )
131
- .execute (Tuple .of (5 , now ), ctx .asyncAssertSuccess (insertResult -> {
132
- conn .preparedQuery ("SELECT id,test_tstamp FROM db2_types WHERE id = ?" )
133
- .execute (Tuple .of (5 ), ctx .asyncAssertSuccess (rows -> {
146
+ conn
147
+ .preparedQuery ("INSERT INTO db2_types (id,test_tstamp) VALUES (?,?)" )
148
+ .execute (Tuple .of (5 , now ))
149
+ .onComplete (ctx .asyncAssertSuccess (insertResult -> {
150
+ conn
151
+ .preparedQuery ("SELECT id,test_tstamp FROM db2_types WHERE id = ?" )
152
+ .execute (Tuple .of (5 ))
153
+ .onComplete (ctx .asyncAssertSuccess (rows -> {
134
154
ctx .assertEquals (1 , rows .size ());
135
155
Row row = rows .iterator ().next ();
136
156
int nowNanos = now .getNano () - (1000 * now .get (ChronoField .MICRO_OF_SECOND ));
@@ -146,9 +166,15 @@ public void testTimestamp(TestContext ctx) {
146
166
public void testUUID (TestContext ctx ) {
147
167
UUID uuid = UUID .randomUUID ();
148
168
connect (ctx .asyncAssertSuccess (conn -> {
149
- conn .preparedQuery ("INSERT INTO db2_types (id,test_vchar) VALUES (?,?)" ).execute (Tuple .of (6 , uuid ),
169
+ conn
170
+ .preparedQuery ("INSERT INTO db2_types (id,test_vchar) VALUES (?,?)" )
171
+ .execute (Tuple .of (6 , uuid ))
172
+ .onComplete (
150
173
ctx .asyncAssertSuccess (insertResult -> {
151
- conn .preparedQuery ("SELECT id,test_vchar FROM db2_types WHERE id = ?" ).execute (Tuple .of (6 ),
174
+ conn
175
+ .preparedQuery ("SELECT id,test_vchar FROM db2_types WHERE id = ?" )
176
+ .execute (Tuple .of (6 ))
177
+ .onComplete (
152
178
ctx .asyncAssertSuccess (rows -> {
153
179
ctx .assertEquals (1 , rows .size ());
154
180
Row row = rows .iterator ().next ();
@@ -168,32 +194,41 @@ public void testRowId(TestContext ctx) {
168
194
final String msg = "insert data for testRowId" ;
169
195
connect (ctx .asyncAssertSuccess (conn -> {
170
196
// Insert some data
171
- conn .preparedQuery ("INSERT INTO ROWTEST (message) VALUES ('" + msg + "')" )
172
- .execute (ctx .asyncAssertSuccess (insertResult -> {
197
+ conn
198
+ .preparedQuery ("INSERT INTO ROWTEST (message) VALUES ('" + msg + "')" )
199
+ .execute ()
200
+ .onComplete (ctx .asyncAssertSuccess (insertResult -> {
173
201
// Find it by msg
174
- conn .preparedQuery ("SELECT * FROM ROWTEST WHERE message = '" + msg + "'" )
175
- .execute (ctx .asyncAssertSuccess (rows -> {
202
+ conn
203
+ .preparedQuery ("SELECT * FROM ROWTEST WHERE message = '" + msg + "'" )
204
+ .execute ()
205
+ .onComplete (ctx .asyncAssertSuccess (rows -> {
176
206
RowId rowId = verifyRowId (ctx , rows , msg );
177
207
// Now find it by rowid
178
- conn .preparedQuery ("SELECT * FROM ROWTEST WHERE id = ?" )
179
- .execute (Tuple .of (rowId ), ctx .asyncAssertSuccess (rows2 -> {
208
+ conn
209
+ .preparedQuery ("SELECT * FROM ROWTEST WHERE id = ?" )
210
+ .execute (Tuple .of (rowId ))
211
+ .onComplete (ctx .asyncAssertSuccess (rows2 -> {
180
212
verifyRowId (ctx , rows2 , msg );
181
213
}));
182
214
}));
183
215
}));
184
216
}));
185
217
}
186
-
218
+
187
219
/**
188
220
* Test to support using enum string values in the Row and Tuple methods.
189
221
*/
190
222
@ Test
191
223
public void testUsingEnumNameValue (TestContext ctx ) {
192
224
connect (ctx .asyncAssertSuccess (conn -> {
193
225
conn .preparedQuery ("INSERT INTO db2_types (id,test_vchar) VALUES (?, ?)" )
194
- .execute (Tuple .of (10 , Days .WEDNESDAY ), ctx .asyncAssertSuccess (insertResult -> {
195
- conn .preparedQuery ("SELECT id,test_vchar FROM db2_types WHERE id = 10" )
196
- .execute (ctx .asyncAssertSuccess (rows -> {
226
+ .execute (Tuple .of (10 , Days .WEDNESDAY ))
227
+ .onComplete (ctx .asyncAssertSuccess (insertResult -> {
228
+ conn
229
+ .preparedQuery ("SELECT id,test_vchar FROM db2_types WHERE id = 10" )
230
+ .execute ()
231
+ .onComplete (ctx .asyncAssertSuccess (rows -> {
197
232
ctx .assertEquals (1 , rows .size ());
198
233
Row row = rows .iterator ().next ();
199
234
ctx .assertEquals (10 , row .getInteger (0 ));
@@ -210,9 +245,12 @@ public void testUsingEnumNameValue(TestContext ctx) {
210
245
public void testUsingEnumOrdinalValue (TestContext ctx ) {
211
246
connect (ctx .asyncAssertSuccess (conn -> {
212
247
conn .preparedQuery ("INSERT INTO db2_types (id,test_int) VALUES (?, ?)" )
213
- .execute (Tuple .of (11 , Days .FRIDAY .ordinal ()), ctx .asyncAssertSuccess (insertResult -> {
214
- conn .preparedQuery ("SELECT id,test_int FROM db2_types WHERE id = 11" )
215
- .execute (ctx .asyncAssertSuccess (rows -> {
248
+ .execute (Tuple .of (11 , Days .FRIDAY .ordinal ()))
249
+ .onComplete (ctx .asyncAssertSuccess (insertResult -> {
250
+ conn
251
+ .preparedQuery ("SELECT id,test_int FROM db2_types WHERE id = 11" )
252
+ .execute ()
253
+ .onComplete (ctx .asyncAssertSuccess (rows -> {
216
254
ctx .assertEquals (1 , rows .size ());
217
255
Row row = rows .iterator ().next ();
218
256
ctx .assertEquals (11 , row .getInteger (0 ));
@@ -221,7 +259,7 @@ public void testUsingEnumOrdinalValue(TestContext ctx) {
221
259
}));
222
260
}));
223
261
}
224
-
262
+
225
263
private RowId verifyRowId (TestContext ctx , RowSet <Row > rows , String msg ) {
226
264
ctx .assertEquals (1 , rows .size ());
227
265
Row row = rows .iterator ().next ();
0 commit comments