### Question:
LocalDatabase implements Lifecycle { @Override public synchronized void start() { if ( isAvailable() ) { return; } storeId = readStoreIdFromDisk(); log.info( "Starting with storeId: " + storeId ); dataSourceManager.start(); dropAvailabilityGuard(); } LocalDatabase( DatabaseLayout databaseLayout,
            StoreFiles storeFiles,
            LogFiles logFiles,
            DataSourceManager dataSourceManager,
            Supplier<DatabaseHealth> databaseHealthSupplier,
            AvailabilityGuard availabilityGuard,
            LogProvider logProvider ); @Override void init(); @Override synchronized void start(); @Override void stop(); void stopForStoreCopy(); boolean isAvailable(); @Override void shutdown(); synchronized StoreId storeId(); void panic( Throwable cause ); void assertHealthy( Class<EXCEPTION> cause ); void delete(); boolean isEmpty(); DatabaseLayout databaseLayout(); NeoStoreDataSource dataSource(); void registerCommitProcessDependencies( TransactionAppender appender, StorageEngine applier ); TransactionCommitProcess getCommitProcess();  }### Answer:
@Test public void doNotRestartServicesIfAlreadyStarted() { DataSourceManager dataSourceManager = mock( DataSourceManager.class ); LocalDatabase localDatabase = newLocalDatabase( newAvailabilityGuard(), dataSourceManager ); localDatabase.start(); verify( dataSourceManager ).start(); reset( dataSourceManager ); localDatabase.start(); localDatabase.start(); verify( dataSourceManager, never() ).start(); }