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