12637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin/*
22637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin * Copyright (c) 2007 Mockito contributors
32637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin * This program is made available under the terms of the MIT License.
42637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin */
52637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinpackage org.mockito.internal.matchers;
62637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
72637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport org.junit.Test;
82637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport org.mockito.internal.matchers.text.MatchersPrinter;
92637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport org.mockito.internal.reporting.PrintSettings;
102637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport org.mockitoutil.TestBase;
112637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
122637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport java.util.Arrays;
132637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport java.util.List;
142637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
152637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport static junit.framework.TestCase.assertEquals;
162637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
172637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin@SuppressWarnings("unchecked")
182637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinpublic class MatchersPrinterTest extends TestBase {
192637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
202637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    private final MatchersPrinter printer = new MatchersPrinter();
212637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
222637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    @Test
232637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    public void shouldGetArgumentsLine() {
242637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        String line = printer.getArgumentsLine((List) Arrays.asList(new Equals(1), new Equals(2)), new PrintSettings());
252637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        assertEquals("(1, 2);", line);
262637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    }
272637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
282637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    @Test
292637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    public void shouldGetArgumentsBlock() {
302637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        String line = printer.getArgumentsBlock((List) Arrays.asList(new Equals(1), new Equals(2)), new PrintSettings());
312637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        assertEquals("(\n    1,\n    2\n);", line);
322637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    }
332637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
342637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    @Test
352637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    public void shouldDescribeTypeInfoOnlyMarkedMatchers() {
362637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        //when
372637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        String line = printer.getArgumentsLine((List) Arrays.asList(new Equals(1L), new Equals(2)), PrintSettings.verboseMatchers(1));
382637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        //then
392637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        assertEquals("(1L, (Integer) 2);", line);
402637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    }
412637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
422637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    @Test
432637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    public void shouldDescribeStringMatcher() {
442637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        //when
452637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        String line = printer.getArgumentsLine((List) Arrays.asList(new Equals(1L), new Equals("x")), PrintSettings.verboseMatchers(1));
462637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        //then
472637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        assertEquals("(1L, (String) \"x\");", line);
482637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    }
492637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
502637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    @Test
512637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    public void shouldGetVerboseArgumentsInBlock() {
522637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        //when
532637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        String line = printer.getArgumentsBlock((List) Arrays.asList(new Equals(1L), new Equals(2)), PrintSettings.verboseMatchers(0, 1));
542637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        //then
552637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        assertEquals("(\n    (Long) 1L,\n    (Integer) 2\n);", line);
562637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    }
572637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin
582637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    @Test
592637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    public void shouldGetVerboseArgumentsEvenIfSomeMatchersAreNotVerbose() {
602637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        //when
612637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        String line = printer.getArgumentsLine((List) Arrays.asList(new Equals(1L), NotNull.NOT_NULL), PrintSettings.verboseMatchers(0));
622637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        //then
632637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin        assertEquals("((Long) 1L, notNull());", line);
642637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin    }
652637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin}
66