private static TransactionStateMachineV1SPI createTxSpi( Supplier<TransactionIdStore> txIdStore, Duration txAwaitDuration,
DatabaseAvailabilityGuard availabilityGuard, Clock clock )
{
QueryExecutionEngine queryExecutionEngine = mock( QueryExecutionEngine.class );
DependencyResolver dependencyResolver = mock( DependencyResolver.class );
ThreadToStatementContextBridge bridge = new ThreadToStatementContextBridge( availabilityGuard );
when( dependencyResolver.resolveDependency( ThreadToStatementContextBridge.class ) ).thenReturn( bridge );
when( dependencyResolver.resolveDependency( QueryExecutionEngine.class ) ).thenReturn( queryExecutionEngine );
when( dependencyResolver.resolveDependency( DatabaseAvailabilityGuard.class ) ).thenReturn( availabilityGuard );
when( dependencyResolver.provideDependency( TransactionIdStore.class ) ).thenReturn( txIdStore );
GraphDatabaseAPI db = mock( GraphDatabaseAPI.class );
when( db.getDependencyResolver() ).thenReturn( dependencyResolver );
GraphDatabaseQueryService queryService = mock( GraphDatabaseQueryService.class );
when( queryService.getDependencyResolver() ).thenReturn( dependencyResolver );
when( dependencyResolver.resolveDependency( GraphDatabaseQueryService.class ) ).thenReturn( queryService );
BoltChannel boltChannel = new BoltChannel( "bolt-42", "bolt", new EmbeddedChannel() );
return new TransactionStateMachineV1SPI( db, boltChannel, txAwaitDuration, clock );
}
}