1e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson/* 2e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Copyright (c) 2007 Mockito contributors 3e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * This program is made available under the terms of the MIT License. 4e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 5e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpackage org.mockito.internal.debugging; 6e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 7e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.internal.invocation.InvocationMatcher; 8e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.internal.util.MockitoLogger; 9e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.invocation.Invocation; 10e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 11e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport static org.mockito.internal.util.StringJoiner.join; 12e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 13e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpublic class LoggingListener implements FindingsListener { 14e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson private boolean warnAboutUnstubbed; 15e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson private final MockitoLogger logger; 16e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 17e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson public LoggingListener(boolean warnAboutUnstubbed, MockitoLogger logger) { 18e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson this.warnAboutUnstubbed = warnAboutUnstubbed; 19e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson this.logger = logger; 20e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 21e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 22e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson public void foundStubCalledWithDifferentArgs(Invocation unused, InvocationMatcher unstubbed) { 23e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson logger.log(join( 24e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson " *** Stubbing warnings from Mockito: *** ", 25e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson "", 26e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson "stubbed with those args here " + unused.getLocation(), 27e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson "BUT called with different args " + unstubbed.getInvocation().getLocation(), 28e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson "")); 29e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 30e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 31e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson public void foundUnusedStub(Invocation unused) { 32e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson logger.log("This stubbing was never used " + unused.getLocation() + "\n"); 33e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 34e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 35e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson public void foundUnstubbed(InvocationMatcher unstubbed) { 36e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson if (warnAboutUnstubbed) { 37e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson logger.log(join( 38e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson "This method was not stubbed ", 39e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson unstubbed, 40e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson unstubbed.getInvocation().getLocation(), 41e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson "")); 42e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 43e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 44e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 45e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson public boolean isWarnAboutUnstubbed() { 46e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson return warnAboutUnstubbed; 47e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 48e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 49e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson public MockitoLogger getLogger() { 50e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson return logger; 51e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson } 52e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson}