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 <[email protected]>
Authored: Sun Sep 14 19:24:30 2014 +0200
Committer: adelbene <[email protected]>
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

Reply via email to