@@ -143,7 +143,7 @@ void testSyncGetResponseFailureWithTimeout() throws InterruptedException, Timeou
143143
144144 @ Test
145145 void testSyncGetResponseSuccessByTriggerWithoutTimeout () throws InterruptedException {
146- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
146+ MockFutureTrigger trigger = new MockFutureTrigger ();
147147 DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , null , trigger );
148148 new Thread (() -> {
149149 try {
@@ -163,7 +163,7 @@ void testSyncGetResponseSuccessByTriggerWithoutTimeout() throws InterruptedExcep
163163
164164 @ Test
165165 void testSyncGetResponseFailureByTriggerWithoutTimeout () throws InterruptedException {
166- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
166+ MockFutureTrigger trigger = new MockFutureTrigger ();
167167 DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , null , trigger );
168168 new Thread (() -> {
169169 try {
@@ -183,7 +183,7 @@ void testSyncGetResponseFailureByTriggerWithoutTimeout() throws InterruptedExcep
183183
184184 @ Test
185185 void testSyncGetResponseSuccessByTriggerWithTimeout () throws InterruptedException , TimeoutException {
186- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
186+ MockFutureTrigger trigger = new MockFutureTrigger ();
187187 DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , null , trigger );
188188 new Thread (() -> {
189189 try {
@@ -199,12 +199,13 @@ void testSyncGetResponseSuccessByTriggerWithTimeout() throws InterruptedExceptio
199199 assertTrue (requestFuture .isDone ());
200200 assertTrue (requestFuture .getTimeStamp () >= timestamp );
201201 assertFalse (trigger .isTimeout );
202+ assertFalse (trigger .isCancel );
202203 }
203204
204205 @ Test
205206 void testSyncGetResponseFailureByTriggerWithTimeout () throws InterruptedException , TimeoutException {
206207 assertThrows (TimeoutException .class , () -> {
207- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
208+ MockFutureTrigger trigger = new MockFutureTrigger ();
208209 DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , null , trigger );
209210 try {
210211 requestFuture .get (100L );
@@ -216,7 +217,7 @@ void testSyncGetResponseFailureByTriggerWithTimeout() throws InterruptedExceptio
216217
217218 @ Test
218219 void testASyncGetResponseSuccessWithoutTimeout () throws InterruptedException {
219- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
220+ MockFutureTrigger trigger = new MockFutureTrigger ();
220221 MockRequestCallback callback = new MockRequestCallback (200L );
221222 DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , callback , trigger );
222223 new Thread (() -> {
@@ -230,12 +231,13 @@ void testASyncGetResponseSuccessWithoutTimeout() throws InterruptedException {
230231 assertEquals (response , callback .response );
231232 assertNull (callback .exception );
232233 assertFalse (trigger .isTimeout );
234+ assertFalse (trigger .isTimeout );
233235 assertEquals (callback , requestFuture .getRequestCallBack ());
234236 }
235237
236238 @ Test
237239 void testASyncGetResponseSuccessWithoutTimeoutByExecutor () throws InterruptedException {
238- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
240+ MockFutureTrigger trigger = new MockFutureTrigger ();
239241 MockRequestCallback callback = new MockRequestCallback (executor , 200L );
240242 DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , callback , trigger );
241243 new Thread (() -> {
@@ -252,7 +254,7 @@ void testASyncGetResponseSuccessWithoutTimeoutByExecutor() throws InterruptedExc
252254
253255 @ Test
254256 void testASyncGetResponseFailureWithoutTimeout () throws InterruptedException {
255- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
257+ MockFutureTrigger trigger = new MockFutureTrigger ();
256258 MockRequestCallback callback = new MockRequestCallback (1000L );
257259 DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , callback , trigger );
258260 new Thread (() -> {
@@ -271,7 +273,7 @@ void testASyncGetResponseFailureWithoutTimeout() throws InterruptedException {
271273
272274 @ Test
273275 void testASyncGetResponseFailureWithTimeout () throws InterruptedException {
274- MockTimeoutInnerTrigger trigger = new MockTimeoutInnerTrigger ();
276+ MockFutureTrigger trigger = new MockFutureTrigger ();
275277 MockRequestCallback callback = new MockRequestCallback (100L );
276278 final DefaultRequestFuture requestFuture = new DefaultRequestFuture (CONNECTION_ID , REQUEST_ID , callback ,
277279 trigger );
@@ -282,14 +284,75 @@ void testASyncGetResponseFailureWithTimeout() throws InterruptedException {
282284 assertEquals (callback , requestFuture .getRequestCallBack ());
283285 }
284286
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 {
286337
287338 boolean isTimeout ;
288339
340+ boolean isCancel ;
341+
342+ @ Override
343+ public void defaultTrigger () {
344+ // do nothing
345+ }
346+
289347 @ Override
290348 public void triggerOnTimeout () {
291349 isTimeout = true ;
292350 }
351+
352+ @ Override
353+ public void triggerOnCancel () {
354+ isCancel = true ;
355+ }
293356 }
294357
295358 private class MockRequestCallback implements RequestCallBack <Response > {
@@ -331,4 +394,4 @@ public void onException(Throwable e) {
331394 exception = e ;
332395 }
333396 }
334- }
397+ }
0 commit comments