diff options
author | Philip P. Moltmann <moltmann@google.com> | 2017-11-20 15:13:48 -0800 |
---|---|---|
committer | Philip P. Moltmann <moltmann@google.com> | 2017-12-13 10:35:43 -0800 |
commit | 08bd32ce48b12ae751dd5c4829ff09a6fb9894f0 (patch) | |
tree | fe3b7337253b03033a5558de37dec4a539f6666f /src/main/java/org/mockito/internal/handler | |
parent | 7b6a00cf04fcc6a9e23f9b3d349082f4105374d0 (diff) | |
download | mockito-08bd32ce48b12ae751dd5c4829ff09a6fb9894f0.tar.gz |
Update mockito to 2.12.0
Change-Id: I96a0d42128ceba1c7c5e096e3d982721a474a40c
Fixes: 69848252
Test: m -j checkbuild
Diffstat (limited to 'src/main/java/org/mockito/internal/handler')
4 files changed, 45 insertions, 62 deletions
diff --git a/src/main/java/org/mockito/internal/handler/InvocationNotifierHandler.java b/src/main/java/org/mockito/internal/handler/InvocationNotifierHandler.java index 562089f..da2500a 100644 --- a/src/main/java/org/mockito/internal/handler/InvocationNotifierHandler.java +++ b/src/main/java/org/mockito/internal/handler/InvocationNotifierHandler.java @@ -4,16 +4,15 @@ */ package org.mockito.internal.handler; -import static org.mockito.internal.exceptions.Reporter.invocationListenerThrewException; - -import java.util.List; -import org.mockito.internal.InternalMockHandler; -import org.mockito.internal.stubbing.InvocationContainer; +import org.mockito.invocation.InvocationContainer; import org.mockito.invocation.Invocation; import org.mockito.invocation.MockHandler; import org.mockito.listeners.InvocationListener; import org.mockito.mock.MockCreationSettings; -import org.mockito.stubbing.Answer; + +import java.util.List; + +import static org.mockito.internal.exceptions.Reporter.invocationListenerThrewException; /** * Handler, that call all listeners wanted for this mock, before delegating it @@ -21,12 +20,12 @@ import org.mockito.stubbing.Answer; * * Also imposterize MockHandlerImpl, delegate all call of InternalMockHandler to the real mockHandler */ -class InvocationNotifierHandler<T> implements MockHandler, InternalMockHandler<T> { +class InvocationNotifierHandler<T> implements MockHandler<T> { private final List<InvocationListener> invocationListeners; - private final InternalMockHandler<T> mockHandler; + private final MockHandler<T> mockHandler; - public InvocationNotifierHandler(InternalMockHandler<T> mockHandler, MockCreationSettings<T> settings) { + public InvocationNotifierHandler(MockHandler<T> mockHandler, MockCreationSettings<T> settings) { this.mockHandler = mockHandler; this.invocationListeners = settings.getInvocationListeners(); } @@ -67,10 +66,6 @@ class InvocationNotifierHandler<T> implements MockHandler, InternalMockHandler<T return mockHandler.getMockSettings(); } - public void setAnswersForStubbing(List<Answer<?>> answers) { - mockHandler.setAnswersForStubbing(answers); - } - public InvocationContainer getInvocationContainer() { return mockHandler.getInvocationContainer(); } diff --git a/src/main/java/org/mockito/internal/handler/MockHandlerFactory.java b/src/main/java/org/mockito/internal/handler/MockHandlerFactory.java index 0d11243..e8b44cb 100644 --- a/src/main/java/org/mockito/internal/handler/MockHandlerFactory.java +++ b/src/main/java/org/mockito/internal/handler/MockHandlerFactory.java @@ -4,7 +4,7 @@ */ package org.mockito.internal.handler; -import org.mockito.internal.InternalMockHandler; +import org.mockito.invocation.MockHandler; import org.mockito.mock.MockCreationSettings; /** @@ -12,9 +12,9 @@ import org.mockito.mock.MockCreationSettings; */ public class MockHandlerFactory { - public static <T> InternalMockHandler<T> createMockHandler(MockCreationSettings<T> settings) { - InternalMockHandler<T> handler = new MockHandlerImpl<T>(settings); - InternalMockHandler<T> nullResultGuardian = new NullResultGuardian<T>(handler); + public static <T> MockHandler<T> createMockHandler(MockCreationSettings<T> settings) { + MockHandler<T> handler = new MockHandlerImpl<T>(settings); + MockHandler<T> nullResultGuardian = new NullResultGuardian<T>(handler); return new InvocationNotifierHandler<T>(nullResultGuardian, settings); } } diff --git a/src/main/java/org/mockito/internal/handler/MockHandlerImpl.java b/src/main/java/org/mockito/internal/handler/MockHandlerImpl.java index 3ef887c..38f18e9 100644 --- a/src/main/java/org/mockito/internal/handler/MockHandlerImpl.java +++ b/src/main/java/org/mockito/internal/handler/MockHandlerImpl.java @@ -4,13 +4,11 @@ */ package org.mockito.internal.handler; -import java.util.List; -import org.mockito.internal.InternalMockHandler; import org.mockito.internal.creation.settings.CreationSettings; import org.mockito.internal.invocation.InvocationMatcher; import org.mockito.internal.invocation.MatchersBinder; import org.mockito.internal.listeners.StubbingLookupListener; -import org.mockito.internal.stubbing.InvocationContainer; +import org.mockito.invocation.InvocationContainer; import org.mockito.internal.stubbing.InvocationContainerImpl; import org.mockito.internal.stubbing.OngoingStubbingImpl; import org.mockito.internal.stubbing.StubbedInvocationMatcher; @@ -18,10 +16,12 @@ import org.mockito.internal.stubbing.answers.DefaultAnswerValidator; import org.mockito.internal.verification.MockAwareVerificationMode; import org.mockito.internal.verification.VerificationDataImpl; import org.mockito.invocation.Invocation; +import org.mockito.invocation.MockHandler; import org.mockito.mock.MockCreationSettings; -import org.mockito.stubbing.Answer; import org.mockito.verification.VerificationMode; +import java.util.List; + import static org.mockito.internal.exceptions.Reporter.stubPassedToVerify; import static org.mockito.internal.progress.ThreadSafeMockingProgress.mockingProgress; @@ -30,11 +30,11 @@ import static org.mockito.internal.progress.ThreadSafeMockingProgress.mockingPro * * @param <T> type of mock object to handle */ -public class MockHandlerImpl<T> implements InternalMockHandler<T> { +public class MockHandlerImpl<T> implements MockHandler<T> { private static final long serialVersionUID = -2917871070982574165L; - InvocationContainerImpl invocationContainerImpl; + InvocationContainerImpl invocationContainer; MatchersBinder matchersBinder = new MatchersBinder(); @@ -44,17 +44,17 @@ public class MockHandlerImpl<T> implements InternalMockHandler<T> { this.mockSettings = mockSettings; this.matchersBinder = new MatchersBinder(); - this.invocationContainerImpl = new InvocationContainerImpl( mockSettings); + this.invocationContainer = new InvocationContainerImpl( mockSettings); } public Object handle(Invocation invocation) throws Throwable { - if (invocationContainerImpl.hasAnswersForStubbing()) { + if (invocationContainer.hasAnswersForStubbing()) { // stubbing voids with doThrow() or doAnswer() style InvocationMatcher invocationMatcher = matchersBinder.bindMatchers( mockingProgress().getArgumentMatcherStorage(), invocation ); - invocationContainerImpl.setMethodForStubbing(invocationMatcher); + invocationContainer.setMethodForStubbing(invocationMatcher); return null; } VerificationMode verificationMode = mockingProgress().pullVerificationMode(); @@ -71,7 +71,7 @@ public class MockHandlerImpl<T> implements InternalMockHandler<T> { // We need to check if verification was started on the correct mock // - see VerifyingWithAnExtraCallToADifferentMockTest (bug 138) if (((MockAwareVerificationMode) verificationMode).getMock() == invocation.getMock()) { - VerificationDataImpl data = createVerificationData(invocationContainerImpl, invocationMatcher); + VerificationDataImpl data = createVerificationData(invocationContainer, invocationMatcher); verificationMode.verify(data); return null; } else { @@ -82,27 +82,27 @@ public class MockHandlerImpl<T> implements InternalMockHandler<T> { } // prepare invocation for stubbing - invocationContainerImpl.setInvocationForPotentialStubbing(invocationMatcher); - OngoingStubbingImpl<T> ongoingStubbing = new OngoingStubbingImpl<T>(invocationContainerImpl); + invocationContainer.setInvocationForPotentialStubbing(invocationMatcher); + OngoingStubbingImpl<T> ongoingStubbing = new OngoingStubbingImpl<T>(invocationContainer); mockingProgress().reportOngoingStubbing(ongoingStubbing); // look for existing answer for this invocation - StubbedInvocationMatcher stubbedInvocation = invocationContainerImpl.findAnswerFor(invocation); - notifyStubbedAnswerLookup(invocation, stubbedInvocation); + StubbedInvocationMatcher stubbing = invocationContainer.findAnswerFor(invocation); + notifyStubbedAnswerLookup(invocation, stubbing); - if (stubbedInvocation != null) { - stubbedInvocation.captureArgumentsFrom(invocation); - return stubbedInvocation.answer(invocation); + if (stubbing != null) { + stubbing.captureArgumentsFrom(invocation); + return stubbing.answer(invocation); } else { Object ret = mockSettings.getDefaultAnswer().answer(invocation); DefaultAnswerValidator.validateReturnValueFor(invocation, ret); - // redo setting invocation for potential stubbing in case of partial - // mocks / spies. - // Without it, the real method inside 'when' might have delegated - // to other self method and overwrite the intended stubbed method - // with a different one. The reset is required to avoid runtime exception that validates return type with stubbed method signature. - invocationContainerImpl.resetInvocationForPotentialStubbing(invocationMatcher); + //Mockito uses it to redo setting invocation for potential stubbing in case of partial mocks / spies. + //Without it, the real method inside 'when' might have delegated to other self method + //and overwrite the intended stubbed method with a different one. + //This means we would be stubbing a wrong method. + //Typically this would led to runtime exception that validates return type with stubbed method signature. + invocationContainer.resetInvocationForPotentialStubbing(invocationMatcher); return ret; } } @@ -111,20 +111,16 @@ public class MockHandlerImpl<T> implements InternalMockHandler<T> { return mockSettings; } - public void setAnswersForStubbing(List<Answer<?>> answers) { - invocationContainerImpl.setAnswersForStubbing(answers); - } - public InvocationContainer getInvocationContainer() { - return invocationContainerImpl; + return invocationContainer; } - private VerificationDataImpl createVerificationData(InvocationContainerImpl invocationContainerImpl, InvocationMatcher invocationMatcher) { + private VerificationDataImpl createVerificationData(InvocationContainerImpl invocationContainer, InvocationMatcher invocationMatcher) { if (mockSettings.isStubOnly()) { throw stubPassedToVerify(); // this throws an exception } - return new VerificationDataImpl(invocationContainerImpl, invocationMatcher); + return new VerificationDataImpl(invocationContainer, invocationMatcher); } private void notifyStubbedAnswerLookup(Invocation invocation, StubbedInvocationMatcher exception) { diff --git a/src/main/java/org/mockito/internal/handler/NullResultGuardian.java b/src/main/java/org/mockito/internal/handler/NullResultGuardian.java index 9fb4d14..7f4a3a7 100644 --- a/src/main/java/org/mockito/internal/handler/NullResultGuardian.java +++ b/src/main/java/org/mockito/internal/handler/NullResultGuardian.java @@ -4,26 +4,23 @@ */ package org.mockito.internal.handler; -import static org.mockito.internal.util.Primitives.defaultValue; - -import java.util.List; - -import org.mockito.internal.InternalMockHandler; -import org.mockito.internal.stubbing.InvocationContainer; +import org.mockito.invocation.InvocationContainer; import org.mockito.invocation.Invocation; +import org.mockito.invocation.MockHandler; import org.mockito.mock.MockCreationSettings; -import org.mockito.stubbing.Answer; + +import static org.mockito.internal.util.Primitives.defaultValue; /** * Protects the results from delegate MockHandler. Makes sure the results are valid. * * by Szczepan Faber, created at: 5/22/12 */ -class NullResultGuardian<T> implements InternalMockHandler<T> { +class NullResultGuardian<T> implements MockHandler<T> { - private final InternalMockHandler<T> delegate; + private final MockHandler<T> delegate; - public NullResultGuardian(InternalMockHandler<T> delegate) { + public NullResultGuardian(MockHandler<T> delegate) { this.delegate = delegate; } @@ -44,11 +41,6 @@ class NullResultGuardian<T> implements InternalMockHandler<T> { } @Override - public void setAnswersForStubbing(List<Answer<?>> answers) { - delegate.setAnswersForStubbing(answers); - } - - @Override public InvocationContainer getInvocationContainer() { return delegate.getInvocationContainer(); } |