1 /* 2 * Copyright (c) 2007 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5 package org.mockito.internal.matchers.text; 6 7 import org.mockito.ArgumentMatcher; 8 import org.mockito.internal.matchers.ContainsExtraTypeInfo; 9 import org.mockito.internal.reporting.PrintSettings; 10 11 import java.util.Iterator; 12 import java.util.LinkedList; 13 import java.util.List; 14 15 @SuppressWarnings("unchecked") 16 public class MatchersPrinter { 17 getArgumentsLine(List<ArgumentMatcher> matchers, PrintSettings printSettings)18 public String getArgumentsLine(List<ArgumentMatcher> matchers, PrintSettings printSettings) { 19 Iterator args = applyPrintSettings(matchers, printSettings); 20 return ValuePrinter.printValues("(", ", ", ");", args); 21 } 22 getArgumentsBlock(List<ArgumentMatcher> matchers, PrintSettings printSettings)23 public String getArgumentsBlock(List<ArgumentMatcher> matchers, PrintSettings printSettings) { 24 Iterator args = applyPrintSettings(matchers, printSettings); 25 return ValuePrinter.printValues("(\n ", ",\n ", "\n);", args); 26 } 27 applyPrintSettings(List<ArgumentMatcher> matchers, PrintSettings printSettings)28 private Iterator<FormattedText> applyPrintSettings(List<ArgumentMatcher> matchers, PrintSettings printSettings) { 29 List<FormattedText> out = new LinkedList<FormattedText>(); 30 int i = 0; 31 for (final ArgumentMatcher matcher : matchers) { 32 if (matcher instanceof ContainsExtraTypeInfo && printSettings.extraTypeInfoFor(i)) { 33 out.add(new FormattedText(((ContainsExtraTypeInfo) matcher).toStringWithType())); 34 } else { 35 out.add(new FormattedText(MatcherToString.toString(matcher))); 36 } 37 i++; 38 } 39 return out.iterator(); 40 } 41 } 42