You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2014/09/14 19:34:25 UTC
git commit: Removed dependency on Mockito for MockServletContext
Repository: wicket
Updated Branches:
refs/heads/master 0c38b5717 -> 8f4a13980
Removed dependency on Mockito for MockServletContext
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/8f4a1398
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/8f4a1398
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/8f4a1398
Branch: refs/heads/master
Commit: 8f4a1398026ce8d5eda836bb5604237f9cdb294e
Parents: 0c38b57
Author: adelbene <an...@gmail.com>
Authored: Sun Sep 14 19:24:30 2014 +0200
Committer: adelbene <an...@gmail.com>
Committed: Sun Sep 14 19:24:30 2014 +0200
----------------------------------------------------------------------
.../protocol/http/mock/MockServletContext.java | 54 +++++++++++---------
1 file changed, 31 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/8f4a1398/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockServletContext.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockServletContext.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockServletContext.java
index c398054..c3982cb 100755
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockServletContext.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockServletContext.java
@@ -21,9 +21,13 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.EventListener;
@@ -50,7 +54,6 @@ import org.apache.wicket.Application;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.util.string.Strings;
import org.apache.wicket.util.value.ValueMap;
-import org.mockito.Mockito;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -555,8 +558,8 @@ public class MockServletContext implements ServletContext
@Override
public ServletRegistration.Dynamic addServlet(String servletName, Servlet servlet)
{
- Dynamic mockRegistration = Mockito.mock(ServletRegistration.Dynamic.class);
- Mockito.when(mockRegistration.getMappings()).thenReturn(Arrays.asList(servletName));
+ Dynamic mockRegistration = (Dynamic)Proxy.newProxyInstance(Dynamic.class.getClassLoader(),
+ new Class<?>[]{Dynamic.class}, new MockedServletRegistationHandler(servletName));
servletRegistration.put(servletName, mockRegistration);
@@ -795,32 +798,37 @@ public class MockServletContext implements ServletContext
return "";
}
- /**
- * Utility method to create a mock Servlet.
- *
- * @param clazz
- * the Servlet class we want to mock.
- * @return
- * the mock for the given Servlet class.
- */
- public <T extends Servlet> T createMockServlet(Class<T> clazz)
- {
- return Mockito.mock(clazz);
- }
/**
- * Utility method to add a mock Servlet.
+ * Invocation handler for proxy interface of {@link javax.servlet.ServletRegistration.Dynamic}.
+ * This class intercepts invocation for method {@link javax.servlet.ServletRegistration.Dynamic#getMappings}
+ * and returns the servlet name.
*
- * @param servletName
- * the name of the servlet.
- * @param clazz
- * the Servlet class we want to mock.
+ * @author andrea del bene
+ *
*/
- public void addMockServlet(String servletName, Class<? extends Servlet> clazz)
+ class MockedServletRegistationHandler implements InvocationHandler
{
- addServlet(servletName, createMockServlet(clazz));
+
+ private final Collection<String> servletName;
+
+ public MockedServletRegistationHandler(String servletName)
+ {
+ this.servletName = Arrays.asList(servletName);
+ }
+
+ @Override
+ public Object invoke(Object object, Method method, Object[] args) throws Throwable
+ {
+ if (method.getName().equals("getMappings"))
+ {
+ return servletName;
+ }
+
+ return null;
+ }
}
-
+
// @formatter:off
/* TODO JAVA6,SERVLET3.0
* servlet 3.0 stuff