1   /**
2    *
3    */
4   package org.melati.login.test;
5   
6   
7   import javax.servlet.http.HttpServletRequest;
8   import javax.servlet.http.HttpServletResponse;
9   import javax.servlet.http.HttpSession;
10  
11  import org.melati.login.HttpSessionAccessHandler;
12  import org.melati.poem.util.EmptyEnumeration;
13  import org.melati.util.HttpServletRequestParameters;
14  
15  import com.mockobjects.constraint.Constraint;
16  import com.mockobjects.constraint.IsEqual;
17  import com.mockobjects.constraint.IsInstanceOf;
18  import com.mockobjects.dynamic.Mock;
19  import com.mockobjects.dynamic.OrderedMock;
20  
21  /**
22   * @author timp
23   *
24   */
25  public class HttpSessionAccessHandlerTest extends AccessHandlerTestAbstract {
26  
27    /**
28     * @param name
29     */
30    public HttpSessionAccessHandlerTest(String name) {
31      super(name);
32    }
33  
34    public void setUp() throws Exception {
35      super.setUp();
36      Mock mockSession = new Mock(HttpSession.class);
37      mockSession.expectAndReturn("getId", null); 
38      mockSession.expectAndReturn("getId", null); 
39      mockSession.expectAndReturn("getId", null); 
40      Mock mockHttpServletRequest = new Mock(HttpServletRequest.class); 
41      mockHttpServletRequest.expectAndReturn( "getParameterNames", new EmptyEnumeration()); 
42      mockHttpServletRequest.expectAndReturn("getContextPath", null);
43      mockHttpServletRequest.expectAndReturn("getServletPath", null);
44      mockHttpServletRequest.expectAndReturn("getPathInfo", null);
45      mockHttpServletRequest.expectAndReturn("getQueryString", null);
46      mockHttpServletRequest.expectAndReturn("getMethod", null);
47      mockHttpServletRequest.expectAndReturn("getSession", Boolean.TRUE, mockSession.proxy());
48      mockHttpServletRequest.expectAndReturn("getParameterNames", new EmptyEnumeration()); 
49      mockHttpServletRequest.expectAndReturn("getContextPath", null);
50      mockHttpServletRequest.expectAndReturn("getServletPath", null);
51      mockHttpServletRequest.expectAndReturn("getPathInfo", null);
52      mockHttpServletRequest.expectAndReturn("getQueryString", null);
53      mockHttpServletRequest.expectAndReturn("getMethod", null);
54      mockHttpServletRequest.expectAndReturn("getSession", Boolean.TRUE, mockSession.proxy());
55      mockHttpServletRequest.expectAndReturn("getSession", Boolean.TRUE, mockSession.proxy());
56      mockHttpServletRequest.expectAndReturn("getParameterNames", new EmptyEnumeration()); 
57      mockHttpServletRequest.expectAndReturn("getContextPath", null);
58      mockHttpServletRequest.expectAndReturn("getServletPath", null);
59      mockHttpServletRequest.expectAndReturn("getPathInfo", null);
60      mockHttpServletRequest.expectAndReturn("getQueryString", null);
61      mockHttpServletRequest.expectAndReturn("getMethod", null);
62      mockHttpServletRequest.expectAndReturn("getSession", Boolean.TRUE, mockSession.proxy());
63      mockHttpServletRequest.expectAndReturn("getParameterNames", new EmptyEnumeration()); 
64      mockHttpServletRequest.expectAndReturn("getContextPath", null);
65      mockHttpServletRequest.expectAndReturn("getServletPath", null);
66      mockHttpServletRequest.expectAndReturn("getPathInfo", null);
67      mockHttpServletRequest.expectAndReturn("getQueryString", null);
68      mockHttpServletRequest.expectAndReturn("getMethod", null);
69      mockHttpServletRequest.expectAndReturn("getParameterNames", new EmptyEnumeration()); 
70      mockHttpServletRequest.expectAndReturn("getParameterNames", new EmptyEnumeration()); 
71      mockSession.expect("setAttribute", new Constraint []  {new IsEqual("org.melati.login.Login.triggeringRequestParameters"), 
72          new IsInstanceOf(HttpServletRequestParameters.class)}); 
73      mockSession.expect("setAttribute", new Constraint []  {new IsEqual("org.melati.login.Login.triggeringException"), 
74          new IsInstanceOf(org.melati.poem.AccessPoemException.class)}); 
75      mockSession.expect("getAttribute", "org.melati.login.HttpSessionAccessHandler.overlayParameters"); 
76      mockSession.expect("getAttribute", "org.melati.login.HttpSessionAccessHandler.user"); 
77      
78      mockHttpServletRequest.expectAndReturn("getSession", Boolean.TRUE, mockSession.proxy());
79      mockHttpServletRequest.expectAndReturn("getCookies", null);
80      Mock mockHttpServletResponse = new OrderedMock(HttpServletResponse.class, "Response with non-default name"); 
81      mockHttpServletResponse.expect("sendRedirect",new IsInstanceOf(String.class));
82      //mockSession.expectAndReturn("getAttribute", "org.melati.login.HttpSessionAccessHandler.overlayParameters", 
83      //    new HttpServletRequestParameters((HttpServletRequest)mockHttpServletRequest.proxy())); 
84      
85      mockSession.expectAndReturn("setAttribute", "org.melati.login.Login.triggeringRequestParameters", 
86          new HttpServletRequestParameters((HttpServletRequest)mockHttpServletRequest.proxy())); 
87      m.setRequest((HttpServletRequest)mockHttpServletRequest.proxy());
88      m.setResponse((HttpServletResponse)mockHttpServletResponse.proxy());
89    }
90  
91    /**
92     * Create the AccessHandler and set its input stream.
93     *
94     * @see org.melati.login.test.AccessHandlerTestAbstract#setAccessHandler()
95     */
96    public void setAccessHandler() {
97      HttpSessionAccessHandler ah = new HttpSessionAccessHandler();
98      it = ah;
99    }
100 
101 }