| package org.mockitousage.debugging; |
| |
| import org.junit.Assert; |
| import org.junit.Test; |
| import org.mockito.Mock; |
| import org.mockito.internal.debugging.InvocationsPrinter; |
| import org.mockitousage.IMethods; |
| import org.mockitoutil.TestBase; |
| |
| import static org.assertj.core.api.Assertions.assertThat; |
| import static org.mockito.Mockito.when; |
| |
| public class InvocationsPrinterTest extends TestBase { |
| |
| @Mock IMethods mock; |
| |
| @Test public void no_invocations() { |
| assertThat(new InvocationsPrinter().printInvocations(mock)).isEqualTo("No interactions and stubbings found for mock: mock"); |
| } |
| |
| @Test public void prints_invocations() { |
| mock.simpleMethod(100); |
| triggerInteraction(); |
| |
| assertThat(filterLineNo(new InvocationsPrinter().printInvocations(mock))) |
| .isEqualTo(filterLineNo("[Mockito] Interactions of: mock\n" + |
| " 1. mock.simpleMethod(100);\n" + |
| " -> at org.mockitousage.debugging.InvocationsPrinterTest.prints_invocations(InvocationsPrinterTest.java:0)\n" + |
| " 2. mock.otherMethod();\n" + |
| " -> at org.mockitousage.debugging.InvocationsPrinterTest.triggerInteraction(InvocationsPrinterTest.java:0)\n")); |
| } |
| |
| @Test public void prints_stubbings() { |
| triggerStubbing(); |
| |
| assertThat(filterLineNo(new InvocationsPrinter().printInvocations(mock))) |
| .isEqualTo(filterLineNo("[Mockito] Unused stubbings of: mock\n" + |
| " 1. mock.simpleMethod(\"a\");\n" + |
| " - stubbed -> at org.mockitousage.debugging.InvocationsPrinterTest.triggerStubbing(InvocationsPrinterTest.java:70)\n")); |
| } |
| |
| @Test public void prints_invocations_and_stubbings() { |
| triggerStubbing(); |
| |
| mock.simpleMethod("a"); |
| triggerInteraction(); |
| |
| assertThat(filterLineNo(new InvocationsPrinter().printInvocations(mock))) |
| .isEqualTo(filterLineNo("[Mockito] Interactions of: mock\n" + |
| " 1. mock.simpleMethod(\"a\");\n" + |
| " -> at org.mockitousage.debugging.InvocationsPrinterTest.prints_invocations_and_stubbings(InvocationsPrinterTest.java:49)\n" + |
| " - stubbed -> at org.mockitousage.debugging.InvocationsPrinterTest.triggerStubbing(InvocationsPrinterTest.java:73)\n" + |
| " 2. mock.otherMethod();\n" + |
| " -> at org.mockitousage.debugging.InvocationsPrinterTest.triggerInteraction(InvocationsPrinterTest.java:34)\n")); |
| } |
| |
| @Test public void prints_invocations_and_unused_stubbings() { |
| triggerStubbing(); |
| |
| mock.simpleMethod("b"); |
| triggerInteraction(); |
| |
| assertThat(filterLineNo(new InvocationsPrinter().printInvocations(mock))) |
| .isEqualTo(filterLineNo("[Mockito] Interactions of: mock\n" + |
| " 1. mock.simpleMethod(\"b\");\n" + |
| " -> at org.mockitousage.debugging.InvocationsPrinterTest.prints_invocations_and_unused_stubbings(InvocationsPrinterTest.java:55)\n" + |
| " 2. mock.otherMethod();\n" + |
| " -> at org.mockitousage.debugging.InvocationsPrinterTest.triggerInteraction(InvocationsPrinterTest.java:34)\n" + |
| "[Mockito] Unused stubbings of: mock\n" + |
| " 1. mock.simpleMethod(\"a\");\n" + |
| " - stubbed -> at org.mockitousage.debugging.InvocationsPrinterTest.triggerStubbing(InvocationsPrinterTest.java:62)\n")); |
| } |
| |
| private void triggerInteraction() { |
| mock.otherMethod(); |
| } |
| |
| private void triggerStubbing() { |
| when(mock.simpleMethod("a")).thenReturn("x"); |
| } |
| } |