[jboss-cvs] jboss-seam/src/main/org/jboss/seam/mock ...
Gavin King
gavin.king at jboss.com
Wed Nov 15 19:56:56 EST 2006
User: gavin
Date: 06/11/15 19:56:56
Modified: src/main/org/jboss/seam/mock MockHttpServletRequest.java
SeamTest.java
Log:
JBSEAM-286
Revision Changes Path
1.10 +19 -5 jboss-seam/src/main/org/jboss/seam/mock/MockHttpServletRequest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: MockHttpServletRequest.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/mock/MockHttpServletRequest.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- MockHttpServletRequest.java 17 Jun 2006 19:42:00 -0000 1.9
+++ MockHttpServletRequest.java 16 Nov 2006 00:56:56 -0000 1.10
@@ -15,6 +15,7 @@
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
+import java.util.Set;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletInputStream;
@@ -25,7 +26,7 @@
/**
* @author Gavin King
* @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
- * @version $Revision: 1.9 $
+ * @version $Revision: 1.10 $
*/
public class MockHttpServletRequest implements HttpServletRequest
{
@@ -34,12 +35,21 @@
private Map<String, Object> attributes = new HashMap<String, Object>();
private HttpSession session;
private Map<String, String[]> headers = new HashMap<String, String[]>();
+ private String principalName;
+ private Set<String> principalRoles;
public MockHttpServletRequest(HttpSession session)
{
this.session = session;
}
+ public MockHttpServletRequest(HttpSession session, String principalName, Set<String> principalRoles)
+ {
+ this.session = session;
+ this.principalName = principalName;
+ this.principalRoles = principalRoles;
+ }
+
public Map<String, String[]> getParameters()
{
return parameters;
@@ -124,15 +134,19 @@
return null;
}
- public boolean isUserInRole(String arg0)
+ public boolean isUserInRole(String role)
{
- return true;
+ return principalRoles.contains(role);
}
public Principal getUserPrincipal()
{
- //TODO
- return null;
+ return new Principal() {
+ public String getName()
+ {
+ return principalName;
+ }
+ };
}
public String getRequestedSessionId()
1.56 +43 -2 jboss-seam/src/main/org/jboss/seam/mock/SeamTest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: SeamTest.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/mock/SeamTest.java,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -b -r1.55 -r1.56
--- SeamTest.java 9 Nov 2006 05:47:49 -0000 1.55
+++ SeamTest.java 16 Nov 2006 00:56:56 -0000 1.56
@@ -7,8 +7,11 @@
package org.jboss.seam.mock;
import java.lang.reflect.Field;
+import java.util.AbstractSet;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
+import java.util.Set;
import javax.faces.application.Application;
import javax.faces.application.FacesMessage;
@@ -18,6 +21,7 @@
import javax.faces.event.PhaseId;
import javax.naming.InitialContext;
import javax.naming.NamingException;
+import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.transaction.UserTransaction;
@@ -47,7 +51,7 @@
*
* @author Gavin King
* @author <a href="mailto:theute at jboss.org">Thomas Heute</a>
- * @version $Revision: 1.55 $
+ * @version $Revision: 1.56 $
*/
public class SeamTest
{
@@ -155,6 +159,42 @@
private Application application;
/**
+ * Override to define the name of the current principal
+ *
+ * @return "gavin" by default
+ */
+ public String getPrincipalName()
+ {
+ return "gavin";
+ }
+
+ /**
+ * Override to define the roles assigned to the current principal
+ *
+ * @return a Set of all roles by default
+ */
+ public Set<String> getPrincipalRoles()
+ {
+ return new AbstractSet<String>() {
+ @Override
+ public boolean contains(Object o)
+ {
+ return true;
+ }
+ @Override
+ public Iterator<String> iterator()
+ {
+ throw new UnsupportedOperationException();
+ }
+ @Override
+ public int size()
+ {
+ throw new UnsupportedOperationException();
+ }
+ };
+ }
+
+ /**
* A script for a JSF interaction with
* no existing long-running conversation.
*/
@@ -356,7 +396,8 @@
*/
public String run() throws Exception
{
- externalContext = new MockExternalContext(servletContext, session);
+ HttpServletRequest request = new MockHttpServletRequest( session, getPrincipalName(), getPrincipalRoles() );
+ externalContext = new MockExternalContext(servletContext, request);
application = new SeamApplication11(SeamTest.this.application);
facesContext = new MockFacesContext( externalContext, application );
facesContext.setCurrent();
More information about the jboss-cvs-commits
mailing list