1   package com.anite.antelope.test;
2   /* ====================================================================
3    * The Apache Software License, Version 1.1
4    *
5    * Copyright (c) 2001-2002 The Apache Software Foundation.  All rights
6    * reserved.
7    *
8    * Redistribution and use in source and binary forms, with or without
9    * modification, are permitted provided that the following conditions
10   * are met:
11   *
12   * 1. Redistributions of source code must retain the above copyright
13   *    notice, this list of conditions and the following disclaimer.
14   *
15   * 2. Redistributions in binary form must reproduce the above copyright
16   *    notice, this list of conditions and the following disclaimer in
17   *    the documentation and/or other materials provided with the
18   *    distribution.
19   *
20   * 3. The end-user documentation included with the redistribution,
21   *    if any, must include the following acknowledgment:
22   *       "This product includes software developed by the
23   *        Apache Software Foundation (http://www.apache.org/)."
24   *    Alternately, this acknowledgment may appear in the software itself,
25   *    if and wherever such third-party acknowledgments normally appear.
26   *
27   * 4. The names "Apache" and "Apache Software Foundation" and
28   *    "Apache Turbine" must not be used to endorse or promote products
29   *    derived from this software without prior written permission. For
30   *    written permission, please contact apache@apache.org.
31   *
32   * 5. Products derived from this software may not be called "Apache",
33   *    "Apache Turbine", nor may "Apache" appear in their name, without
34   *    prior written permission of the Apache Software Foundation.
35   *
36   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
40   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47   * SUCH DAMAGE.
48   * ====================================================================
49   *
50   * This software consists of voluntary contributions made by many
51   * individuals on behalf of the Apache Software Foundation.  For more
52   * information on the Apache Software Foundation, please see
53   * <http://www.apache.org/>.
54   */
55  import com.mockobjects.servlet.MockHttpSession;
56  /***
57   * Extension to the basic MockHttpSession to provide some extra parameters
58   * required by Turbine.
59   *
60   * @author <a href="mailto:epugh@upstate.com">Eric Pugh</a>
61   * @version $Id: EnhancedMockHttpSession.html,v 1.3 2004/06/25 10:04:14 bengidley Exp $
62   */
63  public class EnhancedMockHttpSession extends MockHttpSession
64  {
65      private boolean isNew = true;
66      private int maxInactiveInterval =0;
67      
68      /***
69       *
70       */
71      public EnhancedMockHttpSession()
72      {
73          super();
74      }
75      /***
76       * The default MockHttpSession doesn't implement this method.  It always
77       * returns true.
78       */
79      public boolean isNew()
80      {
81          return isNew;
82      }
83      
84      public void setMaxInactiveInterval(int maxInactiveInterval){
85          this.maxInactiveInterval =maxInactiveInterval;
86      }
87      
88      public int getMaxInactiveInterval(){
89          return maxInactiveInterval;
90      }
91      
92      /***
93       * The underlying mock objects throws an Assert failure if we don't have
94       * an attribute.  However, in Turbine, getting a null is okay, it just 
95       * means we haven't put the object in yet!
96       */
97      public Object getAttribute(String attributeName)
98      {
99          try
100         {
101             return super.getAttribute(attributeName);
102         }
103         catch (junit.framework.AssertionFailedError afe)
104         {
105             return null;
106         }
107     }
108 }