MatchersPrinterTest.java revision 2637d96c202372854a7c71466ddcc6e90fc4fc53
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.matchers;
6
7import org.junit.Test;
8import org.mockito.internal.matchers.text.MatchersPrinter;
9import org.mockito.internal.reporting.PrintSettings;
10import org.mockitoutil.TestBase;
11
12import java.util.Arrays;
13import java.util.List;
14
15import static junit.framework.TestCase.assertEquals;
16
17@SuppressWarnings("unchecked")
18public class MatchersPrinterTest extends TestBase {
19
20    private final MatchersPrinter printer = new MatchersPrinter();
21
22    @Test
23    public void shouldGetArgumentsLine() {
24        String line = printer.getArgumentsLine((List) Arrays.asList(new Equals(1), new Equals(2)), new PrintSettings());
25        assertEquals("(1, 2);", line);
26    }
27
28    @Test
29    public void shouldGetArgumentsBlock() {
30        String line = printer.getArgumentsBlock((List) Arrays.asList(new Equals(1), new Equals(2)), new PrintSettings());
31        assertEquals("(\n    1,\n    2\n);", line);
32    }
33
34    @Test
35    public void shouldDescribeTypeInfoOnlyMarkedMatchers() {
36        //when
37        String line = printer.getArgumentsLine((List) Arrays.asList(new Equals(1L), new Equals(2)), PrintSettings.verboseMatchers(1));
38        //then
39        assertEquals("(1L, (Integer) 2);", line);
40    }
41
42    @Test
43    public void shouldDescribeStringMatcher() {
44        //when
45        String line = printer.getArgumentsLine((List) Arrays.asList(new Equals(1L), new Equals("x")), PrintSettings.verboseMatchers(1));
46        //then
47        assertEquals("(1L, (String) \"x\");", line);
48    }
49
50    @Test
51    public void shouldGetVerboseArgumentsInBlock() {
52        //when
53        String line = printer.getArgumentsBlock((List) Arrays.asList(new Equals(1L), new Equals(2)), PrintSettings.verboseMatchers(0, 1));
54        //then
55        assertEquals("(\n    (Long) 1L,\n    (Integer) 2\n);", line);
56    }
57
58    @Test
59    public void shouldGetVerboseArgumentsEvenIfSomeMatchersAreNotVerbose() {
60        //when
61        String line = printer.getArgumentsLine((List) Arrays.asList(new Equals(1L), NotNull.NOT_NULL), PrintSettings.verboseMatchers(0));
62        //then
63        assertEquals("((Long) 1L, notNull());", line);
64    }
65}
66