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.debugging; 6 7import org.mockito.MockitoDebugger; 8import org.mockito.internal.invocation.UnusedStubsFinder; 9import org.mockito.internal.invocation.finder.AllInvocationsFinder; 10import org.mockito.invocation.Invocation; 11 12import java.util.List; 13 14import static java.util.Arrays.asList; 15 16public 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}