• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.debugging;
6 
7 import org.mockito.MockitoDebugger;
8 import org.mockito.internal.invocation.UnusedStubsFinder;
9 import org.mockito.internal.invocation.finder.AllInvocationsFinder;
10 import org.mockito.invocation.Invocation;
11 
12 import java.util.List;
13 
14 import static java.util.Arrays.asList;
15 
16 public class MockitoDebuggerImpl implements MockitoDebugger {
17 
18     private AllInvocationsFinder allInvocationsFinder = new AllInvocationsFinder();
19     private UnusedStubsFinder unusedStubsFinder = new UnusedStubsFinder();
20 
printInvocations(Object .... mocks)21     public String printInvocations(Object ... mocks) {
22         String out = "";
23         List<Invocation> invocations = allInvocationsFinder.find(asList(mocks));
24         out += line("********************************");
25         out += line("*** Mockito interactions log ***");
26         out += line("********************************");
27         for(Invocation i:invocations) {
28             out += line(i.toString());
29             out += line(" invoked: " + i.getLocation());
30             if (i.stubInfo() != null) {
31                 out += line(" stubbed: " + i.stubInfo().stubbedAt().toString());
32             }
33         }
34 
35         invocations = unusedStubsFinder.find(asList(mocks));
36         if (invocations.isEmpty()) {
37             return print(out);
38         }
39         out += line("********************************");
40         out += line("***       Unused stubs       ***");
41         out += line("********************************");
42 
43         for(Invocation i:invocations) {
44             out += line(i.toString());
45             out += line(" stubbed: " + i.getLocation());
46         }
47         return print(out);
48     }
49 
line(String text)50     private String line(String text) {
51         return text + "\n";
52     }
53 
print(String out)54     private String print(String out) {
55         System.out.println(out);
56         return out;
57     }
58 }