SafeArg.of("freshTimestamp", freshTimestamp)); return ImmutableTransactionManagerConsistencyResult.builder() .consistencyState(TransactionManagerConsistencyResult.ConsistencyState.TERMINAL) .reasonForInconsistency(clocksWentBackwards(lowerBound, freshTimestamp)) .build(); SafeArg.of("freshTimestamp", freshTimestamp)); return ImmutableTransactionManagerConsistencyResult.builder() .consistencyState(TransactionManagerConsistencyResult.ConsistencyState.CONSISTENT) .build();
SafeArg.of("freshTimestamp", freshTimestamp)); return ImmutableTransactionManagerConsistencyResult.builder() .consistencyState(TransactionManagerConsistencyResult.ConsistencyState.TERMINAL) .reasonForInconsistency(clocksWentBackwards(lowerBound, freshTimestamp)) .build(); SafeArg.of("freshTimestamp", freshTimestamp)); return ImmutableTransactionManagerConsistencyResult.builder() .consistencyState(TransactionManagerConsistencyResult.ConsistencyState.CONSISTENT) .build();
private TransactionManagerConsistencyResult indeterminateResultForException(Exception ex) { return ImmutableTransactionManagerConsistencyResult.builder() .consistencyState(TransactionManagerConsistencyResult.ConsistencyState.INDETERMINATE) .reasonForInconsistency(ex) .build(); }
@Test public void returnsIndeterminateIfCannotGetConservativeBound() { TimestampCorroborationConsistencyCheck checkFailingToGetBound = ImmutableTimestampCorroborationConsistencyCheck.builder() .conservativeBound(EXCEPTION_THROWER) .freshTimestampSource(txMgr -> 7L) .build(); assertThat(checkFailingToGetBound.apply(mock(TransactionManager.class))) .isEqualTo(ImmutableTransactionManagerConsistencyResult.builder() .consistencyState(TransactionManagerConsistencyResult.ConsistencyState.INDETERMINATE) .reasonForInconsistency(EXCEPTION) .build()); }
@Test public void returnsConsistentIfBoundIsBelowFreshTimestamp() { TimestampCorroborationConsistencyCheck check = createForTimestamps(10, 20); assertThat(check.apply(mock(TransactionManager.class))) .isEqualTo(ImmutableTransactionManagerConsistencyResult.builder() .consistencyState(TransactionManagerConsistencyResult.ConsistencyState.CONSISTENT) .build()); }
private TransactionManagerConsistencyResult indeterminateResultForException(Exception ex) { return ImmutableTransactionManagerConsistencyResult.builder() .consistencyState(TransactionManagerConsistencyResult.ConsistencyState.INDETERMINATE) .reasonForInconsistency(ex) .build(); }
@Test public void returnsIndeterminateIfCannotGetFreshTimestamp() { TimestampCorroborationConsistencyCheck checkFailingToGetFresh = ImmutableTimestampCorroborationConsistencyCheck.builder() .conservativeBound(txMgr -> 10L) .freshTimestampSource(EXCEPTION_THROWER) .build(); assertThat(checkFailingToGetFresh.apply(mock(TransactionManager.class))) .isEqualTo(ImmutableTransactionManagerConsistencyResult.builder() .consistencyState(TransactionManagerConsistencyResult.ConsistencyState.INDETERMINATE) .reasonForInconsistency(EXCEPTION) .build()); }