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.internal.invocation.InvocationMatcher; 8import org.mockito.internal.util.MockitoLogger; 9import org.mockito.invocation.Invocation; 10 11import static org.mockito.internal.util.StringJoiner.join; 12 13public class LoggingListener implements FindingsListener { 14 private boolean warnAboutUnstubbed; 15 private final MockitoLogger logger; 16 17 public LoggingListener(boolean warnAboutUnstubbed, MockitoLogger logger) { 18 this.warnAboutUnstubbed = warnAboutUnstubbed; 19 this.logger = logger; 20 } 21 22 public void foundStubCalledWithDifferentArgs(Invocation unused, InvocationMatcher unstubbed) { 23 logger.log(join( 24 " *** Stubbing warnings from Mockito: *** ", 25 "", 26 "stubbed with those args here " + unused.getLocation(), 27 "BUT called with different args " + unstubbed.getInvocation().getLocation(), 28 "")); 29 } 30 31 public void foundUnusedStub(Invocation unused) { 32 logger.log("This stubbing was never used " + unused.getLocation() + "\n"); 33 } 34 35 public void foundUnstubbed(InvocationMatcher unstubbed) { 36 if (warnAboutUnstubbed) { 37 logger.log(join( 38 "This method was not stubbed ", 39 unstubbed, 40 unstubbed.getInvocation().getLocation(), 41 "")); 42 } 43 } 44 45 public boolean isWarnAboutUnstubbed() { 46 return warnAboutUnstubbed; 47 } 48 49 public MockitoLogger getLogger() { 50 return logger; 51 } 52}