@Test public void shouldSucceedOnNoEvents() { CheckerResult result = runChecker(); assertThat(result.valid()).isTrue(); assertThat(result.errors()).isEmpty(); }
@Test public void shouldFailOnDecreasingConfirmedReadsAcrossTwoProcesses() { long time = 0; Event event1 = TestEventUtils.invokeTimestamp(time++, PROCESS_0); Event event2 = TestEventUtils.timestampOk(time++, PROCESS_0, "1"); Event event3 = TestEventUtils.invokeTimestamp(time++, PROCESS_1); Event event4 = TestEventUtils.timestampOk(time++, PROCESS_1, "0"); CheckerResult result = runChecker(event1, event2, event3, event4); assertThat(result.valid()).isFalse(); assertThat(result.errors()).containsExactly(event2, event3, event4); }
@Test public void shouldFailOnDecreasingConfirmedReadsOnOneProcess() { long time = 0; Event event1 = TestEventUtils.invokeTimestamp(time++, PROCESS_0); Event event2 = TestEventUtils.timestampOk(time++, PROCESS_0, "1"); Event event3 = TestEventUtils.invokeTimestamp(time++, PROCESS_0); Event event4 = TestEventUtils.timestampOk(time++, PROCESS_0, "0"); CheckerResult result = runChecker(event1, event2, event3, event4); assertThat(result.valid()).isFalse(); assertThat(result.errors()).containsExactly(event2, event3, event4); }
@Test public void shouldFailOnEqualConfirmedReads() { long time = 0; Event event1 = TestEventUtils.invokeTimestamp(time++, PROCESS_0); Event event2 = TestEventUtils.timestampOk(time++, PROCESS_0, "0"); Event event3 = TestEventUtils.invokeTimestamp(time++, PROCESS_0); Event event4 = TestEventUtils.timestampOk(time++, PROCESS_0, "0"); CheckerResult result = runChecker(event1, event2, event3, event4); assertThat(result.valid()).isFalse(); assertThat(result.errors()).containsExactly(event2, event3, event4); }