1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  
18  package org.apache.commons.configuration.web;
19  
20  import java.util.Enumeration;
21  import java.util.Properties;
22  import javax.servlet.Servlet;
23  import javax.servlet.ServletConfig;
24  import javax.servlet.ServletContext;
25  import javax.servlet.http.HttpServlet;
26  
27  import com.mockobjects.servlet.MockServletConfig;
28  import com.mockobjects.servlet.MockServletContext;
29  import org.apache.commons.configuration.AbstractConfiguration;
30  import org.apache.commons.configuration.TestAbstractConfiguration;
31  
32  /***
33   * Test case for the {@link ServletContextConfiguration} class.
34   *
35   * @author Emmanuel Bourg
36   * @version $Revision: 515306 $, $Date: 2007-03-06 22:15:00 +0100 (Di, 06 Mrz 2007) $
37   */
38  public class TestServletContextConfiguration extends TestAbstractConfiguration
39  {
40      protected AbstractConfiguration getConfiguration()
41      {
42          final Properties parameters = new Properties();
43          parameters.setProperty("key1", "value1");
44          parameters.setProperty("key2", "value2");
45          parameters.setProperty("list", "value1, value2");
46          parameters.setProperty("listesc", "value1//,value2");
47  
48          // create a servlet context
49          ServletContext context = new MockServletContext()
50          {
51              public String getInitParameter(String key)
52              {
53                  return parameters.getProperty(key);
54              }
55  
56              public Enumeration getInitParameterNames()
57              {
58                  return parameters.keys();
59              }
60          };
61  
62          // create a servlet config
63          final MockServletConfig config = new MockServletConfig();
64          config.setServletContext(context);
65  
66          // create a servlet
67          Servlet servlet = new HttpServlet()
68          {
69              public ServletConfig getServletConfig()
70              {
71                  return config;
72              }
73          };
74  
75          return new ServletContextConfiguration(servlet);
76      }
77  
78      protected AbstractConfiguration getEmptyConfiguration()
79      {
80          // create a servlet context
81          ServletContext context = new MockServletContext()
82          {
83              public Enumeration getInitParameterNames()
84              {
85                  return new Properties().keys();
86              }
87          };
88  
89          return new ServletContextConfiguration(context);
90      }
91  
92      public void testAddPropertyDirect()
93      {
94          try
95          {
96              super.testAddPropertyDirect();
97              fail("addPropertyDirect should throw an UnsupportedException");
98          }
99          catch (UnsupportedOperationException e)
100         {
101             // ok
102         }
103     }
104 
105     public void testClearProperty()
106     {
107         try
108         {
109             super.testClearProperty();
110             fail("testClearProperty should throw an UnsupportedException");
111         }
112         catch (UnsupportedOperationException e)
113         {
114             // ok
115         }
116     }
117 
118 }