@Override protected boolean matchesSafely(Next<M, F> item, Description mismatchDescription) { if (item.hasEffects()) { mismatchDescription.appendText("has effects"); return false; } else { mismatchDescription.appendText("no effects"); return true; } }
@Override protected boolean matchesSafely(Next<M, F> item, Description mismatchDescription) { if (!item.hasEffects()) { mismatchDescription.appendText("no effects"); return false; } else if (!matcher.matches(item.effects())) { mismatchDescription.appendText("bad effects: "); matcher.describeMismatch(item.effects(), mismatchDescription); return false; } else { mismatchDescription.appendText("has effects: "); matcher.describeMismatch(item.effects(), mismatchDescription); return true; } }
@Test public void nextNoEffectsOnlyHasModel() throws Exception { Next<String, String> next = Next.next("foo"); assertTrue(next.hasModel()); assertFalse(next.hasEffects()); }
@Test public void nextNoopHasNoModelAndNoEffects() throws Exception { Next<String, String> next = noChange(); assertFalse(next.hasModel()); assertFalse(next.hasEffects()); }
@Test public void nextEffectsOnlyHasEffects() throws Exception { Next<String, String> next = dispatch(effects("foo")); assertFalse(next.hasModel()); assertTrue(next.hasEffects()); }
@Test public void nextModelAndEffectsHasBothModelAndEffects() throws Exception { Next<String, String> next = Next.next("m", effects("f")); assertTrue(next.hasModel()); assertTrue(next.hasEffects()); }