1   /*
2    * $Id: MockHttpServletRequest.java,v 1.1.1.1 2004/02/24 20:34:19 eelco12 Exp $
3    * $Revision: 1.1.1.1 $
4    * $Date: 2004/02/24 20:34:19 $
5    *
6    * ====================================================================
7    * Copyright (c) 2003, Open Edge B.V.
8    * All rights reserved.
9    * Redistribution and use in source and binary forms, with or without 
10   * modification, are permitted provided that the following conditions are met:
11   * Redistributions of source code must retain the above copyright notice, 
12   * this list of conditions and the following disclaimer. Redistributions 
13   * in binary form must reproduce the above copyright notice, this list of 
14   * conditions and the following disclaimer in the documentation and/or other 
15   * materials provided with the distribution. Neither the name of OpenEdge B.V. 
16   * nor the names of its contributors may be used to endorse or promote products 
17   * derived from this software without specific prior written permission.
18   * 
19   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
20   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
21   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
22   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
23   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
24   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
25   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
26   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
27   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
28   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 
29   * THE POSSIBILITY OF SUCH DAMAGE.
30   */
31   
32  package nl.openedge.baritus.test.mock;
33  
34  import java.util.Enumeration;
35  import java.util.HashMap;
36  import java.util.Iterator;
37  import java.util.Locale;
38  import java.util.Map;
39  
40  /***
41   * @author Eelco Hillenius
42   */
43  public class MockHttpServletRequest extends com.mockobjects.servlet.MockHttpServletRequest
44  {
45  	
46  	private Map attributes = new HashMap();
47  
48  	/***
49  	 * @see javax.servlet.http.HttpServletRequest#getDateHeader(java.lang.String)
50  	 */
51  	public long getDateHeader(String arg0)
52  	{
53  		return System.currentTimeMillis();
54  	}
55  
56  	/***
57  	 * @see javax.servlet.ServletRequest#getLocale()
58  	 */
59  	public Locale getLocale()
60  	{
61  		return null;
62  	}
63  
64  	/***
65  	 * @see javax.servlet.ServletRequest#getAttribute(java.lang.String)
66  	 */
67  	public Object getAttribute(String anAttributeName)
68  	{
69  		return attributes.get(anAttributeName);
70  	}
71  
72  	/***
73  	 * @see javax.servlet.ServletRequest#getAttributeNames()
74  	 */
75  	public Enumeration getAttributeNames()
76  	{
77  		return new ItEnum(attributes.keySet().iterator()); 
78  	}
79  
80  	/***
81  	 * @see javax.servlet.ServletRequest#removeAttribute(java.lang.String)
82  	 */
83  	public void removeAttribute(String anAttributeToRemove)
84  	{
85  		attributes.remove(anAttributeToRemove);
86  	}
87  
88  	/***
89  	 * @see javax.servlet.ServletRequest#setAttribute(java.lang.String, java.lang.Object)
90  	 */
91  	public void setAttribute(String attributeName, Object attributeValue)
92  	{
93  		attributes.put(attributeName, attributeValue);
94  	}
95  	
96  }
97  
98  class ItEnum implements Enumeration
99  {
100 	Iterator i = null;
101 		
102 	public ItEnum(Iterator i)
103 	{
104 		this.i = i;
105 	}
106 		
107 	public boolean hasMoreElements()
108 	{
109 		return i.hasNext();
110 	}
111 
112 	public Object nextElement()
113 	{
114 		return i.next();
115 	}
116 }