LocalPaxosComponents { public PingableLeader pingableLeader(Client client) { return getOrCreateComponents(client).pingableLeader(); } private  LocalPaxosComponents(TimelockPaxosMetrics metrics,
            PaxosUseCase paxosUseCase,
            Path legacyLogDirectory,
            DataSource sqliteDataSource,
            UUID leaderUuid,
            boolean canCreateNewClients,
            OrderableSlsVersion timeLockVersion); static LocalPaxosComponents createWithBlockingMigration(TimelockPaxosMetrics metrics,
            PaxosUseCase paxosUseCase,
            Path legacyLogDirectory,
            DataSource sqliteDataSource,
            UUID leaderUuid,
            boolean canCreateNewClients,
            OrderableSlsVersion timeLockVersion); PaxosAcceptor acceptor(Client client); PaxosLearner learner(Client client); PingableLeader pingableLeader(Client client); BatchPaxosAcceptor batchAcceptor(); BatchPaxosLearner batchLearner(); BatchPingableLeader batchPingableLeader();  }
@Test public void returnsTimeLockVersionWithIsLeaderBoolean() { PingableLeader pingableLeader = paxosComponents.pingableLeader(CLIENT); assertThat(pingableLeader.pingV2().timeLockVersion()) .isEqualTo(Optional.of(DEFAULT_TIME_LOCK_VERSION)); assertThat(pingableLeader.pingV2().isLeader()).isNotNull(); pingableLeader = createPaxosComponents(true, TIMELOCK_VERSION) .pingableLeader(CLIENT); assertThat(pingableLeader.pingV2().timeLockVersion()).isPresent(); assertThat(pingableLeader.pingV2().timeLockVersion().get()).isEqualTo(TIMELOCK_VERSION); }