/* * Copyright (c) 2007 Mockito contributors * This program is made available under the terms of the MIT License. */ package org.mockito.internal.verification; import static org.assertj.core.api.Assertions.assertThat; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.internal.invocation.InvocationMatcher; import org.mockito.internal.reporting.SmartPrinter; import org.mockitousage.IMethods; import org.mockitoutil.TestBase; public class SmartPrinterTest extends TestBase { private InvocationMatcher multi; private InvocationMatcher shortie; @Mock private IMethods mock; @Before public void setup() throws Exception { mock.varargs("first very long argument", "second very long argument", "another very long argument"); multi = new InvocationMatcher(getLastInvocation()); mock.varargs("short arg"); shortie = new InvocationMatcher(getLastInvocation()); } @Test public void shouldPrintBothInMultilinesWhenFirstIsMulti() { //when SmartPrinter printer = new SmartPrinter(multi, shortie.getInvocation()); //then assertThat(printer.getWanted()).contains("\n"); assertThat(printer.getActual()).contains("\n"); } @Test public void shouldPrintBothInMultilinesWhenSecondIsMulti() { //when SmartPrinter printer = new SmartPrinter(shortie, multi.getInvocation()); //then assertThat(printer.getWanted()).contains("\n"); assertThat(printer.getActual()).contains("\n"); } @Test public void shouldPrintBothInMultilinesWhenBothAreMulti() { //when SmartPrinter printer = new SmartPrinter(multi, multi.getInvocation()); //then assertThat(printer.getWanted()).contains("\n"); assertThat(printer.getActual()).contains("\n"); } @Test public void shouldPrintBothInSingleLineWhenBothAreShort() { //when SmartPrinter printer = new SmartPrinter(shortie, shortie.getInvocation()); //then assertThat(printer.getWanted()).doesNotContain("\n"); assertThat(printer.getActual()).doesNotContain("\n"); } }