@Override public long currentTimeMillis() { return executeWithRecord(() -> timelockService.currentTimeMillis()); }
private void setTimelockTime(long timeMillis) { when(timelockService.currentTimeMillis()).thenReturn(timeMillis); }
private void assertDependencyUnavailableIsThrownWhenWeCatch(Throwable cause) { Throwable exceptionToThrow = new RuntimeException(cause); when(delegate.currentTimeMillis()).thenThrow(exceptionToThrow); assertThatThrownBy(timelock::currentTimeMillis).isInstanceOf(AtlasDbDependencyException.class); }
@Test public void currentTimeMillisDelegates() { long time = 456L; when(delegate.currentTimeMillis()).thenReturn(time); assertThat(timelock.currentTimeMillis()).isEqualTo(time); }
@Test public void doesNotThrowDependencyExceptionWhenDelegateFailsForSomeOtherReason() { when(delegate.currentTimeMillis()).thenThrow(new RuntimeException("something else happened")); assertThatThrownBy(timelock::currentTimeMillis).isInstanceOf(RuntimeException.class) .isNotInstanceOf(AtlasDbDependencyException.class); }
@Test public void methodsNotOnTimestampServiceRoutedToDelegateService() { decoratingService.currentTimeMillis(); verify(delegate).currentTimeMillis(); IdentifiedTimeLockRequest immutableTimestampRequest = IdentifiedTimeLockRequest.create(); decoratingService.lockImmutableTimestamp(immutableTimestampRequest); verify(delegate).lockImmutableTimestamp(eq(immutableTimestampRequest)); } }
private void assertThatTimeAndLockMetricsAreRecorded(String timestampMetric, String lockMetric) { assertThat(metricsManager.getRegistry().timer(timestampMetric).getCount(), is(equalTo(0L))); assertThat(metricsManager.getRegistry().timer(lockMetric).getCount(), is(equalTo(0L))); TransactionManagers.LockAndTimestampServices lockAndTimestamp = getLockAndTimestampServices(); lockAndTimestamp.timelock().getFreshTimestamp(); lockAndTimestamp.timelock().currentTimeMillis(); assertThat(metricsManager.getRegistry().timer(timestampMetric).getCount(), is(equalTo(1L))); assertThat(metricsManager.getRegistry().timer(lockMetric).getCount(), is(equalTo(1L))); }
@Override public long currentTimeMillis() { return executeWithRecord(() -> timelockService.currentTimeMillis()); }
private void verifyUserAgentOnTimestampAndLockRequests(String timestampPath, String lockPath) { InMemoryTimestampService ts = new InMemoryTimestampService(); TransactionManagers.LockAndTimestampServices lockAndTimestamp = TransactionManagers.createLockAndTimestampServices( metricsManager, config, () -> runtimeConfig, environment, LockServiceImpl::create, () -> ts, () -> ts, invalidator, USER_AGENT); lockAndTimestamp.timelock().getFreshTimestamp(); lockAndTimestamp.timelock().currentTimeMillis(); availableServer.verify(postRequestedFor(urlMatching(timestampPath)) .withHeader(USER_AGENT_HEADER, WireMock.equalTo(USER_AGENT))); availableServer.verify(postRequestedFor(urlMatching(lockPath)) .withHeader(USER_AGENT_HEADER, WireMock.equalTo(USER_AGENT))); }