@Test public void infoEventsAreNotLost() { InfoEvent infoEvent = TestEventUtils.createInfoEvent(0, PROCESS_1, RequestType.LOCK); CheckerResult checkerResult = runPartitionChecker(() -> identityChecker, ImmutableList.<Event>of(infoEvent)); assertThat(checkerResult.valid()).isFalse(); assertThat(checkerResult.errors()).containsExactly(infoEvent); }
@Test public void partitioningOnlyReordersEvents() { CheckerResult checkerResult = runPartitionChecker(() -> identityChecker, eventList); assertThat(checkerResult.valid()).isFalse(); assertThat(checkerResult.errors().size()).isEqualTo(eventList.size()); assertThat(checkerResult.errors()).containsOnlyElementsOf(eventList); }
@Test public void universalFailureCheckerShouldFail() { InvokeEvent invokeEvent = TestEventUtils.invokeLock(0, PROCESS_1, LOCK_1); OkEvent okEvent = TestEventUtils.lockSuccess(1, PROCESS_1); CheckerResult checkerResult = runPartitionChecker(() -> identityChecker, ImmutableList.of(invokeEvent, okEvent)); assertThat(checkerResult.valid()).isFalse(); assertThat(checkerResult.errors()).containsExactly(invokeEvent, okEvent); }
@Test public void infoEventsAreLockIndependent() { InvokeEvent invokeEvent = TestEventUtils.invokeLock(0, PROCESS_1, LOCK_1); OkEvent okEvent = TestEventUtils.lockSuccess(1, PROCESS_1); List<Event> infoEventList = ImmutableList.<Event>builder() .add(TestEventUtils.createInfoEvent(0, PROCESS_1, RequestType.LOCK)) .add(invokeEvent) .add(okEvent) .add(TestEventUtils.createInfoEvent(2, PROCESS_1, RequestType.LOCK)) .build(); CheckerResult checkerResult = runPartitionChecker(() -> filterChecker(LOCK_1), infoEventList); assertThat(checkerResult.valid()).isFalse(); assertThat(checkerResult.errors()).containsExactlyElementsOf(ImmutableList.of(invokeEvent, okEvent)); }
@Test public void partitionsRetainRelativeOrdering() { CheckerResult checkerResult = runPartitionChecker(() -> filterChecker(LOCK_2), eventList); assertThat(checkerResult.valid()).isFalse(); assertThat(checkerResult.errors()).containsExactlyElementsOf(onlyLock2EventList); }