@Test(timeout = 2000) public void expectedMismatchMessage() { final ValueHolder<String> lastMismatchMessage = new ValueHolder<String>(); with() .conditionEvaluationListener(new ConditionEvaluationListener<Integer>() { public void conditionEvaluated(EvaluatedCondition<Integer> condition) { if (!condition.isSatisfied()) { lastMismatchMessage.value = condition.getDescription(); } } }) .until(new CountDown(10), is(equalTo(5))); String expectedMismatchMessage = String.format("%s expected <5> but was <6>", CountDown.class.getName()); assertThat(lastMismatchMessage.value, is(equalTo(expectedMismatchMessage))); }
@Test(timeout = 2000) public void expectedMismatchMessageForComplexMatchers() { final ValueHolder<String> lastMismatchMessage = new ValueHolder<String>(); with() .conditionEvaluationListener(new ConditionEvaluationListener<CountDownBean>() { public void conditionEvaluated(EvaluatedCondition<CountDownBean> condition) { if (!condition.isSatisfied()) { lastMismatchMessage.value = condition.getDescription(); } } }) .until(new CountDownProvider(new CountDownBean(10, 20)), samePropertyValuesAs(new CountDownBean(10, 10))); String expectedMismatchMessage = String.format("%s expected same property values as CountDownBean [countDown: <10>, secondCountDown: <10>] but secondCountDown was <11>", CountDownProvider.class.getName()); assertThat(lastMismatchMessage.value, is(equalTo(expectedMismatchMessage))); }
@Test(timeout = 2000) public void expectedMatchMessage() { final ValueHolder<String> lastMatchMessage = new ValueHolder<String>(); with() .conditionEvaluationListener(new ConditionEvaluationListener<Integer>() { public void conditionEvaluated(EvaluatedCondition<Integer> condition) { lastMatchMessage.value = condition.getDescription(); } }) .until(new CountDown(10), is(equalTo(5))); String expectedMatchMessage = String.format("%s reached its end value of <5>", CountDown.class.getName()); assertThat(lastMatchMessage.value, is(equalTo(expectedMatchMessage))); }