Upgrade to Driver 4.0.0-rc1.
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -103,7 +103,7 @@
|
||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||
<mockito.version>2.28.2</mockito.version>
|
||||
<neo4j-java-driver.version>4.0.0-beta03</neo4j-java-driver.version>
|
||||
<neo4j-java-driver.version>4.0.0-rc1</neo4j-java-driver.version>
|
||||
<neo4j.version>3.5.8</neo4j.version>
|
||||
<objenesis.version>3.0.1</objenesis.version> <!-- mockk requires objenesis >= 3 -->
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
|
||||
@@ -37,10 +37,10 @@ import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import org.neo4j.driver.Driver;
|
||||
import org.neo4j.driver.QueryRunner;
|
||||
import org.neo4j.driver.Record;
|
||||
import org.neo4j.driver.Result;
|
||||
import org.neo4j.driver.Session;
|
||||
import org.neo4j.driver.StatementResult;
|
||||
import org.neo4j.driver.StatementRunner;
|
||||
import org.neo4j.driver.summary.ResultSummary;
|
||||
import org.neo4j.driver.types.TypeSystem;
|
||||
import org.neo4j.springframework.data.core.convert.Neo4jConversions;
|
||||
@@ -73,32 +73,32 @@ class DefaultNeo4jClient implements Neo4jClient {
|
||||
new Neo4jConversions().registerConvertersIn((ConverterRegistry) conversionService);
|
||||
}
|
||||
|
||||
AutoCloseableStatementRunner getStatementRunner(@Nullable final String targetDatabase) {
|
||||
AutoCloseableQueryRunner getQueryRunner(@Nullable final String targetDatabase) {
|
||||
|
||||
StatementRunner statementRunner = retrieveTransaction(driver, targetDatabase);
|
||||
if (statementRunner == null) {
|
||||
statementRunner = driver.session(defaultSessionConfig(targetDatabase));
|
||||
QueryRunner queryRunner = retrieveTransaction(driver, targetDatabase);
|
||||
if (queryRunner == null) {
|
||||
queryRunner = driver.session(defaultSessionConfig(targetDatabase));
|
||||
}
|
||||
|
||||
return (AutoCloseableStatementRunner) Proxy.newProxyInstance(this.getClass().getClassLoader(),
|
||||
new Class<?>[] { AutoCloseableStatementRunner.class },
|
||||
new AutoCloseableStatementRunnerHandler(statementRunner));
|
||||
return (AutoCloseableQueryRunner) Proxy.newProxyInstance(this.getClass().getClassLoader(),
|
||||
new Class<?>[] { AutoCloseableQueryRunner.class },
|
||||
new AutoCloseableQueryRunnerHandler(queryRunner));
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes a statement runner automatically closeable and aware whether it's session or a transaction
|
||||
* Makes a query runner automatically closeable and aware whether it's session or a transaction
|
||||
*/
|
||||
interface AutoCloseableStatementRunner extends StatementRunner, AutoCloseable {
|
||||
interface AutoCloseableQueryRunner extends QueryRunner, AutoCloseable {
|
||||
|
||||
@Override void close();
|
||||
}
|
||||
|
||||
static class AutoCloseableStatementRunnerHandler implements InvocationHandler {
|
||||
static class AutoCloseableQueryRunnerHandler implements InvocationHandler {
|
||||
|
||||
private final Map<Method, MethodHandle> cachedHandles = new ConcurrentHashMap<>();
|
||||
private final StatementRunner target;
|
||||
private final QueryRunner target;
|
||||
|
||||
AutoCloseableStatementRunnerHandler(StatementRunner target) {
|
||||
AutoCloseableQueryRunnerHandler(QueryRunner target) {
|
||||
this.target = target;
|
||||
}
|
||||
|
||||
@@ -137,7 +137,7 @@ class DefaultNeo4jClient implements Neo4jClient {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> OngoingDelegation<T> delegateTo(Function<StatementRunner, Optional<T>> callback) {
|
||||
public <T> OngoingDelegation<T> delegateTo(Function<QueryRunner, Optional<T>> callback) {
|
||||
return new DefaultRunnableDelegation<>(callback);
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ class DefaultNeo4jClient implements Neo4jClient {
|
||||
|
||||
private final NamedParameters parameters;
|
||||
|
||||
protected final StatementResult runWith(AutoCloseableStatementRunner statementRunner) {
|
||||
protected final Result runWith(AutoCloseableQueryRunner statementRunner) {
|
||||
String statementTemplate = cypherSupplier.get();
|
||||
|
||||
if (cypherLog.isDebugEnabled()) {
|
||||
@@ -171,8 +171,7 @@ class DefaultNeo4jClient implements Neo4jClient {
|
||||
}
|
||||
}
|
||||
|
||||
StatementResult result = statementRunner.run(statementTemplate, parameters.get());
|
||||
return result;
|
||||
return statementRunner.run(statementTemplate, parameters.get());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -247,8 +246,8 @@ class DefaultNeo4jClient implements Neo4jClient {
|
||||
@Override
|
||||
public ResultSummary run() {
|
||||
|
||||
try (AutoCloseableStatementRunner statementRunner = getStatementRunner(this.targetDatabase)) {
|
||||
StatementResult result = runnableStatement.runWith(statementRunner);
|
||||
try (AutoCloseableQueryRunner statementRunner = getQueryRunner(this.targetDatabase)) {
|
||||
Result result = runnableStatement.runWith(statementRunner);
|
||||
return result.consume();
|
||||
}
|
||||
}
|
||||
@@ -280,8 +279,8 @@ class DefaultNeo4jClient implements Neo4jClient {
|
||||
@Override
|
||||
public Optional<T> one() {
|
||||
|
||||
try (AutoCloseableStatementRunner statementRunner = getStatementRunner(this.targetDatabase)) {
|
||||
StatementResult result = runnableStatement.runWith(statementRunner);
|
||||
try (AutoCloseableQueryRunner statementRunner = getQueryRunner(this.targetDatabase)) {
|
||||
Result result = runnableStatement.runWith(statementRunner);
|
||||
return result.hasNext() ?
|
||||
Optional.of(mappingFunction.apply(typeSystem, result.single())) :
|
||||
Optional.empty();
|
||||
@@ -291,8 +290,8 @@ class DefaultNeo4jClient implements Neo4jClient {
|
||||
@Override
|
||||
public Optional<T> first() {
|
||||
|
||||
try (AutoCloseableStatementRunner statementRunner = getStatementRunner(this.targetDatabase)) {
|
||||
StatementResult result = runnableStatement.runWith(statementRunner);
|
||||
try (AutoCloseableQueryRunner statementRunner = getQueryRunner(this.targetDatabase)) {
|
||||
Result result = runnableStatement.runWith(statementRunner);
|
||||
return result.stream().map(partialMappingFunction(typeSystem)).findFirst();
|
||||
}
|
||||
}
|
||||
@@ -300,8 +299,8 @@ class DefaultNeo4jClient implements Neo4jClient {
|
||||
@Override
|
||||
public Collection<T> all() {
|
||||
|
||||
try (AutoCloseableStatementRunner statementRunner = getStatementRunner(this.targetDatabase)) {
|
||||
StatementResult result = runnableStatement.runWith(statementRunner);
|
||||
try (AutoCloseableQueryRunner statementRunner = getQueryRunner(this.targetDatabase)) {
|
||||
Result result = runnableStatement.runWith(statementRunner);
|
||||
return result.stream().map(partialMappingFunction(typeSystem)).collect(toList());
|
||||
}
|
||||
}
|
||||
@@ -317,15 +316,15 @@ class DefaultNeo4jClient implements Neo4jClient {
|
||||
|
||||
class DefaultRunnableDelegation<T> implements RunnableDelegation<T>, OngoingDelegation<T> {
|
||||
|
||||
private final Function<StatementRunner, Optional<T>> callback;
|
||||
private final Function<QueryRunner, Optional<T>> callback;
|
||||
|
||||
@Nullable private String targetDatabase;
|
||||
|
||||
DefaultRunnableDelegation(Function<StatementRunner, Optional<T>> callback) {
|
||||
DefaultRunnableDelegation(Function<QueryRunner, Optional<T>> callback) {
|
||||
this(callback, null);
|
||||
}
|
||||
|
||||
DefaultRunnableDelegation(Function<StatementRunner, Optional<T>> callback, @Nullable String targetDatabase) {
|
||||
DefaultRunnableDelegation(Function<QueryRunner, Optional<T>> callback, @Nullable String targetDatabase) {
|
||||
this.callback = callback;
|
||||
this.targetDatabase = targetDatabase;
|
||||
}
|
||||
@@ -339,8 +338,8 @@ class DefaultNeo4jClient implements Neo4jClient {
|
||||
|
||||
@Override
|
||||
public Optional<T> run() {
|
||||
try (AutoCloseableStatementRunner statementRunner = getStatementRunner(targetDatabase)) {
|
||||
return callback.apply(statementRunner);
|
||||
try (AutoCloseableQueryRunner queryRunner = getQueryRunner(targetDatabase)) {
|
||||
return callback.apply(queryRunner);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ import java.util.function.Supplier;
|
||||
import org.neo4j.driver.Driver;
|
||||
import org.neo4j.driver.Record;
|
||||
import org.neo4j.driver.reactive.RxSession;
|
||||
import org.neo4j.driver.reactive.RxStatementRunner;
|
||||
import org.neo4j.driver.reactive.RxQueryRunner;
|
||||
import org.neo4j.driver.summary.ResultSummary;
|
||||
import org.neo4j.driver.types.TypeSystem;
|
||||
import org.neo4j.springframework.data.core.Neo4jClient.*;
|
||||
@@ -80,19 +80,19 @@ class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
|
||||
);
|
||||
}
|
||||
|
||||
<T> Mono<T> doInStatementRunnerForMono(final String targetDatabase, Function<RxStatementRunner, Mono<T>> func) {
|
||||
<T> Mono<T> doInQueryRunnerForMono(final String targetDatabase, Function<RxQueryRunner, Mono<T>> func) {
|
||||
|
||||
return Mono.usingWhen(retrieveRxStatementRunnerHolder(targetDatabase),
|
||||
holder -> func.apply(holder.getRxStatementRunner()),
|
||||
holder -> func.apply(holder.getRxQueryRunner()),
|
||||
RxStatementRunnerHolder::getCommit,
|
||||
(holder, ex) -> holder.getRollback(),
|
||||
RxStatementRunnerHolder::getCommit);
|
||||
}
|
||||
|
||||
<T> Flux<T> doInStatementRunnerForFlux(final String targetDatabase, Function<RxStatementRunner, Flux<T>> func) {
|
||||
<T> Flux<T> doInStatementRunnerForFlux(final String targetDatabase, Function<RxQueryRunner, Flux<T>> func) {
|
||||
|
||||
return Flux.usingWhen(retrieveRxStatementRunnerHolder(targetDatabase),
|
||||
holder -> func.apply(holder.getRxStatementRunner()),
|
||||
holder -> func.apply(holder.getRxQueryRunner()),
|
||||
RxStatementRunnerHolder::getCommit,
|
||||
(holder, ex) -> holder.getRollback(),
|
||||
RxStatementRunnerHolder::getCommit);
|
||||
@@ -109,7 +109,7 @@ class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> OngoingDelegation<T> delegateTo(Function<RxStatementRunner, Mono<T>> callback) {
|
||||
public <T> OngoingDelegation<T> delegateTo(Function<RxQueryRunner, Mono<T>> callback) {
|
||||
return new DefaultRunnableDelegation<>(callback);
|
||||
}
|
||||
|
||||
@@ -235,7 +235,7 @@ class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
|
||||
return Mono.fromSupplier(cypherSupplier).zipWith(Mono.just(parameters.get()));
|
||||
}
|
||||
|
||||
Flux<T> executeWith(Tuple2<String, Map<String, Object>> t, RxStatementRunner runner) {
|
||||
Flux<T> executeWith(Tuple2<String, Map<String, Object>> t, RxQueryRunner runner) {
|
||||
|
||||
return Flux.from(runner.run(t.getT1(), t.getT2()).records()).map(r -> mappingFunction.apply(typeSystem, r));
|
||||
}
|
||||
@@ -243,7 +243,7 @@ class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
|
||||
@Override
|
||||
public Mono<T> one() {
|
||||
|
||||
return doInStatementRunnerForMono(
|
||||
return doInQueryRunnerForMono(
|
||||
targetDatabase,
|
||||
(runner) -> prepareStatement().flatMapMany(t -> executeWith(t, runner)).singleOrEmpty());
|
||||
}
|
||||
@@ -251,7 +251,7 @@ class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
|
||||
@Override
|
||||
public Mono<T> first() {
|
||||
|
||||
return doInStatementRunnerForMono(
|
||||
return doInQueryRunnerForMono(
|
||||
targetDatabase,
|
||||
runner -> prepareStatement().flatMapMany(t -> executeWith(t, runner)).next());
|
||||
}
|
||||
@@ -267,7 +267,7 @@ class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
|
||||
|
||||
Mono<ResultSummary> run() {
|
||||
|
||||
return doInStatementRunnerForMono(
|
||||
return doInQueryRunnerForMono(
|
||||
targetDatabase,
|
||||
runner -> prepareStatement().flatMap(t -> Mono.from(runner.run(t.getT1(), t.getT2()).consume())));
|
||||
}
|
||||
@@ -275,15 +275,15 @@ class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
|
||||
|
||||
class DefaultRunnableDelegation<T> implements RunnableDelegation<T>, OngoingDelegation<T> {
|
||||
|
||||
private final Function<RxStatementRunner, Mono<T>> callback;
|
||||
private final Function<RxQueryRunner, Mono<T>> callback;
|
||||
|
||||
private String targetDatabase;
|
||||
|
||||
DefaultRunnableDelegation(Function<RxStatementRunner, Mono<T>> callback) {
|
||||
DefaultRunnableDelegation(Function<RxQueryRunner, Mono<T>> callback) {
|
||||
this(callback, null);
|
||||
}
|
||||
|
||||
DefaultRunnableDelegation(Function<RxStatementRunner, Mono<T>> callback,
|
||||
DefaultRunnableDelegation(Function<RxQueryRunner, Mono<T>> callback,
|
||||
@Nullable String targetDatabase) {
|
||||
this.callback = callback;
|
||||
this.targetDatabase = targetDatabase;
|
||||
@@ -299,7 +299,7 @@ class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
|
||||
@Override
|
||||
public Mono<T> run() {
|
||||
|
||||
return doInStatementRunnerForMono(
|
||||
return doInQueryRunnerForMono(
|
||||
targetDatabase,
|
||||
callback
|
||||
);
|
||||
@@ -308,19 +308,19 @@ class DefaultReactiveNeo4jClient implements ReactiveNeo4jClient {
|
||||
}
|
||||
|
||||
final class RxStatementRunnerHolder {
|
||||
private final RxStatementRunner rxStatementRunner;
|
||||
private final RxQueryRunner rxQueryRunner;
|
||||
|
||||
private final Publisher<Void> commit;
|
||||
private final Publisher<Void> rollback;
|
||||
|
||||
RxStatementRunnerHolder(RxStatementRunner rxStatementRunner, Publisher<Void> commit, Publisher<Void> rollback) {
|
||||
this.rxStatementRunner = rxStatementRunner;
|
||||
RxStatementRunnerHolder(RxQueryRunner rxQueryRunner, Publisher<Void> commit, Publisher<Void> rollback) {
|
||||
this.rxQueryRunner = rxQueryRunner;
|
||||
this.commit = commit;
|
||||
this.rollback = rollback;
|
||||
}
|
||||
|
||||
public RxStatementRunner getRxStatementRunner() {
|
||||
return rxStatementRunner;
|
||||
public RxQueryRunner getRxQueryRunner() {
|
||||
return rxQueryRunner;
|
||||
}
|
||||
|
||||
public Publisher<Void> getCommit() {
|
||||
|
||||
@@ -29,7 +29,7 @@ import org.apache.commons.logging.LogFactory;
|
||||
import org.apiguardian.api.API;
|
||||
import org.neo4j.driver.Driver;
|
||||
import org.neo4j.driver.Record;
|
||||
import org.neo4j.driver.StatementRunner;
|
||||
import org.neo4j.driver.QueryRunner;
|
||||
import org.neo4j.driver.summary.ResultSummary;
|
||||
import org.neo4j.driver.types.TypeSystem;
|
||||
import org.springframework.core.log.LogAccessor;
|
||||
@@ -80,7 +80,7 @@ public interface Neo4jClient {
|
||||
* @param <T> The type of the result being produced
|
||||
* @return A single result object or an empty optional if the callback didn't produce a result
|
||||
*/
|
||||
<T> OngoingDelegation<T> delegateTo(Function<StatementRunner, Optional<T>> callback);
|
||||
<T> OngoingDelegation<T> delegateTo(Function<QueryRunner, Optional<T>> callback);
|
||||
|
||||
/**
|
||||
* Contract for a runnable query that can be either run returning it's result, run without results or be parameterized.
|
||||
|
||||
@@ -30,7 +30,7 @@ import org.apache.commons.logging.LogFactory;
|
||||
import org.apiguardian.api.API;
|
||||
import org.neo4j.driver.Driver;
|
||||
import org.neo4j.driver.Record;
|
||||
import org.neo4j.driver.reactive.RxStatementRunner;
|
||||
import org.neo4j.driver.reactive.RxQueryRunner;
|
||||
import org.neo4j.driver.summary.ResultSummary;
|
||||
import org.neo4j.driver.types.TypeSystem;
|
||||
import org.neo4j.springframework.data.core.Neo4jClient.BindSpec;
|
||||
@@ -80,7 +80,7 @@ public interface ReactiveNeo4jClient {
|
||||
* @param <T> The type of the result being produced
|
||||
* @return A single publisher containing none or exactly one element that will be produced by the callback
|
||||
*/
|
||||
<T> OngoingDelegation<T> delegateTo(Function<RxStatementRunner, Mono<T>> callback);
|
||||
<T> OngoingDelegation<T> delegateTo(Function<RxQueryRunner, Mono<T>> callback);
|
||||
|
||||
/**
|
||||
* @param <T> The resulting type of this mapping
|
||||
|
||||
@@ -46,8 +46,8 @@ import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.neo4j.driver.Driver;
|
||||
import org.neo4j.driver.Record;
|
||||
import org.neo4j.driver.Result;
|
||||
import org.neo4j.driver.Session;
|
||||
import org.neo4j.driver.StatementResult;
|
||||
import org.neo4j.driver.Values;
|
||||
import org.neo4j.driver.SessionConfig;
|
||||
import org.neo4j.driver.summary.ResultSummary;
|
||||
@@ -71,7 +71,7 @@ class Neo4jClientTest {
|
||||
private TypeSystem typeSystem;
|
||||
|
||||
@Mock
|
||||
private StatementResult statementResult;
|
||||
private Result result;
|
||||
|
||||
@Mock
|
||||
private ResultSummary resultSummary;
|
||||
@@ -90,7 +90,7 @@ class Neo4jClientTest {
|
||||
|
||||
@AfterEach
|
||||
void verifyNoMoreInteractionsWithMocks() {
|
||||
verifyNoMoreInteractions(driver, session, statementResult, resultSummary, record1, record2);
|
||||
verifyNoMoreInteractions(driver, session, result, resultSummary, record1, record2);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -99,8 +99,8 @@ class Neo4jClientTest {
|
||||
|
||||
prepareMocks();
|
||||
|
||||
when(session.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(statementResult.stream()).thenReturn(Stream.of(record1, record2));
|
||||
when(session.run(anyString(), anyMap())).thenReturn(result);
|
||||
when(result.stream()).thenReturn(Stream.of(record1, record2));
|
||||
|
||||
Neo4jClient client = Neo4jClient.create(driver);
|
||||
|
||||
@@ -132,7 +132,7 @@ class Neo4jClientTest {
|
||||
expectedParameters.put("aDate", LocalDate.of(2019, 1, 1));
|
||||
verify(session).run(eq(cypher), argThat(new MapAssertionMatcher(expectedParameters)));
|
||||
|
||||
verify(statementResult).stream();
|
||||
verify(result).stream();
|
||||
verify(record1).asMap();
|
||||
verify(record2).asMap();
|
||||
verify(session).close();
|
||||
@@ -143,8 +143,8 @@ class Neo4jClientTest {
|
||||
|
||||
prepareMocks();
|
||||
|
||||
when(session.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(statementResult.stream()).thenReturn(Stream.of(record1, record2));
|
||||
when(session.run(anyString(), anyMap())).thenReturn(result);
|
||||
when(result.stream()).thenReturn(Stream.of(record1, record2));
|
||||
|
||||
Neo4jClient client = Neo4jClient.create(driver);
|
||||
|
||||
@@ -165,7 +165,7 @@ class Neo4jClientTest {
|
||||
expectedParameters.put("name", "Someone.*");
|
||||
|
||||
verify(session).run(eq(cypher), argThat(new MapAssertionMatcher(expectedParameters)));
|
||||
verify(statementResult).stream();
|
||||
verify(result).stream();
|
||||
verify(record1).asMap();
|
||||
verify(session).close();
|
||||
}
|
||||
@@ -201,11 +201,11 @@ class Neo4jClientTest {
|
||||
prepareMocks();
|
||||
|
||||
Neo4jClient client = Neo4jClient.create(driver);
|
||||
Optional<Integer> result = client
|
||||
Optional<Integer> singleResult = client
|
||||
.delegateTo(runner -> Optional.of(42))
|
||||
.run();
|
||||
|
||||
assertThat(result).isPresent().hasValue(42);
|
||||
assertThat(singleResult).isPresent().hasValue(42);
|
||||
|
||||
verifyDatabaseSelection(null);
|
||||
|
||||
@@ -218,12 +218,12 @@ class Neo4jClientTest {
|
||||
prepareMocks();
|
||||
|
||||
Neo4jClient client = Neo4jClient.create(driver);
|
||||
Optional<Integer> result = client
|
||||
Optional<Integer> singleResult = client
|
||||
.delegateTo(runner -> Optional.of(42))
|
||||
.in("aDatabase")
|
||||
.run();
|
||||
|
||||
assertThat(result).isPresent().hasValue(42);
|
||||
assertThat(singleResult).isPresent().hasValue(42);
|
||||
|
||||
verifyDatabaseSelection("aDatabase");
|
||||
|
||||
@@ -240,8 +240,8 @@ class Neo4jClientTest {
|
||||
|
||||
prepareMocks();
|
||||
|
||||
when(session.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(statementResult.stream()).thenReturn(Stream.of(record1));
|
||||
when(session.run(anyString(), anyMap())).thenReturn(result);
|
||||
when(result.stream()).thenReturn(Stream.of(record1));
|
||||
when(record1.get("name")).thenReturn(Values.value("michael"));
|
||||
|
||||
Neo4jClient client = Neo4jClient.create(driver);
|
||||
@@ -265,7 +265,7 @@ class Neo4jClientTest {
|
||||
expectedParameters.put("name", "michael");
|
||||
|
||||
verify(session).run(eq(cypher), argThat(new MapAssertionMatcher(expectedParameters)));
|
||||
verify(statementResult).stream();
|
||||
verify(result).stream();
|
||||
verify(record1).get("name");
|
||||
verify(session).close();
|
||||
}
|
||||
@@ -275,8 +275,8 @@ class Neo4jClientTest {
|
||||
|
||||
prepareMocks();
|
||||
|
||||
when(session.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(statementResult.stream()).thenReturn(Stream.of(record1, record2));
|
||||
when(session.run(anyString(), anyMap())).thenReturn(result);
|
||||
when(result.stream()).thenReturn(Stream.of(record1, record2));
|
||||
when(record1.get("name")).thenReturn(Values.value("michael"));
|
||||
|
||||
Neo4jClient client = Neo4jClient.create(driver);
|
||||
@@ -295,7 +295,7 @@ class Neo4jClientTest {
|
||||
verifyDatabaseSelection(null);
|
||||
|
||||
verify(session).run(eq("MATCH (n) RETURN n"), argThat(new MapAssertionMatcher(Collections.emptyMap())));
|
||||
verify(statementResult).stream();
|
||||
verify(result).stream();
|
||||
verify(record1).get("name");
|
||||
verify(session).close();
|
||||
}
|
||||
@@ -305,8 +305,8 @@ class Neo4jClientTest {
|
||||
|
||||
prepareMocks();
|
||||
|
||||
when(session.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(statementResult.consume()).thenReturn(resultSummary);
|
||||
when(session.run(anyString(), anyMap())).thenReturn(result);
|
||||
when(result.consume()).thenReturn(resultSummary);
|
||||
|
||||
Neo4jClient client = Neo4jClient.create(driver);
|
||||
|
||||
@@ -326,7 +326,7 @@ class Neo4jClientTest {
|
||||
expectedParameters.put("name", "Michael");
|
||||
|
||||
verify(session).run(eq(cypher), argThat(new MapAssertionMatcher(expectedParameters)));
|
||||
verify(statementResult).consume();
|
||||
verify(result).consume();
|
||||
verify(session).close();
|
||||
}
|
||||
|
||||
@@ -336,9 +336,9 @@ class Neo4jClientTest {
|
||||
|
||||
prepareMocks();
|
||||
|
||||
when(session.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(statementResult.hasNext()).thenReturn(true);
|
||||
when(statementResult.single()).thenReturn(record1);
|
||||
when(session.run(anyString(), anyMap())).thenReturn(result);
|
||||
when(result.hasNext()).thenReturn(true);
|
||||
when(result.single()).thenReturn(record1);
|
||||
when(record1.size()).thenReturn(1);
|
||||
when(record1.get(0)).thenReturn(Values.value(23L));
|
||||
|
||||
@@ -355,8 +355,8 @@ class Neo4jClientTest {
|
||||
verifyDatabaseSelection(null);
|
||||
|
||||
verify(session).run(eq(cypher), anyMap());
|
||||
verify(statementResult).hasNext();
|
||||
verify(statementResult).single();
|
||||
verify(result).hasNext();
|
||||
verify(result).single();
|
||||
verify(session).close();
|
||||
}
|
||||
}
|
||||
@@ -367,8 +367,8 @@ class Neo4jClientTest {
|
||||
|
||||
prepareMocks();
|
||||
|
||||
when(session.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(statementResult.consume()).thenReturn(resultSummary);
|
||||
when(session.run(anyString(), anyMap())).thenReturn(result);
|
||||
when(result.consume()).thenReturn(resultSummary);
|
||||
|
||||
Neo4jClient client = Neo4jClient.create(driver);
|
||||
|
||||
@@ -385,7 +385,7 @@ class Neo4jClientTest {
|
||||
expectedParameters.put("name", "fixie");
|
||||
|
||||
verify(session).run(eq(cypher), argThat(new MapAssertionMatcher(expectedParameters)));
|
||||
verify(statementResult).consume();
|
||||
verify(result).consume();
|
||||
verify(session).close();
|
||||
}
|
||||
|
||||
|
||||
@@ -45,8 +45,8 @@ import org.neo4j.driver.Driver;
|
||||
import org.neo4j.driver.Record;
|
||||
import org.neo4j.driver.Values;
|
||||
import org.neo4j.driver.SessionConfig;
|
||||
import org.neo4j.driver.reactive.RxResult;
|
||||
import org.neo4j.driver.reactive.RxSession;
|
||||
import org.neo4j.driver.reactive.RxStatementResult;
|
||||
import org.neo4j.driver.reactive.RxTransaction;
|
||||
import org.neo4j.driver.summary.ResultSummary;
|
||||
import org.neo4j.driver.types.TypeSystem;
|
||||
@@ -74,7 +74,7 @@ class ReactiveNeo4jClientTest {
|
||||
private RxSession session;
|
||||
|
||||
@Mock
|
||||
private RxStatementResult statementResult;
|
||||
private RxResult result;
|
||||
|
||||
@Mock
|
||||
private RxTransaction transaction;
|
||||
@@ -100,7 +100,7 @@ class ReactiveNeo4jClientTest {
|
||||
|
||||
@AfterEach
|
||||
void verifyNoMoreInteractionsWithMocks() {
|
||||
verifyNoMoreInteractions(driver, session, transaction, statementResult, resultSummary, record1, record2);
|
||||
verifyNoMoreInteractions(driver, session, transaction, result, resultSummary, record1, record2);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -109,9 +109,9 @@ class ReactiveNeo4jClientTest {
|
||||
|
||||
prepareMocks();
|
||||
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(result);
|
||||
when(transaction.commit()).thenReturn(Mono.empty());
|
||||
when(statementResult.records()).thenReturn(Flux.just(record1, record2));
|
||||
when(result.records()).thenReturn(Flux.just(record1, record2));
|
||||
|
||||
ReactiveNeo4jClient client = ReactiveNeo4jClient.create(driver);
|
||||
|
||||
@@ -145,7 +145,7 @@ class ReactiveNeo4jClientTest {
|
||||
expectedParameters.put("aDate", LocalDate.of(2019, 1, 1));
|
||||
verify(transaction).run(eq(cypher), argThat(new MapAssertionMatcher(expectedParameters)));
|
||||
|
||||
verify(statementResult).records();
|
||||
verify(result).records();
|
||||
verify(record1).asMap();
|
||||
verify(record2).asMap();
|
||||
verify(transaction).commit();
|
||||
@@ -158,9 +158,9 @@ class ReactiveNeo4jClientTest {
|
||||
|
||||
prepareMocks();
|
||||
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(result);
|
||||
when(transaction.commit()).thenReturn(Mono.empty());
|
||||
when(statementResult.records()).thenReturn(Flux.just(record1, record2));
|
||||
when(result.records()).thenReturn(Flux.just(record1, record2));
|
||||
|
||||
ReactiveNeo4jClient client = ReactiveNeo4jClient.create(driver);
|
||||
|
||||
@@ -182,7 +182,7 @@ class ReactiveNeo4jClientTest {
|
||||
expectedParameters.put("name", "Someone.*");
|
||||
|
||||
verify(transaction).run(eq(cypher), argThat(new MapAssertionMatcher(expectedParameters)));
|
||||
verify(statementResult).records();
|
||||
verify(result).records();
|
||||
verify(record1).asMap();
|
||||
verify(transaction).commit();
|
||||
verify(transaction).rollback();
|
||||
@@ -222,11 +222,11 @@ class ReactiveNeo4jClientTest {
|
||||
when(transaction.commit()).thenReturn(Mono.empty());
|
||||
|
||||
ReactiveNeo4jClient client = ReactiveNeo4jClient.create(driver);
|
||||
Mono<Integer> result = client
|
||||
Mono<Integer> singleResult = client
|
||||
.delegateTo(runner -> Mono.just(21))
|
||||
.run();
|
||||
|
||||
StepVerifier.create(result)
|
||||
StepVerifier.create(singleResult)
|
||||
.expectNext(21)
|
||||
.verifyComplete();
|
||||
|
||||
@@ -245,12 +245,12 @@ class ReactiveNeo4jClientTest {
|
||||
when(transaction.commit()).thenReturn(Mono.empty());
|
||||
|
||||
ReactiveNeo4jClient client = ReactiveNeo4jClient.create(driver);
|
||||
Mono<Integer> result = client
|
||||
Mono<Integer> singleResult = client
|
||||
.delegateTo(runner -> Mono.just(21))
|
||||
.in("aDatabase")
|
||||
.run();
|
||||
|
||||
StepVerifier.create(result)
|
||||
StepVerifier.create(singleResult)
|
||||
.expectNext(21)
|
||||
.verifyComplete();
|
||||
|
||||
@@ -271,9 +271,9 @@ class ReactiveNeo4jClientTest {
|
||||
|
||||
prepareMocks();
|
||||
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(result);
|
||||
when(transaction.commit()).thenReturn(Mono.empty());
|
||||
when(statementResult.records()).thenReturn(Flux.just(record1));
|
||||
when(result.records()).thenReturn(Flux.just(record1));
|
||||
when(record1.get("name")).thenReturn(Values.value("michael"));
|
||||
|
||||
ReactiveNeo4jClient client = ReactiveNeo4jClient.create(driver);
|
||||
@@ -298,7 +298,7 @@ class ReactiveNeo4jClientTest {
|
||||
expectedParameters.put("name", "michael");
|
||||
|
||||
verify(transaction).run(eq(cypher), argThat(new MapAssertionMatcher(expectedParameters)));
|
||||
verify(statementResult).records();
|
||||
verify(result).records();
|
||||
verify(record1).get("name");
|
||||
verify(transaction).commit();
|
||||
verify(transaction).rollback();
|
||||
@@ -310,9 +310,9 @@ class ReactiveNeo4jClientTest {
|
||||
|
||||
prepareMocks();
|
||||
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(result);
|
||||
when(transaction.rollback()).thenReturn(Mono.empty());
|
||||
when(statementResult.records()).thenReturn(Flux.just(record1, record2));
|
||||
when(result.records()).thenReturn(Flux.just(record1, record2));
|
||||
when(record1.get("name")).thenReturn(Values.value("michael"));
|
||||
|
||||
ReactiveNeo4jClient client = ReactiveNeo4jClient.create(driver);
|
||||
@@ -334,7 +334,7 @@ class ReactiveNeo4jClientTest {
|
||||
verifyDatabaseSelection(null);
|
||||
|
||||
verify(transaction).run(eq("MATCH (n) RETURN n"), argThat(new MapAssertionMatcher(Collections.emptyMap())));
|
||||
verify(statementResult).records();
|
||||
verify(result).records();
|
||||
verify(record1).get("name");
|
||||
verify(transaction).commit();
|
||||
verify(transaction).rollback();
|
||||
@@ -346,9 +346,9 @@ class ReactiveNeo4jClientTest {
|
||||
|
||||
prepareMocks();
|
||||
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(result);
|
||||
when(transaction.commit()).thenReturn(Mono.empty());
|
||||
when(statementResult.consume()).thenReturn(Mono.just(resultSummary));
|
||||
when(result.consume()).thenReturn(Mono.just(resultSummary));
|
||||
|
||||
ReactiveNeo4jClient client = ReactiveNeo4jClient.create(driver);
|
||||
|
||||
@@ -373,7 +373,7 @@ class ReactiveNeo4jClientTest {
|
||||
expectedParameters.put("name", "Michael");
|
||||
|
||||
verify(transaction).run(eq(cypher), argThat(new MapAssertionMatcher(expectedParameters)));
|
||||
verify(statementResult).consume();
|
||||
verify(result).consume();
|
||||
verify(transaction).commit();
|
||||
verify(transaction).rollback();
|
||||
verify(session).close();
|
||||
@@ -385,9 +385,9 @@ class ReactiveNeo4jClientTest {
|
||||
|
||||
prepareMocks();
|
||||
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(result);
|
||||
when(transaction.commit()).thenReturn(Mono.empty());
|
||||
when(statementResult.records()).thenReturn(Flux.just(record1));
|
||||
when(result.records()).thenReturn(Flux.just(record1));
|
||||
when(record1.size()).thenReturn(1);
|
||||
when(record1.get(0)).thenReturn(Values.value(23L));
|
||||
|
||||
@@ -418,9 +418,9 @@ class ReactiveNeo4jClientTest {
|
||||
|
||||
prepareMocks();
|
||||
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(statementResult);
|
||||
when(transaction.run(anyString(), anyMap())).thenReturn(result);
|
||||
when(transaction.commit()).thenReturn(Mono.empty());
|
||||
when(statementResult.consume()).thenReturn(Mono.just(resultSummary));
|
||||
when(result.consume()).thenReturn(Mono.just(resultSummary));
|
||||
|
||||
ReactiveNeo4jClient client = ReactiveNeo4jClient.create(driver);
|
||||
|
||||
@@ -441,7 +441,7 @@ class ReactiveNeo4jClientTest {
|
||||
expectedParameters.put("name", "fixie");
|
||||
|
||||
verify(transaction).run(eq(cypher), argThat(new MapAssertionMatcher(expectedParameters)));
|
||||
verify(statementResult).consume();
|
||||
verify(result).consume();
|
||||
verify(transaction).commit();
|
||||
verify(transaction).rollback();
|
||||
verify(session).close();
|
||||
|
||||
@@ -82,7 +82,7 @@ class TransactionHandlingTest {
|
||||
private Transaction transaction;
|
||||
|
||||
@Nested
|
||||
class AutoCloseableStatementRunnerHandlerTest {
|
||||
class AutoCloseableQueryRunnerHandlerTest {
|
||||
|
||||
@Test
|
||||
void shouldCallCloseOnSession() {
|
||||
@@ -93,7 +93,7 @@ class TransactionHandlingTest {
|
||||
|
||||
// Make template acquire session
|
||||
DefaultNeo4jClient neo4jClient = new DefaultNeo4jClient(driver);
|
||||
try (DefaultNeo4jClient.AutoCloseableStatementRunner s = neo4jClient.getStatementRunner("aDatabase")) {
|
||||
try (DefaultNeo4jClient.AutoCloseableQueryRunner s = neo4jClient.getQueryRunner("aDatabase")) {
|
||||
s.run("MATCH (n) RETURN n");
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ class TransactionHandlingTest {
|
||||
|
||||
DefaultNeo4jClient neo4jClient = new DefaultNeo4jClient(driver);
|
||||
txTemplate.execute(tx -> {
|
||||
try (DefaultNeo4jClient.AutoCloseableStatementRunner s = neo4jClient.getStatementRunner(null)) {
|
||||
try (DefaultNeo4jClient.AutoCloseableQueryRunner s = neo4jClient.getQueryRunner(null)) {
|
||||
s.run("MATCH (n) RETURN n");
|
||||
}
|
||||
return null;
|
||||
@@ -173,7 +173,7 @@ class TransactionHandlingTest {
|
||||
|
||||
DefaultReactiveNeo4jClient neo4jClient = new DefaultReactiveNeo4jClient(driver);
|
||||
|
||||
Mono<String> sequence = neo4jClient.doInStatementRunnerForMono("aDatabase", tx -> Mono.just("1"));
|
||||
Mono<String> sequence = neo4jClient.doInQueryRunnerForMono("aDatabase", tx -> Mono.just("1"));
|
||||
|
||||
StepVerifier.create(sequence)
|
||||
.expectNext("1")
|
||||
@@ -198,7 +198,7 @@ class TransactionHandlingTest {
|
||||
DefaultReactiveNeo4jClient neo4jClient = new DefaultReactiveNeo4jClient(driver);
|
||||
|
||||
Mono<String> sequence = neo4jClient
|
||||
.doInStatementRunnerForMono("aDatabase", tx -> Mono.error(new SomeException()));
|
||||
.doInQueryRunnerForMono("aDatabase", tx -> Mono.error(new SomeException()));
|
||||
|
||||
StepVerifier.create(sequence)
|
||||
.expectError(SomeException.class)
|
||||
|
||||
@@ -36,7 +36,7 @@ import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.neo4j.driver.Driver;
|
||||
import org.neo4j.driver.Session;
|
||||
import org.neo4j.driver.StatementResult;
|
||||
import org.neo4j.driver.Result;
|
||||
import org.neo4j.driver.Transaction;
|
||||
import org.neo4j.driver.TransactionConfig;
|
||||
import org.neo4j.driver.SessionConfig;
|
||||
@@ -66,7 +66,7 @@ class Neo4jTransactionManagerTest {
|
||||
@Mock
|
||||
private Transaction transaction;
|
||||
@Mock
|
||||
private StatementResult statementResult;
|
||||
private Result statementResult;
|
||||
@Mock
|
||||
private UserTransaction userTransaction;
|
||||
|
||||
|
||||
@@ -31,8 +31,8 @@ import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.neo4j.driver.Driver;
|
||||
import org.neo4j.driver.Record;
|
||||
import org.neo4j.driver.Result;
|
||||
import org.neo4j.driver.Session;
|
||||
import org.neo4j.driver.StatementResult;
|
||||
import org.neo4j.driver.Transaction;
|
||||
import org.neo4j.driver.TransactionConfig;
|
||||
import org.neo4j.driver.Values;
|
||||
@@ -158,29 +158,29 @@ class TransactionManagerMixedDatabasesTest {
|
||||
when(defaultRecord.size()).thenReturn(1);
|
||||
when(defaultRecord.get(0)).thenReturn(Values.value(0L));
|
||||
|
||||
StatementResult boomStatementResult = mock(StatementResult.class);
|
||||
when(boomStatementResult.hasNext()).thenReturn(true);
|
||||
when(boomStatementResult.single()).thenReturn(boomRecord);
|
||||
Result boomResult = mock(Result.class);
|
||||
when(boomResult.hasNext()).thenReturn(true);
|
||||
when(boomResult.single()).thenReturn(boomRecord);
|
||||
|
||||
StatementResult defaultStatementResult = mock(StatementResult.class);
|
||||
when(defaultStatementResult.hasNext()).thenReturn(true);
|
||||
when(defaultStatementResult.single()).thenReturn(defaultRecord);
|
||||
Result defaultResult = mock(Result.class);
|
||||
when(defaultResult.hasNext()).thenReturn(true);
|
||||
when(defaultResult.single()).thenReturn(defaultRecord);
|
||||
|
||||
Transaction boomTransaction = mock(Transaction.class);
|
||||
when(boomTransaction.run(eq(TEST_QUERY), any(Map.class))).thenReturn(boomStatementResult);
|
||||
when(boomTransaction.run(eq(TEST_QUERY), any(Map.class))).thenReturn(boomResult);
|
||||
when(boomTransaction.isOpen()).thenReturn(true);
|
||||
|
||||
Transaction defaultTransaction = mock(Transaction.class);
|
||||
when(defaultTransaction.run(eq(TEST_QUERY), any(Map.class))).thenReturn(defaultStatementResult);
|
||||
when(defaultTransaction.run(eq(TEST_QUERY), any(Map.class))).thenReturn(defaultResult);
|
||||
when(defaultTransaction.isOpen()).thenReturn(true);
|
||||
|
||||
Session boomSession = mock(Session.class);
|
||||
when(boomSession.run(eq(TEST_QUERY), any(Map.class))).thenReturn(boomStatementResult);
|
||||
when(boomSession.run(eq(TEST_QUERY), any(Map.class))).thenReturn(boomResult);
|
||||
when(boomSession.beginTransaction(any(TransactionConfig.class))).thenReturn(boomTransaction);
|
||||
when(boomSession.isOpen()).thenReturn(true);
|
||||
|
||||
Session defaultSession = mock(Session.class);
|
||||
when(defaultSession.run(eq(TEST_QUERY), any(Map.class))).thenReturn(defaultStatementResult);
|
||||
when(defaultSession.run(eq(TEST_QUERY), any(Map.class))).thenReturn(defaultResult);
|
||||
when(defaultSession.beginTransaction(any(TransactionConfig.class))).thenReturn(defaultTransaction);
|
||||
when(defaultSession.isOpen()).thenReturn(true);
|
||||
|
||||
|
||||
@@ -36,8 +36,8 @@ import org.neo4j.driver.Record;
|
||||
import org.neo4j.driver.TransactionConfig;
|
||||
import org.neo4j.driver.Values;
|
||||
import org.neo4j.driver.SessionConfig;
|
||||
import org.neo4j.driver.reactive.RxResult;
|
||||
import org.neo4j.driver.reactive.RxSession;
|
||||
import org.neo4j.driver.reactive.RxStatementResult;
|
||||
import org.neo4j.driver.reactive.RxTransaction;
|
||||
import org.neo4j.springframework.data.config.AbstractReactiveNeo4jConfig;
|
||||
import org.neo4j.springframework.data.core.Neo4jClient;
|
||||
@@ -214,30 +214,30 @@ class ReactiveTransactionManagerMixedDatabasesTest {
|
||||
when(defaultRecord.size()).thenReturn(1);
|
||||
when(defaultRecord.get(0)).thenReturn(Values.value(0L));
|
||||
|
||||
RxStatementResult boomStatementResult = mock(RxStatementResult.class);
|
||||
when(boomStatementResult.records()).thenReturn(Mono.just(boomRecord));
|
||||
RxResult boomResult = mock(RxResult.class);
|
||||
when(boomResult.records()).thenReturn(Mono.just(boomRecord));
|
||||
|
||||
RxStatementResult defaultStatementResult = mock(RxStatementResult.class);
|
||||
when(defaultStatementResult.records()).thenReturn(Mono.just(defaultRecord));
|
||||
RxResult defaultResault = mock(RxResult.class);
|
||||
when(defaultResault.records()).thenReturn(Mono.just(defaultRecord));
|
||||
|
||||
RxTransaction boomTransaction = mock(RxTransaction.class);
|
||||
when(boomTransaction.run(eq(TEST_QUERY), any(Map.class))).thenReturn(boomStatementResult);
|
||||
when(boomTransaction.run(eq(TEST_QUERY), any(Map.class))).thenReturn(boomResult);
|
||||
when(boomTransaction.commit()).thenReturn(Mono.empty());
|
||||
when(boomTransaction.rollback()).thenReturn(Mono.empty());
|
||||
|
||||
RxTransaction defaultTransaction = mock(RxTransaction.class);
|
||||
when(defaultTransaction.run(eq(TEST_QUERY), any(Map.class))).thenReturn(defaultStatementResult);
|
||||
when(defaultTransaction.run(eq(TEST_QUERY), any(Map.class))).thenReturn(defaultResault);
|
||||
when(defaultTransaction.commit()).thenReturn(Mono.empty());
|
||||
when(defaultTransaction.rollback()).thenReturn(Mono.empty());
|
||||
|
||||
RxSession boomSession = mock(RxSession.class);
|
||||
when(boomSession.run(eq(TEST_QUERY), any(Map.class))).thenReturn(boomStatementResult);
|
||||
when(boomSession.run(eq(TEST_QUERY), any(Map.class))).thenReturn(boomResult);
|
||||
when(boomSession.beginTransaction()).thenReturn(Mono.just(boomTransaction));
|
||||
when(boomSession.beginTransaction(any(TransactionConfig.class))).thenReturn(Mono.just(boomTransaction));
|
||||
when(boomSession.close()).thenReturn(Mono.empty());
|
||||
|
||||
RxSession defaultSession = mock(RxSession.class);
|
||||
when(defaultSession.run(eq(TEST_QUERY), any(Map.class))).thenReturn(defaultStatementResult);
|
||||
when(defaultSession.run(eq(TEST_QUERY), any(Map.class))).thenReturn(defaultResault);
|
||||
when(defaultSession.beginTransaction()).thenReturn(Mono.just(defaultTransaction));
|
||||
when(defaultSession.beginTransaction(any(TransactionConfig.class)))
|
||||
.thenReturn(Mono.just(defaultTransaction));
|
||||
|
||||
Reference in New Issue
Block a user