### Question:
Ack { public Ack and(Ack ack) { return validate(isSuccess() && ack.isSuccess()); }  static Ack validate(boolean test); static Ack validate(Optional<?> optional); static Ack one(int count); Ack and(Ack ack); Ack or(Ack ack); static final Ack OK; static final Ack NOK; }### Answer:
@Test public void and() { assertFalse(Ack.NOK.and(Ack.NOK).isSuccess()); assertFalse(Ack.NOK.and(Ack.OK).isSuccess()); assertFalse(Ack.OK.and(Ack.NOK).isSuccess()); assertTrue(Ack.OK.and(Ack.OK).isSuccess()); }