private void setUpMocks() { queryService = mock( GraphDatabaseQueryService.class ); DependencyResolver resolver = mock( DependencyResolver.class ); txBridge = mock( ThreadToStatementContextBridge.class ); initialStatement = mock( KernelStatement.class ); statistics = new ConfiguredExecutionStatistics(); QueryRegistryOperations queryRegistryOperations = mock( QueryRegistryOperations.class ); InternalTransaction internalTransaction = mock( InternalTransaction.class ); when( internalTransaction.terminationReason() ).thenReturn( Optional.empty() ); when( initialStatement.queryRegistration() ).thenReturn( queryRegistryOperations ); when( queryService.getDependencyResolver() ).thenReturn( resolver ); when( resolver.resolveDependency( ThreadToStatementContextBridge.class ) ).thenReturn( txBridge ); when( queryService.beginTransaction( any(), any() ) ).thenReturn( internalTransaction ); KernelTransaction mockTransaction = mockTransaction( initialStatement ); when( txBridge.get() ).thenReturn( initialStatement ); when( txBridge.getKernelTransactionBoundToThisThread(true ) ).thenReturn( mockTransaction ); }
@Test public void accumulateExecutionStatisticOverCommitAndRestart() { InternalTransaction initialTransaction = mock( InternalTransaction.class, new ReturnsDeepStubs() ); when( initialTransaction.terminationReason() ).thenReturn( Optional.empty() ); Kernel kernel = mock( Kernel.class ); Neo4jTransactionalContext transactionalContext = new Neo4jTransactionalContext( queryService, txBridge, null, initialTransaction, initialStatement, null, kernel ); statistics.setFaults( 2 ); statistics.setHits( 5 ); transactionalContext.commitAndRestartTx(); statistics.setFaults( 2 ); statistics.setHits( 5 ); transactionalContext.commitAndRestartTx(); statistics.setFaults( 2 ); statistics.setHits( 5 ); StatisticProvider statisticProvider = transactionalContext.kernelStatisticProvider(); assertEquals( "Expect to see accumulated number of page cache misses.", 6, statisticProvider.getPageCacheMisses() ); assertEquals( "Expected to see accumulated number of page cache hits.", 15, statisticProvider.getPageCacheHits() ); }