diff --git a/community/server/src/test/java/org/neo4j/server/rest/transactional/TransactionHandleTest.java b/community/server/src/test/java/org/neo4j/server/rest/transactional/TransactionHandleTest.java index 357375ec60784..27a11edbca925 100644 --- a/community/server/src/test/java/org/neo4j/server/rest/transactional/TransactionHandleTest.java +++ b/community/server/src/test/java/org/neo4j/server/rest/transactional/TransactionHandleTest.java @@ -26,8 +26,8 @@ import org.mockito.InOrder; import java.net.URI; -import java.util.Collections; import java.util.HashSet; +import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; @@ -80,9 +80,7 @@ public void shouldExecuteStatements() throws Exception QueryExecutionEngine executionEngine = mock( QueryExecutionEngine.class ); Result executionResult = mock( Result.class ); - QuerySession querySession = mock( QuerySession.class ); - when( kernel.create( "X", Collections.emptyMap(), any( GraphDatabaseQueryService.class ), any( Type.class ), any( AccessMode.class ), - any( HttpServletRequest.class )) ).thenReturn( querySession ); + QuerySession querySession = prepareKernelWithQuerySession( kernel ); when( executionEngine.executeQuery( "query", map(), querySession ) ).thenReturn( executionResult ); TransactionRegistry registry = mock( TransactionRegistry.class ); when( registry.begin( any( TransactionHandle.class ) ) ).thenReturn( 1337L ); @@ -116,9 +114,7 @@ public void shouldSuspendTransactionAndReleaseForOtherRequestsAfterExecutingStat TransactionRegistry registry = mock( TransactionRegistry.class ); QueryExecutionEngine executionEngine = mock( QueryExecutionEngine.class ); - QuerySession querySession = mock( QuerySession.class ); - when( kernel.create( "X", Collections.emptyMap(), any( GraphDatabaseQueryService.class ), any( Type.class ), any( AccessMode.class ), - any( HttpServletRequest.class )) ).thenReturn( querySession ); + QuerySession querySession = prepareKernelWithQuerySession( kernel ); Result executionResult = mock( Result.class ); when( executionEngine.executeQuery( "query", map(), querySession ) ).thenReturn( executionResult ); when( registry.begin( any( TransactionHandle.class ) ) ).thenReturn( 1337L ); @@ -152,10 +148,8 @@ public void shouldResumeTransactionWhenExecutingStatementsOnSecondRequest() thro TransitionalTxManagementKernelTransaction transactionContext = kernel.newTransaction( explicit, FULL ); TransactionRegistry registry = mock( TransactionRegistry.class ); - QuerySession querySession = mock( QuerySession.class ); QueryExecutionEngine executionEngine = mock( QueryExecutionEngine.class ); - when( kernel.create( "X", Collections.emptyMap(), any( GraphDatabaseQueryService.class ), any( Type.class ), any( AccessMode.class ), - any( HttpServletRequest.class )) ).thenReturn( querySession ); + QuerySession querySession = prepareKernelWithQuerySession( kernel ); when( registry.begin( any( TransactionHandle.class ) ) ).thenReturn( 1337L ); TransactionHandle handle = getTransactionHandle( kernel, executionEngine, registry ); ExecutionResultSerializer output = mock( ExecutionResultSerializer.class ); @@ -196,9 +190,7 @@ public void shouldCommitSinglePeriodicCommitStatement() throws Exception QueryExecutionEngine executionEngine = mock( QueryExecutionEngine.class ); Result executionResult = mock( Result.class ); - QuerySession querySession = mock( QuerySession.class ); - when( kernel.create( "X", Collections.emptyMap(), any( GraphDatabaseQueryService.class ), any( Type.class ), any( AccessMode.class ), - any( HttpServletRequest.class )) ).thenReturn( querySession ); + QuerySession querySession = prepareKernelWithQuerySession( kernel ); when( executionEngine.isPeriodicCommit( queryText) ).thenReturn( true ); when( executionEngine.executeQuery( eq( queryText ), eq( map() ), eq( querySession ) ) ) .thenReturn( executionResult ); @@ -233,10 +225,7 @@ public void shouldCommitTransactionAndTellRegistryToForgetItsHandle() throws Exc TransactionRegistry registry = mock( TransactionRegistry.class ); QueryExecutionEngine engine = mock( QueryExecutionEngine.class ); - QuerySession querySession = mock( QuerySession.class ); - when( kernel.create( "X", Collections.emptyMap(), any( GraphDatabaseQueryService.class ), any( Type.class ), any( AccessMode.class ), - any( HttpServletRequest.class )) ).thenReturn( querySession ); - + QuerySession querySession = prepareKernelWithQuerySession( kernel ); Result result = mock( Result.class ); when( engine.executeQuery( "query", map(), querySession ) ).thenReturn( result ); when( registry.begin( any( TransactionHandle.class ) ) ).thenReturn( 1337L ); @@ -301,9 +290,7 @@ public void shouldCreateTransactionContextOnlyWhenFirstNeeded() throws Exception // when QueryExecutionEngine engine = mock( QueryExecutionEngine.class ); Result executionResult = mock( Result.class ); - QuerySession querySession = mock( QuerySession.class ); - when( kernel.create( "X", Collections.emptyMap(), any( GraphDatabaseQueryService.class ), any( Type.class ), any( AccessMode.class ), - any( HttpServletRequest.class )) ).thenReturn( querySession ); + QuerySession querySession = prepareKernelWithQuerySession( kernel ); when( engine.executeQuery( "query", map(), querySession ) ).thenReturn( executionResult ); when( registry.begin( any( TransactionHandle.class ) ) ).thenReturn( 1337L ); GraphDatabaseQueryService queryService = mock( GraphDatabaseQueryService.class ); @@ -340,9 +327,7 @@ public void shouldRollbackTransactionIfExecutionErrorOccurs() throws Exception TransactionRegistry registry = mock( TransactionRegistry.class ); QueryExecutionEngine executionEngine = mock( QueryExecutionEngine.class ); - QuerySession querySession = mock( QuerySession.class ); - when( kernel.create( "X", Collections.emptyMap(), any( GraphDatabaseQueryService.class ), any( Type.class ), any( AccessMode.class ), - any( HttpServletRequest.class )) ).thenReturn( querySession ); + QuerySession querySession = prepareKernelWithQuerySession( kernel ); when( executionEngine.executeQuery( "query", map(), querySession ) ).thenThrow( new NullPointerException() ); when( registry.begin( any( TransactionHandle.class ) ) ).thenReturn( 1337L ); @@ -380,9 +365,7 @@ public void shouldLogMessageIfCommitErrorOccurs() throws Exception QueryExecutionEngine engine = mock( QueryExecutionEngine.class ); Result executionResult = mock( Result.class ); - QuerySession querySession = mock( QuerySession.class ); - when( kernel.create( "X", Collections.emptyMap(), any( GraphDatabaseQueryService.class ), any( Type.class ), any( AccessMode.class ), - any( HttpServletRequest.class )) ).thenReturn( querySession ); + QuerySession querySession = prepareKernelWithQuerySession( kernel ); when( engine.executeQuery( "query", map(), querySession ) ).thenReturn( executionResult ); when( registry.begin( any( TransactionHandle.class ) ) ).thenReturn( 1337L ); GraphDatabaseQueryService queryService = mock( GraphDatabaseQueryService.class ); @@ -412,9 +395,7 @@ public void shouldLogMessageIfCypherSyntaxErrorOccurs() throws Exception TransitionalPeriodTransactionMessContainer kernel = mockKernel(); QueryExecutionEngine executionEngine = mock( QueryExecutionEngine.class ); - QuerySession querySession = mock( QuerySession.class ); - when( kernel.create( "X", Collections.emptyMap(), any( GraphDatabaseQueryService.class ), any( Type.class ), any( AccessMode.class ), - any( HttpServletRequest.class )) ).thenReturn( querySession ); + QuerySession querySession = prepareKernelWithQuerySession( kernel ); when( executionEngine.executeQuery( "matsch (n) return n", map(), querySession ) ) .thenThrow( new QueryExecutionKernelException( new SyntaxException( "did you mean MATCH?" ) ) ); @@ -572,4 +553,19 @@ public void describeTo( Description description ) } }; } + + private QuerySession prepareKernelWithQuerySession( TransitionalPeriodTransactionMessContainer kernel ) + { + QuerySession querySession = mock( QuerySession.class ); + when( + kernel.create( + any( String.class ), + any( Map.class ), + any( GraphDatabaseQueryService.class ), + any( Type.class ), + any( AccessMode.class ), + any( HttpServletRequest.class ) ) ). + thenReturn( querySession ); + return querySession; + } }