|
24 | 24 | import static org.junit.Assert.assertFalse;
|
25 | 25 | import static org.junit.jupiter.api.Assertions.assertThrows;
|
26 | 26 | import static org.mockito.ArgumentMatchers.any;
|
| 27 | +import static org.mockito.BDDMockito.given; |
| 28 | +import static org.mockito.BDDMockito.then; |
27 | 29 | import static org.mockito.Mockito.mock;
|
28 | 30 | import static org.mockito.Mockito.verify;
|
29 | 31 | import static org.mockito.Mockito.when;
|
|
38 | 40 | import static org.neo4j.driver.testutil.TestUtil.verifyRollbackTx;
|
39 | 41 | import static org.neo4j.driver.testutil.TestUtil.verifyRunAndPull;
|
40 | 42 |
|
| 43 | +import java.util.concurrent.CompletableFuture; |
41 | 44 | import java.util.function.Consumer;
|
42 | 45 | import java.util.function.Function;
|
43 | 46 | import java.util.stream.Stream;
|
|
50 | 53 | import org.neo4j.driver.Transaction;
|
51 | 54 | import org.neo4j.driver.Value;
|
52 | 55 | import org.neo4j.driver.internal.async.ConnectionContext;
|
| 56 | +import org.neo4j.driver.internal.async.UnmanagedTransaction; |
53 | 57 | import org.neo4j.driver.internal.messaging.v4.BoltProtocolV4;
|
54 | 58 | import org.neo4j.driver.internal.spi.Connection;
|
55 | 59 | import org.neo4j.driver.internal.spi.ConnectionProvider;
|
@@ -150,6 +154,17 @@ void shouldReleaseConnectionWhenFailedToClose() {
|
150 | 154 | shouldReleaseConnectionWhenFailedToAction(Transaction::close);
|
151 | 155 | }
|
152 | 156 |
|
| 157 | + @Test |
| 158 | + void shouldDelegateInterrupt() { |
| 159 | + var unmanagedTx = mock(UnmanagedTransaction.class); |
| 160 | + given(unmanagedTx.interruptAsync()).willReturn(CompletableFuture.completedFuture(null)); |
| 161 | + var tx = new InternalTransaction(unmanagedTx); |
| 162 | + |
| 163 | + tx.interrupt(); |
| 164 | + |
| 165 | + then(unmanagedTx).should().interruptAsync(); |
| 166 | + } |
| 167 | + |
153 | 168 | private void shouldReleaseConnectionWhenFailedToAction(Consumer<Transaction> txAction) {
|
154 | 169 | setupFailingRollback(connection);
|
155 | 170 | assertThrows(Exception.class, () -> txAction.accept(tx));
|
|
0 commit comments