TimeLockClient implements AutoCloseable, TimelockService { @Override public boolean isInitialized() { return delegate.isInitialized() && timestampService.isInitialized(); } @VisibleForTesting  TimeLockClient(TimelockService delegate, CloseableTimestampService timestampService,
            LockRefresher lockRefresher, TimeLockUnlocker unlocker); static TimeLockClient createDefault(TimelockService timelockService); static TimeLockClient withSynchronousUnlocker(TimelockService timelockService); @Override boolean isInitialized(); @Override long getFreshTimestamp(); @Override long getCommitTimestamp(long startTs, LockToken commitLocksToken); @Override TimestampRange getFreshTimestamps(int numTimestampsRequested); @Override LockImmutableTimestampResponse lockImmutableTimestamp(); @Override List<StartIdentifiedAtlasDbTransactionResponse> startIdentifiedAtlasDbTransactionBatch(int count); @Override long getImmutableTimestamp(); @Override LockResponse lock(LockRequest request); @Override WaitForLocksResponse waitForLocks(WaitForLocksRequest request); @Override Set<LockToken> refreshLockLeases(Set<LockToken> tokens); @Override Set<LockToken> unlock(Set<LockToken> tokens); @Override void tryUnlock(Set<LockToken> tokens); @Override long currentTimeMillis(); @Override void close();  }
@Test public void delegatesInitializationCheck() { when(delegate.isInitialized()) .thenReturn(false) .thenReturn(true); when(timestampService.isInitialized()).thenReturn(true); assertFalse(timelock.isInitialized()); assertTrue(timelock.isInitialized()); }