blob: 857e229a625142864beeaed7016df50d018f9004 [file] [log] [blame]
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockito.internal.matchers;
import org.junit.Test;
import org.mockito.internal.matchers.text.MatchersPrinter;
import org.mockito.internal.reporting.PrintSettings;
import org.mockitoutil.TestBase;
import java.util.Arrays;
import java.util.List;
import static junit.framework.TestCase.assertEquals;
@SuppressWarnings("unchecked")
public class MatchersPrinterTest extends TestBase {
private final MatchersPrinter printer = new MatchersPrinter();
@Test
public void shouldGetArgumentsLine() {
String line = printer.getArgumentsLine((List) Arrays.asList(new Equals(1), new Equals(2)), new PrintSettings());
assertEquals("(1, 2);", line);
}
@Test
public void shouldGetArgumentsBlock() {
String line = printer.getArgumentsBlock((List) Arrays.asList(new Equals(1), new Equals(2)), new PrintSettings());
assertEquals("(\n 1,\n 2\n);", line);
}
@Test
public void shouldDescribeTypeInfoOnlyMarkedMatchers() {
//when
String line = printer.getArgumentsLine((List) Arrays.asList(new Equals(1L), new Equals(2)), PrintSettings.verboseMatchers(1));
//then
assertEquals("(1L, (Integer) 2);", line);
}
@Test
public void shouldDescribeStringMatcher() {
//when
String line = printer.getArgumentsLine((List) Arrays.asList(new Equals(1L), new Equals("x")), PrintSettings.verboseMatchers(1));
//then
assertEquals("(1L, (String) \"x\");", line);
}
@Test
public void shouldGetVerboseArgumentsInBlock() {
//when
String line = printer.getArgumentsBlock((List) Arrays.asList(new Equals(1L), new Equals(2)), PrintSettings.verboseMatchers(0, 1));
//then
assertEquals("(\n (Long) 1L,\n (Integer) 2\n);", line);
}
@Test
public void shouldGetVerboseArgumentsEvenIfSomeMatchersAreNotVerbose() {
//when
String line = printer.getArgumentsLine((List) Arrays.asList(new Equals(1L), NotNull.NOT_NULL), PrintSettings.verboseMatchers(0));
//then
assertEquals("((Long) 1L, notNull());", line);
}
}