| /* |
| * 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(); |
| } |
| } |