summaryrefslogtreecommitdiff
path: root/src/main/java/org/mockito/internal/handler
diff options
context:
space:
mode:
authorPhilip P. Moltmann <moltmann@google.com>2017-11-20 15:13:48 -0800
committerPhilip P. Moltmann <moltmann@google.com>2017-12-13 10:35:43 -0800
commit08bd32ce48b12ae751dd5c4829ff09a6fb9894f0 (patch)
treefe3b7337253b03033a5558de37dec4a539f6666f /src/main/java/org/mockito/internal/handler
parent7b6a00cf04fcc6a9e23f9b3d349082f4105374d0 (diff)
downloadmockito-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')
-rw-r--r--src/main/java/org/mockito/internal/handler/InvocationNotifierHandler.java21
-rw-r--r--src/main/java/org/mockito/internal/handler/MockHandlerFactory.java8
-rw-r--r--src/main/java/org/mockito/internal/handler/MockHandlerImpl.java56
-rw-r--r--src/main/java/org/mockito/internal/handler/NullResultGuardian.java22
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();
}