1/* 2 * Copyright (c) 2007 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5package org.mockito.internal.reporting; 6 7 8import org.mockito.internal.invocation.InvocationMatcher; 9import org.mockito.invocation.Invocation; 10 11/** 12 * Makes sure both wanted and actual are printed consistently (single line or multiline) 13 * <p> 14 * Makes arguments printed with types if necessary 15 */ 16public class SmartPrinter { 17 18 private final String wanted; 19 private final String actual; 20 21 public SmartPrinter(InvocationMatcher wanted, Invocation actual, Integer ... indexesOfMatchersToBeDescribedWithExtraTypeInfo) { 22 PrintSettings printSettings = new PrintSettings(); 23 printSettings.setMultiline(wanted.toString().contains("\n") || actual.toString().contains("\n")); 24 printSettings.setMatchersToBeDescribedWithExtraTypeInfo(indexesOfMatchersToBeDescribedWithExtraTypeInfo); 25 26 this.wanted = printSettings.print(wanted); 27 this.actual = printSettings.print(actual); 28 } 29 30 public String getWanted() { 31 return wanted; 32 } 33 34 public String getActual() { 35 return actual; 36 } 37}