Author: sergeyhalipov
Date: 2007-12-04 09:47:57 -0500 (Tue, 04 Dec 2007)
New Revision: 4444
Modified:
branches/3.1.x/framework/test/src/main/java/org/ajax4jsf/tests/MockExternalContext.java
Log:
Unimplemented methods in shale-tests added.
Modified:
branches/3.1.x/framework/test/src/main/java/org/ajax4jsf/tests/MockExternalContext.java
===================================================================
---
branches/3.1.x/framework/test/src/main/java/org/ajax4jsf/tests/MockExternalContext.java 2007-12-04
14:17:36 UTC (rev 4443)
+++
branches/3.1.x/framework/test/src/main/java/org/ajax4jsf/tests/MockExternalContext.java 2007-12-04
14:47:57 UTC (rev 4444)
@@ -21,15 +21,23 @@
package org.ajax4jsf.tests;
+import java.io.IOException;
import java.util.Collections;
+import java.util.Comparator;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+import javax.faces.FacesException;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.collections.EnumerationUtils;
import org.apache.shale.test.mock.MockExternalContext12;
/**
@@ -37,22 +45,95 @@
*
*/
public class MockExternalContext extends MockExternalContext12 {
-
+ /*
+ * Realizes methods unimplemented by org.apache.shale.test.mock.MockExternalContext
operations.
+ *
+ */
+
+ private Map requestParameterValuesMap = null;
+ private Map requestHeaderMap = null;
+ private Map requestHeaderValuesMap = null;
+ private Iterator requestParameterNamesIterator = null;
+ private Set resourcePathsSet = null;
+
public MockExternalContext(org.apache.shale.test.mock.MockExternalContext baseContext)
{
super((ServletContext)baseContext.getContext(),
(HttpServletRequest)baseContext.getRequest(),
(HttpServletResponse)baseContext.getResponse());
}
public Map getRequestParameterValuesMap() {
- // Method is unimplemented in org.apache.shale.test.mock.MockExternalContext and
- // throws there UnsupportedOperationException
- Map map = new HashMap();
- HttpServletRequest request = (HttpServletRequest)getRequest();
- for ( Enumeration e = request.getParameterNames(); e.hasMoreElements(); ) {
- String name = (String) e.nextElement();
- map.put(name, request.getParameterValues(name));
+ if (null == requestParameterValuesMap) {
+ Map map = new HashMap();
+ HttpServletRequest request = (HttpServletRequest)getRequest();
+ for ( Enumeration e = request.getParameterNames(); e.hasMoreElements(); ) {
+ String name = (String) e.nextElement();
+ map.put(name, request.getParameterValues(name));
+ }
+ requestParameterValuesMap = Collections.unmodifiableMap(map);
}
- return Collections.unmodifiableMap(map);
+ return requestParameterValuesMap;
}
-
+
+ public void dispatch(String requestURI)
+ throws IOException, FacesException {
+
+ }
+
+ public Map getRequestHeaderMap() {
+ if (null == requestHeaderMap) {
+ Map map = new TreeMap(CASE_INSENSITIVE_COMPARATOR);
+
+ HttpServletRequest request = (HttpServletRequest)getRequest();
+ for ( Enumeration e = request.getHeaderNames(); e.hasMoreElements(); ) {
+ String name = (String) e.nextElement();
+ map.put(name, request.getHeader(name));
+ }
+ requestHeaderMap = Collections.unmodifiableMap(map);
+ }
+ return requestHeaderMap;
+ }
+
+ public Map getRequestHeaderValuesMap() {
+ if (null == requestHeaderValuesMap) {
+ Map map = new TreeMap(CASE_INSENSITIVE_COMPARATOR);
+
+ HttpServletRequest request = (HttpServletRequest)getRequest();
+ for ( Enumeration e = request.getHeaderNames(); e.hasMoreElements(); ) {
+ String name = (String) e.nextElement();
+ map.put(name, EnumerationUtils.toList(request.getHeaders(name)).toArray());
+ }
+ requestHeaderValuesMap = Collections.unmodifiableMap(map);
+ }
+ return requestHeaderValuesMap;
+ }
+
+ public Iterator getRequestParameterNames() {
+ if (null == requestParameterNamesIterator) {
+ HttpServletRequest request = (HttpServletRequest)getRequest();
+ requestParameterNamesIterator =
EnumerationUtils.toList(request.getParameterNames()).iterator();
+ }
+ return requestParameterNamesIterator;
+ }
+
+ public Set getResourcePaths(String path) {
+ // TODO hans, should be implemented
+ if (null == resourcePathsSet) {
+ resourcePathsSet = new HashSet();
+ }
+ return resourcePathsSet;
+ }
+
+ public void redirect(String requestURI) throws IOException {
+ // TODO hans, should be implemented
+ super.redirect(requestURI);
+ }
+
+ protected final static Comparator CASE_INSENSITIVE_COMPARATOR = new Comparator() {
+ public int compare(Object arg0, Object arg1) {
+ String s0 = ( String ) arg0;
+ String s1 = ( String ) arg1;
+ return s0.toUpperCase().compareTo(s1.toUpperCase());
+ }
+ };
+
}