@@ -143,7 +143,7 @@ void testSyncGetResponseFailureWithTimeout() throws InterruptedException, Timeou
143
143
144
144
@ Test
145
145
void testSyncGetResponseSuccessByTriggerWithoutTimeout () throws InterruptedException {
146
- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
146
+ MockFutureTrigger trigger = new MockFutureTrigger ();
147
147
DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , null , trigger );
148
148
new Thread (() -> {
149
149
try {
@@ -163,7 +163,7 @@ void testSyncGetResponseSuccessByTriggerWithoutTimeout() throws InterruptedExcep
163
163
164
164
@ Test
165
165
void testSyncGetResponseFailureByTriggerWithoutTimeout () throws InterruptedException {
166
- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
166
+ MockFutureTrigger trigger = new MockFutureTrigger ();
167
167
DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , null , trigger );
168
168
new Thread (() -> {
169
169
try {
@@ -183,7 +183,7 @@ void testSyncGetResponseFailureByTriggerWithoutTimeout() throws InterruptedExcep
183
183
184
184
@ Test
185
185
void testSyncGetResponseSuccessByTriggerWithTimeout () throws InterruptedException , TimeoutException {
186
- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
186
+ MockFutureTrigger trigger = new MockFutureTrigger ();
187
187
DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , null , trigger );
188
188
new Thread (() -> {
189
189
try {
@@ -199,12 +199,13 @@ void testSyncGetResponseSuccessByTriggerWithTimeout() throws InterruptedExceptio
199
199
assertTrue (requestFuture .isDone ());
200
200
assertTrue (requestFuture .getTimeStamp () >= timestamp );
201
201
assertFalse (trigger .isTimeout );
202
+ assertFalse (trigger .isCancel );
202
203
}
203
204
204
205
@ Test
205
206
void testSyncGetResponseFailureByTriggerWithTimeout () throws InterruptedException , TimeoutException {
206
207
assertThrows (TimeoutException .class , () -> {
207
- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
208
+ MockFutureTrigger trigger = new MockFutureTrigger ();
208
209
DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , null , trigger );
209
210
try {
210
211
requestFuture .get (100L );
@@ -216,7 +217,7 @@ void testSyncGetResponseFailureByTriggerWithTimeout() throws InterruptedExceptio
216
217
217
218
@ Test
218
219
void testASyncGetResponseSuccessWithoutTimeout () throws InterruptedException {
219
- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
220
+ MockFutureTrigger trigger = new MockFutureTrigger ();
220
221
MockRequestCallback callback = new MockRequestCallback (200L );
221
222
DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , callback , trigger );
222
223
new Thread (() -> {
@@ -230,12 +231,13 @@ void testASyncGetResponseSuccessWithoutTimeout() throws InterruptedException {
230
231
assertEquals (response , callback .response );
231
232
assertNull (callback .exception );
232
233
assertFalse (trigger .isTimeout );
234
+ assertFalse (trigger .isTimeout );
233
235
assertEquals (callback , requestFuture .getRequestCallBack ());
234
236
}
235
237
236
238
@ Test
237
239
void testASyncGetResponseSuccessWithoutTimeoutByExecutor () throws InterruptedException {
238
- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
240
+ MockFutureTrigger trigger = new MockFutureTrigger ();
239
241
MockRequestCallback callback = new MockRequestCallback (executor , 200L );
240
242
DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , callback , trigger );
241
243
new Thread (() -> {
@@ -252,7 +254,7 @@ void testASyncGetResponseSuccessWithoutTimeoutByExecutor() throws InterruptedExc
252
254
253
255
@ Test
254
256
void testASyncGetResponseFailureWithoutTimeout () throws InterruptedException {
255
- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
257
+ MockFutureTrigger trigger = new MockFutureTrigger ();
256
258
MockRequestCallback callback = new MockRequestCallback (1000L );
257
259
DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , callback , trigger );
258
260
new Thread (() -> {
@@ -271,7 +273,7 @@ void testASyncGetResponseFailureWithoutTimeout() throws InterruptedException {
271
273
272
274
@ Test
273
275
void testASyncGetResponseFailureWithTimeout () throws InterruptedException {
274
- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
276
+ MockFutureTrigger trigger = new MockFutureTrigger ();
275
277
MockRequestCallback callback = new MockRequestCallback (100L );
276
278
final DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , callback ,
277
279
trigger );
@@ -282,14 +284,75 @@ void testASyncGetResponseFailureWithTimeout() throws InterruptedException {
282
284
assertEquals (callback , requestFuture .getRequestCallBack ());
283
285
}
284
286
285
- private class MockTimeoutInnerTrigger implements DefaultRequestFuture .TimeoutInnerTrigger {
287
+ @ Test
288
+ void testSyncRequestFutureCancelFailedWithTimeout () throws InterruptedException {
289
+ MockFutureTrigger trigger = new MockFutureTrigger ();
290
+ final DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , null , trigger );
291
+ assertThrows (TimeoutException .class , () -> requestFuture .get (100L ));
292
+ requestFuture .cancel (true );
293
+ assertTrue (trigger .isTimeout );
294
+ assertFalse (trigger .isCancel );
295
+ }
296
+
297
+ @ Test
298
+ void testSyncRequestFutureCancelFailed () throws InterruptedException {
299
+ MockFutureTrigger trigger = new MockFutureTrigger ();
300
+ final DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , null , trigger );
301
+ requestFuture .cancel (true );
302
+ assertFalse (trigger .isTimeout );
303
+ assertFalse (trigger .isCancel );
304
+ }
305
+
306
+ @ Test
307
+ void testASyncRequestFutureCancelFailedWithTrigger () throws InterruptedException {
308
+ MockFutureTrigger trigger = new MockFutureTrigger ();
309
+ MockRequestCallback callback = new MockRequestCallback (100L );
310
+ final DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , callback ,
311
+ trigger );
312
+ TimeUnit .MILLISECONDS .sleep (500L );
313
+ requestFuture .cancel (true );
314
+ assertNull (callback .response );
315
+ assertTrue (callback .exception instanceof TimeoutException );
316
+ assertTrue (trigger .isTimeout );
317
+ assertFalse (trigger .isCancel );
318
+ assertEquals (callback , requestFuture .getRequestCallBack ());
319
+ }
320
+
321
+ @ Test
322
+ void testASyncRequestFutureCancelSuccessWithTrigger () throws InterruptedException {
323
+ MockFutureTrigger trigger = new MockFutureTrigger ();
324
+ MockRequestCallback callback = new MockRequestCallback (500L );
325
+ final DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , callback ,
326
+ trigger );
327
+ TimeUnit .MILLISECONDS .sleep (100L );
328
+ requestFuture .cancel (true );
329
+ assertNull (callback .response );
330
+ assertNull (callback .exception );
331
+ assertFalse (trigger .isTimeout );
332
+ assertTrue (trigger .isCancel );
333
+ assertEquals (callback , requestFuture .getRequestCallBack ());
334
+ }
335
+
336
+ private class MockFutureTrigger implements DefaultRequestFuture .FutureTrigger {
286
337
287
338
boolean isTimeout ;
288
339
340
+ boolean isCancel ;
341
+
342
+ @ Override
343
+ public void defaultTrigger () {
344
+ // do nothing
345
+ }
346
+
289
347
@ Override
290
348
public void triggerOnTimeout () {
291
349
isTimeout = true ;
292
350
}
351
+
352
+ @ Override
353
+ public void triggerOnCancel () {
354
+ isCancel = true ;
355
+ }
293
356
}
294
357
295
358
private class MockRequestCallback implements RequestCallBack <Response > {
@@ -331,4 +394,4 @@ public void onException(Throwable e) {
331
394
exception = e ;
332
395
}
333
396
}
334
- }
397
+ }
0 commit comments