blob: 1453e56292169c068157630de1b01e3435da9c9f [file] [log] [blame]
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockitousage.verification;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.exceptions.verification.WantedButNotInvoked;
import org.mockitousage.IMethods;
import org.mockitoutil.TestBase;
import static junit.framework.TestCase.fail;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.verify;
public class OrdinaryVerificationPrintsAllInteractionsTest extends TestBase {
@Mock private IMethods mock;
@Mock private IMethods mockTwo;
@Test
public void shouldShowAllInteractionsOnMockWhenOrdinaryVerificationFail() throws Exception {
//given
firstInteraction();
secondInteraction();
verify(mock).otherMethod(); //verify 1st interaction
try {
//when
verify(mock).simpleMethod();
fail();
} catch (WantedButNotInvoked e) {
//then
assertThat(e)
.hasMessageContaining("However, there were exactly 2 interactions with this mock")
.hasMessageContaining("firstInteraction(")
.hasMessageContaining("secondInteraction(");
}
}
@Test
public void shouldNotShowAllInteractionsOnDifferentMock() throws Exception {
differentMockInteraction();
firstInteraction();
try {
verify(mock).simpleMethod();
fail();
} catch (WantedButNotInvoked e) {
assertThat(e.getMessage()).contains("firstInteraction(").doesNotContain("differentMockInteraction(");
}
}
@Test
public void shouldNotShowAllInteractionsHeaderWhenNoOtherInteractions() throws Exception {
try {
verify(mock).simpleMethod();
fail();
} catch (WantedButNotInvoked e) {
assertThat(e).hasMessageContaining("there were zero interactions with this mock.");
}
}
private void differentMockInteraction() {
mockTwo.simpleMethod();
}
private void secondInteraction() {
mock.booleanReturningMethod();
}
private void firstInteraction() {
mock.otherMethod();
}
}