Skip to content

Commit 61bddf9

Browse files
authored
[INTERNAL] Add tx type support to sync API (#1429)
1 parent 12bf0e7 commit 61bddf9

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

driver/src/main/java/org/neo4j/driver/internal/InternalSession.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,12 @@ public Transaction beginTransaction() {
9090

9191
@Override
9292
public Transaction beginTransaction(TransactionConfig config) {
93-
UnmanagedTransaction tx = Futures.blockingGet(
94-
session.beginTransactionAsync(config),
93+
return beginTransaction(config, null);
94+
}
95+
96+
public Transaction beginTransaction(TransactionConfig config, String txType) {
97+
var tx = Futures.blockingGet(
98+
session.beginTransactionAsync(config, txType),
9599
() -> terminateConnectionOnThreadInterrupt("Thread interrupted while starting a transaction"));
96100
return new InternalTransaction(tx);
97101
}

driver/src/test/java/org/neo4j/driver/internal/InternalSessionTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
*/
1919
package org.neo4j.driver.internal;
2020

21+
import static java.util.concurrent.CompletableFuture.completedFuture;
2122
import static org.junit.jupiter.api.Assertions.assertEquals;
2223
import static org.mockito.ArgumentMatchers.any;
2324
import static org.mockito.BDDMockito.given;
@@ -28,13 +29,15 @@
2829
import java.util.List;
2930
import java.util.function.Consumer;
3031
import org.junit.jupiter.api.BeforeEach;
32+
import org.junit.jupiter.api.Test;
3133
import org.junit.jupiter.params.ParameterizedTest;
3234
import org.junit.jupiter.params.provider.MethodSource;
3335
import org.neo4j.driver.Session;
3436
import org.neo4j.driver.TransactionCallback;
3537
import org.neo4j.driver.TransactionConfig;
3638
import org.neo4j.driver.TransactionContext;
3739
import org.neo4j.driver.internal.async.NetworkSession;
40+
import org.neo4j.driver.internal.async.UnmanagedTransaction;
3841
import org.neo4j.driver.internal.retry.RetryLogic;
3942

4043
public class InternalSessionTest {
@@ -84,6 +87,19 @@ void shouldDelegateExecuteReadToRetryLogic(ExecuteVariation executeVariation) {
8487
then(logic).should().retry(any());
8588
}
8689

90+
@Test
91+
void shouldDelegateBeginWithType() {
92+
var internalSession = (InternalSession) session;
93+
var config = TransactionConfig.empty();
94+
var type = "TYPE";
95+
given(networkSession.beginTransactionAsync(config, type))
96+
.willReturn(completedFuture(mock(UnmanagedTransaction.class)));
97+
98+
internalSession.beginTransaction(config, type);
99+
100+
then(networkSession).should().beginTransactionAsync(config, type);
101+
}
102+
87103
static List<ExecuteVariation> executeVariations() {
88104
return Arrays.asList(
89105
new ExecuteVariation(false, false, false),

0 commit comments

Comments
 (0)