[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