Home | History | Annotate | Download | only in debugging
      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 
     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 
     50     private String line(String text) {
     51         return text + "\n";
     52     }
     53 
     54     private String print(String out) {
     55         System.out.println(out);
     56         return out;
     57     }
     58 }