|
28 | 28 | import java.util.concurrent.atomic.AtomicBoolean; |
29 | 29 | import java.util.concurrent.atomic.AtomicInteger; |
30 | 30 | import java.util.concurrent.atomic.AtomicReference; |
| 31 | +import java.util.function.BiFunction; |
31 | 32 | import java.util.function.Consumer; |
32 | 33 |
|
33 | 34 | import static org.hamcrest.Matchers.containsString; |
@@ -610,16 +611,26 @@ public String toString() { |
610 | 611 | ); |
611 | 612 | } |
612 | 613 |
|
| 614 | + public void testReleaseBefore() { |
| 615 | + runReleaseListenerTest(true, false, ActionListener::releaseBefore); |
| 616 | + runReleaseListenerTest(true, true, ActionListener::releaseBefore); |
| 617 | + runReleaseListenerTest(false, false, ActionListener::releaseBefore); |
| 618 | + } |
| 619 | + |
613 | 620 | public void testReleaseAfter() { |
614 | | - runReleaseAfterTest(true, false); |
615 | | - runReleaseAfterTest(true, true); |
616 | | - runReleaseAfterTest(false, false); |
| 621 | + runReleaseListenerTest(true, false, ActionListener::releaseAfter); |
| 622 | + runReleaseListenerTest(true, true, ActionListener::releaseAfter); |
| 623 | + runReleaseListenerTest(false, false, ActionListener::releaseAfter); |
617 | 624 | } |
618 | 625 |
|
619 | | - private static void runReleaseAfterTest(boolean successResponse, final boolean throwFromOnResponse) { |
| 626 | + private static void runReleaseListenerTest( |
| 627 | + boolean successResponse, |
| 628 | + final boolean throwFromOnResponse, |
| 629 | + BiFunction<ActionListener<Void>, Releasable, ActionListener<Void>> releaseListenerProvider |
| 630 | + ) { |
620 | 631 | final AtomicBoolean released = new AtomicBoolean(); |
621 | 632 | final String description = randomAlphaOfLength(10); |
622 | | - final ActionListener<Void> l = ActionListener.releaseAfter(new ActionListener<>() { |
| 633 | + final ActionListener<Void> l = releaseListenerProvider.apply(new ActionListener<>() { |
623 | 634 | @Override |
624 | 635 | public void onResponse(Void unused) { |
625 | 636 | if (throwFromOnResponse) { |
|
0 commit comments