Update Neo4j driver to 2.0.0-alpha03.
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -98,7 +98,7 @@
|
||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||
<mockito.version>2.23.4</mockito.version>
|
||||
<neo4j-java-driver.version>2.0.0-alpha02</neo4j-java-driver.version>
|
||||
<neo4j-java-driver.version>2.0.0-alpha03</neo4j-java-driver.version>
|
||||
<neo4j.version>3.5.2</neo4j.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<reactive-streams.version>1.2.1</reactive-streams.version>
|
||||
|
||||
@@ -72,7 +72,7 @@ class DefaultNeo4jClient implements Neo4jClient {
|
||||
|
||||
StatementRunner statementRunner = retrieveTransaction(driver, targetDatabase)
|
||||
.map(StatementRunner.class::cast)
|
||||
.orElseGet(() -> driver.session(defaultSessionParameters(targetDatabase)));
|
||||
.orElseGet(() -> driver.session(defaultSessionConfig(targetDatabase)));
|
||||
|
||||
return (AutoCloseableStatementRunner) Proxy.newProxyInstance(StatementRunner.class.getClassLoader(),
|
||||
new Class<?>[] { AutoCloseableStatementRunner.class },
|
||||
|
||||
@@ -69,7 +69,7 @@ class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
|
||||
return retrieveReactiveTransaction(driver, targetDatabase)
|
||||
.map(rxTransaction -> new RxStatementRunnerHolder(rxTransaction, Mono.empty(), Mono.empty())) //
|
||||
.switchIfEmpty(
|
||||
Mono.using(() -> driver.rxSession(defaultSessionParameters(targetDatabase)),
|
||||
Mono.using(() -> driver.rxSession(defaultSessionConfig(targetDatabase)),
|
||||
session -> Mono.from(session.beginTransaction())
|
||||
.map(tx -> new RxStatementRunnerHolder(tx, tx.commit(), tx.rollback())), RxSession::close)
|
||||
);
|
||||
|
||||
@@ -25,7 +25,6 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.apiguardian.api.API;
|
||||
import org.neo4j.driver.AccessMode;
|
||||
import org.neo4j.driver.Driver;
|
||||
import org.neo4j.driver.Session;
|
||||
import org.neo4j.driver.Transaction;
|
||||
@@ -96,7 +95,7 @@ public class Neo4jTransactionManager extends AbstractPlatformTransactionManager
|
||||
}
|
||||
|
||||
// Otherwise we open a session and synchronize it.
|
||||
Session session = driver.session(defaultSessionParameters(targetDatabase));
|
||||
Session session = driver.session(defaultSessionConfig(targetDatabase));
|
||||
Transaction transaction = session.beginTransaction(TransactionConfig.empty());
|
||||
// Manually create a new synchronization
|
||||
connectionHolder = new Neo4jTransactionHolder(targetDatabase, session, transaction);
|
||||
@@ -144,14 +143,13 @@ public class Neo4jTransactionManager extends AbstractPlatformTransactionManager
|
||||
|
||||
TransactionConfig transactionConfig = createTransactionConfigFrom(definition);
|
||||
boolean readOnly = definition.isReadOnly();
|
||||
AccessMode accessMode = readOnly ? AccessMode.READ : AccessMode.WRITE;
|
||||
List<String> bookmarks = Collections.emptyList(); // TODO Bookmarksupport
|
||||
|
||||
|
||||
TransactionSynchronizationManager.setCurrentTransactionReadOnly(readOnly);
|
||||
|
||||
try {
|
||||
Session session = this.driver
|
||||
.session(t -> t.withDefaultAccessMode(accessMode).withBookmarks(bookmarks).withDatabase(databaseName));
|
||||
List<String> bookmarks = Collections.emptyList(); // TODO Bookmarksupport;
|
||||
Session session = this.driver.session(sessionConfig(readOnly, bookmarks, databaseName));
|
||||
Transaction nativeTransaction = session.beginTransaction(transactionConfig);
|
||||
|
||||
Neo4jTransactionHolder transactionHolder =
|
||||
|
||||
@@ -20,11 +20,11 @@ package org.neo4j.springframework.data.core.transaction;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.Collections;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.List;
|
||||
|
||||
import org.neo4j.driver.AccessMode;
|
||||
import org.neo4j.driver.SessionParametersTemplate;
|
||||
import org.neo4j.driver.TransactionConfig;
|
||||
import org.neo4j.driver.internal.SessionConfig;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.transaction.IllegalTransactionStateException;
|
||||
import org.springframework.transaction.InvalidIsolationLevelException;
|
||||
@@ -43,15 +43,21 @@ public final class Neo4jTransactionUtils {
|
||||
* @param databaseName The database to use. May be null, which then designates the default database.
|
||||
* @return Session parameters to configure the default session used
|
||||
*/
|
||||
public static Consumer<SessionParametersTemplate> defaultSessionParameters(@Nullable String databaseName) {
|
||||
return (SessionParametersTemplate t) -> {
|
||||
t.withDefaultAccessMode(AccessMode.WRITE)
|
||||
.withBookmarks(Collections.EMPTY_LIST);
|
||||
public static SessionConfig defaultSessionConfig(@Nullable String databaseName) {
|
||||
return sessionConfig(false, Collections.emptyList(), databaseName);
|
||||
}
|
||||
|
||||
if (databaseName != null) {
|
||||
t.withDatabase(databaseName);
|
||||
}
|
||||
};
|
||||
public static SessionConfig sessionConfig(boolean readOnly, List<String> bookmarks,
|
||||
@Nullable String databaseName) {
|
||||
SessionConfig.Builder builder = SessionConfig.builder()
|
||||
.withDefaultAccessMode(readOnly ? AccessMode.READ : AccessMode.WRITE)
|
||||
.withBookmarks(bookmarks);
|
||||
|
||||
if (databaseName != null) {
|
||||
builder.withDatabase(databaseName);
|
||||
}
|
||||
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -26,7 +26,6 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import org.apiguardian.api.API;
|
||||
import org.neo4j.driver.AccessMode;
|
||||
import org.neo4j.driver.Driver;
|
||||
import org.neo4j.driver.TransactionConfig;
|
||||
import org.neo4j.driver.reactive.RxSession;
|
||||
@@ -85,7 +84,7 @@ public class ReactiveNeo4jTransactionManager extends AbstractReactiveTransaction
|
||||
|
||||
// Otherwise open up a new native transaction
|
||||
return Mono.defer(() -> {
|
||||
RxSession session = driver.rxSession(defaultSessionParameters(targetDatabase));
|
||||
RxSession session = driver.rxSession(defaultSessionConfig(targetDatabase));
|
||||
return Mono.from(session.beginTransaction(TransactionConfig.empty())).map(tx -> {
|
||||
|
||||
ReactiveNeo4jTransactionHolder newConnectionHolder = new ReactiveNeo4jTransactionHolder(
|
||||
@@ -147,13 +146,11 @@ public class ReactiveNeo4jTransactionManager extends AbstractReactiveTransaction
|
||||
|
||||
TransactionConfig transactionConfig = createTransactionConfigFrom(transactionDefinition);
|
||||
boolean readOnly = transactionDefinition.isReadOnly();
|
||||
AccessMode accessMode = readOnly ? AccessMode.READ : AccessMode.WRITE;
|
||||
List<String> bookmarks = Collections.emptyList(); // TODO Bookmarksupport
|
||||
|
||||
transactionSynchronizationManager.setCurrentTransactionReadOnly(readOnly);
|
||||
|
||||
RxSession session = this.driver
|
||||
.rxSession(t -> t.withDefaultAccessMode(accessMode).withBookmarks(bookmarks).withDatabase(databaseName));
|
||||
List<String> bookmarks = Collections.emptyList(); // TODO Bookmarksupport;
|
||||
RxSession session = this.driver.rxSession(sessionConfig(readOnly, bookmarks, databaseName));
|
||||
|
||||
return Mono.from(session.beginTransaction(transactionConfig)).doOnNext(nativeTransaction -> {
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@@ -46,13 +45,12 @@ import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.neo4j.driver.AccessMode;
|
||||
import org.neo4j.driver.Driver;
|
||||
import org.neo4j.driver.Record;
|
||||
import org.neo4j.driver.Session;
|
||||
import org.neo4j.driver.StatementResult;
|
||||
import org.neo4j.driver.Values;
|
||||
import org.neo4j.driver.internal.SessionParameters;
|
||||
import org.neo4j.driver.internal.SessionConfig;
|
||||
import org.neo4j.driver.summary.ResultSummary;
|
||||
import org.neo4j.driver.types.TypeSystem;
|
||||
|
||||
@@ -65,10 +63,7 @@ class Neo4jClientTest {
|
||||
@Mock
|
||||
private Driver driver;
|
||||
|
||||
private ArgumentCaptor<Consumer> sessionTemplateCaptor = ArgumentCaptor.forClass(Consumer.class);
|
||||
|
||||
@Mock
|
||||
private SessionParameters.Template sessionParametersTemplate;
|
||||
private ArgumentCaptor<SessionConfig> configArgumentCaptor = ArgumentCaptor.forClass(SessionConfig.class);
|
||||
|
||||
@Mock
|
||||
private Session session;
|
||||
@@ -91,11 +86,7 @@ class Neo4jClientTest {
|
||||
@BeforeEach
|
||||
void prepareMocks() {
|
||||
|
||||
when(sessionParametersTemplate.withBookmarks(anyList())).thenReturn(sessionParametersTemplate);
|
||||
when(sessionParametersTemplate.withDefaultAccessMode(any(AccessMode.class)))
|
||||
.thenReturn(sessionParametersTemplate);
|
||||
|
||||
when(driver.session(any(Consumer.class))).thenReturn(session);
|
||||
when(driver.session(any(SessionConfig.class))).thenReturn(session);
|
||||
when(driver.defaultTypeSystem()).thenReturn(typeSystem);
|
||||
}
|
||||
|
||||
@@ -150,7 +141,6 @@ class Neo4jClientTest {
|
||||
@Test
|
||||
void databaseSelectionShouldBePossibleOnlyOnce() {
|
||||
|
||||
when(sessionParametersTemplate.withDatabase(anyString())).thenReturn(sessionParametersTemplate);
|
||||
when(session.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(statementResult.stream()).thenReturn(Stream.of(record1, record2));
|
||||
|
||||
@@ -200,8 +190,6 @@ class Neo4jClientTest {
|
||||
@Test
|
||||
void withDatabase() {
|
||||
|
||||
when(sessionParametersTemplate.withDatabase(anyString())).thenReturn(sessionParametersTemplate);
|
||||
|
||||
Neo4jClient client = Neo4jClient.create(driver);
|
||||
Optional<Integer> result = client
|
||||
.delegateTo(runner -> Optional.of(42))
|
||||
@@ -419,12 +407,13 @@ class Neo4jClientTest {
|
||||
|
||||
void verifyDatabaseSelection(String targetDatabase) {
|
||||
|
||||
verify(driver).session(sessionTemplateCaptor.capture());
|
||||
sessionTemplateCaptor.getValue().accept(sessionParametersTemplate);
|
||||
verify(driver).session(configArgumentCaptor.capture());
|
||||
SessionConfig config = configArgumentCaptor.getValue();
|
||||
|
||||
if (targetDatabase != null) {
|
||||
verify(sessionParametersTemplate).withDatabase(targetDatabase);
|
||||
assertThat(config.database()).isPresent().contains(targetDatabase);
|
||||
} else {
|
||||
verify(sessionParametersTemplate, never()).withDatabase(any());
|
||||
assertThat(config.database()).isEmpty();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
package org.neo4j.springframework.data.core;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.mockito.hamcrest.MockitoHamcrest.argThat;
|
||||
@@ -31,7 +32,6 @@ import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@@ -42,11 +42,10 @@ import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.neo4j.driver.AccessMode;
|
||||
import org.neo4j.driver.Driver;
|
||||
import org.neo4j.driver.Record;
|
||||
import org.neo4j.driver.Values;
|
||||
import org.neo4j.driver.internal.SessionParameters;
|
||||
import org.neo4j.driver.internal.SessionConfig;
|
||||
import org.neo4j.driver.reactive.RxSession;
|
||||
import org.neo4j.driver.reactive.RxStatementResult;
|
||||
import org.neo4j.driver.reactive.RxTransaction;
|
||||
@@ -70,10 +69,7 @@ class ReactiveNeo4jClientTest {
|
||||
@Mock
|
||||
private TypeSystem typeSystem;
|
||||
|
||||
private ArgumentCaptor<Consumer> sessionTemplateCaptor = ArgumentCaptor.forClass(Consumer.class);
|
||||
|
||||
@Mock
|
||||
private SessionParameters.Template sessionParametersTemplate;
|
||||
private ArgumentCaptor<SessionConfig> configArgumentCaptor = ArgumentCaptor.forClass(SessionConfig.class);
|
||||
|
||||
@Mock
|
||||
private RxSession session;
|
||||
@@ -98,11 +94,7 @@ class ReactiveNeo4jClientTest {
|
||||
|
||||
when(driver.defaultTypeSystem()).thenReturn(typeSystem);
|
||||
|
||||
when(sessionParametersTemplate.withBookmarks(anyList())).thenReturn(sessionParametersTemplate);
|
||||
when(sessionParametersTemplate.withDefaultAccessMode(any(AccessMode.class)))
|
||||
.thenReturn(sessionParametersTemplate);
|
||||
|
||||
when(driver.rxSession(any(Consumer.class))).thenReturn(session);
|
||||
when(driver.rxSession(any(SessionConfig.class))).thenReturn(session);
|
||||
when(session.beginTransaction()).thenReturn(Mono.just(transaction));
|
||||
|
||||
when(session.close()).thenReturn(Mono.empty());
|
||||
@@ -164,7 +156,6 @@ class ReactiveNeo4jClientTest {
|
||||
@Test
|
||||
void databaseSelectionShouldBePossibleOnlyOnce() {
|
||||
|
||||
when(sessionParametersTemplate.withDatabase(anyString())).thenReturn(sessionParametersTemplate);
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(transaction.commit()).thenReturn(Mono.empty());
|
||||
when(statementResult.records()).thenReturn(Flux.just(record1, record2));
|
||||
@@ -224,7 +215,6 @@ class ReactiveNeo4jClientTest {
|
||||
@Test
|
||||
void withDatabase() {
|
||||
|
||||
when(sessionParametersTemplate.withDatabase(anyString())).thenReturn(sessionParametersTemplate);
|
||||
when(transaction.commit()).thenReturn(Mono.empty());
|
||||
|
||||
ReactiveNeo4jClient client = ReactiveNeo4jClient.create(driver);
|
||||
@@ -421,12 +411,14 @@ class ReactiveNeo4jClientTest {
|
||||
}
|
||||
|
||||
void verifyDatabaseSelection(String targetDatabase) {
|
||||
verify(driver).rxSession(sessionTemplateCaptor.capture());
|
||||
sessionTemplateCaptor.getValue().accept(sessionParametersTemplate);
|
||||
|
||||
verify(driver).rxSession(configArgumentCaptor.capture());
|
||||
SessionConfig config = configArgumentCaptor.getValue();
|
||||
|
||||
if (targetDatabase != null) {
|
||||
verify(sessionParametersTemplate).withDatabase(targetDatabase);
|
||||
assertThat(config.database()).isPresent().contains(targetDatabase);
|
||||
} else {
|
||||
verify(sessionParametersTemplate, never()).withDatabase(any());
|
||||
assertThat(config.database()).isEmpty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
package org.neo4j.springframework.data.core;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
@@ -25,7 +26,6 @@ import reactor.core.publisher.Mono;
|
||||
import reactor.test.StepVerifier;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@@ -35,12 +35,11 @@ import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.neo4j.driver.AccessMode;
|
||||
import org.neo4j.driver.Driver;
|
||||
import org.neo4j.driver.Session;
|
||||
import org.neo4j.driver.Transaction;
|
||||
import org.neo4j.driver.TransactionConfig;
|
||||
import org.neo4j.driver.internal.SessionParameters;
|
||||
import org.neo4j.driver.internal.SessionConfig;
|
||||
import org.neo4j.driver.reactive.RxSession;
|
||||
import org.neo4j.driver.reactive.RxTransaction;
|
||||
import org.neo4j.driver.types.TypeSystem;
|
||||
@@ -64,16 +63,12 @@ class TransactionHandlingTest {
|
||||
@Mock
|
||||
private TypeSystem typeSystem;
|
||||
|
||||
@Mock
|
||||
private SessionParameters.Template sessionParametersTemplate;
|
||||
|
||||
@BeforeEach
|
||||
void prepareMocks() {
|
||||
|
||||
when(driver.defaultTypeSystem()).thenReturn(typeSystem);
|
||||
}
|
||||
|
||||
|
||||
@AfterEach
|
||||
void verifyTypeSystemOnSession() {
|
||||
|
||||
@@ -92,13 +87,9 @@ class TransactionHandlingTest {
|
||||
@Test
|
||||
void shouldCallCloseOnSession() {
|
||||
|
||||
ArgumentCaptor<Consumer> consumerCaptor = ArgumentCaptor.forClass(Consumer.class);
|
||||
ArgumentCaptor<SessionConfig> configArgumentCaptor = ArgumentCaptor.forClass(SessionConfig.class);
|
||||
|
||||
when(driver.session(any(Consumer.class))).thenReturn(session);
|
||||
when(sessionParametersTemplate.withDatabase(anyString())).thenReturn(sessionParametersTemplate);
|
||||
when(sessionParametersTemplate.withBookmarks(anyList())).thenReturn(sessionParametersTemplate);
|
||||
when(sessionParametersTemplate.withDefaultAccessMode(any(AccessMode.class)))
|
||||
.thenReturn(sessionParametersTemplate);
|
||||
when(driver.session(any(SessionConfig.class))).thenReturn(session);
|
||||
|
||||
// Make template acquire session
|
||||
DefaultNeo4jClient neo4jClient = new DefaultNeo4jClient(driver);
|
||||
@@ -106,14 +97,14 @@ class TransactionHandlingTest {
|
||||
s.run("MATCH (n) RETURN n");
|
||||
}
|
||||
|
||||
verify(driver).session(consumerCaptor.capture());
|
||||
consumerCaptor.getValue().accept(sessionParametersTemplate);
|
||||
verify(sessionParametersTemplate).withDatabase("aDatabase");
|
||||
verify(driver).session(configArgumentCaptor.capture());
|
||||
SessionConfig sessionConfig = configArgumentCaptor.getValue();
|
||||
assertThat(sessionConfig.database()).isPresent().contains("aDatabase");
|
||||
|
||||
verify(session).run(any(String.class));
|
||||
verify(session).close();
|
||||
|
||||
verifyNoMoreInteractions(driver, sessionParametersTemplate, session, transaction);
|
||||
verifyNoMoreInteractions(driver, session, transaction);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -121,7 +112,7 @@ class TransactionHandlingTest {
|
||||
|
||||
AtomicBoolean transactionIsOpen = new AtomicBoolean(true);
|
||||
|
||||
when(driver.session(any(Consumer.class))).thenReturn(session);
|
||||
when(driver.session(any(SessionConfig.class))).thenReturn(session);
|
||||
when(session.isOpen()).thenReturn(true);
|
||||
when(session.beginTransaction(any(TransactionConfig.class))).thenReturn(transaction);
|
||||
// Mock closing of the transaction
|
||||
@@ -168,14 +159,14 @@ class TransactionHandlingTest {
|
||||
DefaultReactiveNeo4jClient neo4jClient = new DefaultReactiveNeo4jClient(driver);
|
||||
neo4jClient.query("RETURN 1").in("aDatabase").fetch().one();
|
||||
|
||||
verify(driver, never()).rxSession(any(Consumer.class));
|
||||
verify(driver, never()).rxSession(any(SessionConfig.class));
|
||||
verifyZeroInteractions(driver, session);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldCloseUnmanagedSessionOnComplete() {
|
||||
|
||||
when(driver.rxSession(any(Consumer.class))).thenReturn(session);
|
||||
when(driver.rxSession(any(SessionConfig.class))).thenReturn(session);
|
||||
when(session.beginTransaction()).thenReturn(Mono.just(transaction));
|
||||
when(transaction.commit()).thenReturn(Mono.empty());
|
||||
when(session.close()).thenReturn(Mono.empty());
|
||||
@@ -188,7 +179,7 @@ class TransactionHandlingTest {
|
||||
.expectNext("1")
|
||||
.verifyComplete();
|
||||
|
||||
verify(driver).rxSession(any(Consumer.class));
|
||||
verify(driver).rxSession(any(SessionConfig.class));
|
||||
verify(session).beginTransaction();
|
||||
verify(transaction).commit();
|
||||
verify(transaction).rollback();
|
||||
@@ -199,8 +190,7 @@ class TransactionHandlingTest {
|
||||
@Test
|
||||
void shouldCloseUnmanagedSessionOnError() {
|
||||
|
||||
|
||||
when(driver.rxSession(any(Consumer.class))).thenReturn(session);
|
||||
when(driver.rxSession(any(SessionConfig.class))).thenReturn(session);
|
||||
when(session.beginTransaction()).thenReturn(Mono.just(transaction));
|
||||
when(transaction.rollback()).thenReturn(Mono.empty());
|
||||
when(session.close()).thenReturn(Mono.empty());
|
||||
@@ -214,7 +204,7 @@ class TransactionHandlingTest {
|
||||
.expectError(SomeException.class)
|
||||
.verify();
|
||||
|
||||
verify(driver).rxSession(any(Consumer.class));
|
||||
verify(driver).rxSession(any(SessionConfig.class));
|
||||
verify(session).beginTransaction();
|
||||
verify(transaction).commit();
|
||||
verify(transaction).rollback();
|
||||
|
||||
@@ -24,7 +24,6 @@ import static org.neo4j.springframework.data.core.transaction.Neo4jTransactionMa
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import javax.transaction.Status;
|
||||
import javax.transaction.UserTransaction;
|
||||
@@ -41,6 +40,7 @@ import org.neo4j.driver.Session;
|
||||
import org.neo4j.driver.StatementResult;
|
||||
import org.neo4j.driver.Transaction;
|
||||
import org.neo4j.driver.TransactionConfig;
|
||||
import org.neo4j.driver.internal.SessionConfig;
|
||||
import org.neo4j.driver.types.TypeSystem;
|
||||
import org.neo4j.springframework.data.core.Neo4jClient;
|
||||
import org.springframework.transaction.TransactionStatus;
|
||||
@@ -85,7 +85,7 @@ class Neo4jTransactionManagerTest {
|
||||
void triggerCommitCorrectly() {
|
||||
|
||||
when(driver.defaultTypeSystem()).thenReturn(typeSystem);
|
||||
when(driver.session(any(Consumer.class))).thenReturn(session);
|
||||
when(driver.session(any(SessionConfig.class))).thenReturn(session);
|
||||
when(session.beginTransaction(any(TransactionConfig.class))).thenReturn(transaction);
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(session.isOpen()).thenReturn(true);
|
||||
@@ -99,7 +99,7 @@ class Neo4jTransactionManagerTest {
|
||||
|
||||
txManager.commit(txStatus);
|
||||
|
||||
verify(driver).session(any(Consumer.class));
|
||||
verify(driver).session(any(SessionConfig.class));
|
||||
|
||||
verify(session).isOpen();
|
||||
verify(session).beginTransaction(any(TransactionConfig.class));
|
||||
@@ -120,7 +120,7 @@ class Neo4jTransactionManagerTest {
|
||||
AtomicBoolean sessionIsOpen = new AtomicBoolean(true);
|
||||
AtomicBoolean transactionIsOpen = new AtomicBoolean(true);
|
||||
|
||||
when(driver.session(any(Consumer.class))).thenReturn(session);
|
||||
when(driver.session(any(SessionConfig.class))).thenReturn(session);
|
||||
|
||||
when(session.beginTransaction(any(TransactionConfig.class))).thenReturn(transaction);
|
||||
doAnswer(invocation -> {
|
||||
@@ -172,7 +172,7 @@ class Neo4jTransactionManagerTest {
|
||||
}
|
||||
});
|
||||
|
||||
verify(driver).session(any(Consumer.class));
|
||||
verify(driver).session(any(SessionConfig.class));
|
||||
|
||||
verify(session).isOpen();
|
||||
verify(session).beginTransaction(any(TransactionConfig.class));
|
||||
@@ -214,7 +214,7 @@ class Neo4jTransactionManagerTest {
|
||||
}
|
||||
});
|
||||
|
||||
verify(driver).session(any(Consumer.class));
|
||||
verify(driver).session(any(SessionConfig.class));
|
||||
|
||||
verify(session).isOpen();
|
||||
verify(session).beginTransaction(any(TransactionConfig.class));
|
||||
@@ -257,7 +257,7 @@ class Neo4jTransactionManagerTest {
|
||||
|
||||
verify(userTransaction).begin();
|
||||
|
||||
verify(driver).session(any(Consumer.class));
|
||||
verify(driver).session(any(SessionConfig.class));
|
||||
|
||||
verify(session, times(2)).isOpen();
|
||||
verify(session).beginTransaction(any(TransactionConfig.class));
|
||||
@@ -298,7 +298,7 @@ class Neo4jTransactionManagerTest {
|
||||
verify(userTransaction).begin();
|
||||
verify(userTransaction).rollback();
|
||||
|
||||
verify(driver).session(any(Consumer.class));
|
||||
verify(driver).session(any(SessionConfig.class));
|
||||
|
||||
verify(session, times(2)).isOpen();
|
||||
verify(session).beginTransaction(any(TransactionConfig.class));
|
||||
|
||||
@@ -28,8 +28,6 @@ import io.r2dbc.h2.H2ConnectionFactory;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.test.StepVerifier;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import javax.transaction.UserTransaction;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@@ -42,6 +40,7 @@ import org.mockito.junit.jupiter.MockitoSettings;
|
||||
import org.mockito.quality.Strictness;
|
||||
import org.neo4j.driver.Driver;
|
||||
import org.neo4j.driver.TransactionConfig;
|
||||
import org.neo4j.driver.internal.SessionConfig;
|
||||
import org.neo4j.driver.reactive.RxSession;
|
||||
import org.neo4j.driver.reactive.RxTransaction;
|
||||
import org.springframework.data.r2dbc.connectionfactory.R2dbcTransactionManager;
|
||||
@@ -71,7 +70,7 @@ class ReactiveNeo4jTransactionManagerTest {
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
|
||||
when(driver.rxSession(any(Consumer.class))).thenReturn(session);
|
||||
when(driver.rxSession(any(SessionConfig.class))).thenReturn(session);
|
||||
when(session.beginTransaction(any(TransactionConfig.class))).thenReturn(Mono.just(transaction));
|
||||
when(transaction.rollback()).thenReturn(Mono.empty());
|
||||
when(transaction.commit()).thenReturn(Mono.empty());
|
||||
@@ -106,7 +105,7 @@ class ReactiveNeo4jTransactionManagerTest {
|
||||
.expectNextCount(1L)
|
||||
.verifyComplete();
|
||||
|
||||
verify(driver).rxSession(any(Consumer.class));
|
||||
verify(driver).rxSession(any(SessionConfig.class));
|
||||
|
||||
verify(session).beginTransaction(any(TransactionConfig.class));
|
||||
verify(session).close();
|
||||
@@ -133,7 +132,7 @@ class ReactiveNeo4jTransactionManagerTest {
|
||||
.expectNextCount(1L)
|
||||
.verifyComplete();
|
||||
|
||||
verify(driver).rxSession(any(Consumer.class));
|
||||
verify(driver).rxSession(any(SessionConfig.class));
|
||||
|
||||
verify(session).beginTransaction(any(TransactionConfig.class));
|
||||
verify(session).close();
|
||||
@@ -164,7 +163,7 @@ class ReactiveNeo4jTransactionManagerTest {
|
||||
.expectNextCount(1L)
|
||||
.verifyComplete();
|
||||
|
||||
verify(driver).rxSession(any(Consumer.class));
|
||||
verify(driver).rxSession(any(SessionConfig.class));
|
||||
|
||||
verify(session).beginTransaction(any(TransactionConfig.class));
|
||||
verify(session).close();
|
||||
@@ -195,7 +194,7 @@ class ReactiveNeo4jTransactionManagerTest {
|
||||
.expectNextCount(1L)
|
||||
.verifyComplete();
|
||||
|
||||
verify(driver).rxSession(any(Consumer.class));
|
||||
verify(driver).rxSession(any(SessionConfig.class));
|
||||
|
||||
verify(session).beginTransaction(any(TransactionConfig.class));
|
||||
verify(session).close();
|
||||
|
||||
Reference in New Issue
Block a user