LongMismatch { public static ValueMismatch unexpectedValue(long expected, long actual, long newValue, int version) { checkNotNullOrEqual(expected, actual); return of(expected, actual, newValue, version); } private  LongMismatch(); static ValueMismatch expectedZero(long actual, long newValue, int version); static ValueMismatch expectedNonZero(long expected, long newValue, int version); static ValueMismatch unexpectedValue(long expected, long actual,
                                                long newValue, int version); static ValueMismatch of(long expected, long actual, long newValue, int version); static long unpackExpected(ValueMismatch mismatch); static long unpackActual(ValueMismatch mismatch); static long unpackNewValue(ValueMismatch mismatch);  }
@Test @DisplayName("not accept same expected and actual values") void notAcceptSameExpectedAndActual() { long value = 1919L; assertThrows(IllegalArgumentException.class, () -> unexpectedValue(value, value, NEW_VALUE, VERSION)); }