You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shale.apache.org by gr...@apache.org on 2007/03/08 17:25:18 UTC
svn commit: r516091 - in /shale/framework/trunk/shale-test: ./
src/main/java/org/apache/shale/test/mock/
Author: greddin
Date: Thu Mar 8 08:25:17 2007
New Revision: 516091
URL: http://svn.apache.org/viewvc?view=rev&rev=516091
Log:
SHALE-421. Applied patch submitted by Antonio Petrelli. Adds Portlet support to shale-test.
Added:
shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletContext.java (with props)
shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletRequest.java (with props)
shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletResponse.java (with props)
shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletSession.java (with props)
Modified:
shale/framework/trunk/shale-test/pom.xml
Modified: shale/framework/trunk/shale-test/pom.xml
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-test/pom.xml?view=diff&rev=516091&r1=516090&r2=516091
==============================================================================
--- shale/framework/trunk/shale-test/pom.xml (original)
+++ shale/framework/trunk/shale-test/pom.xml Thu Mar 8 08:25:17 2007
@@ -85,6 +85,13 @@
<optional>true</optional>
</dependency>
+ <dependency>
+ <groupId>javax.portlet</groupId>
+ <artifactId>portlet-api</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+
</dependencies>
<!-- Allow building with JDK 1.4 as well as JDK 1.5,
Added: shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletContext.java
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletContext.java?view=auto&rev=516091
==============================================================================
--- shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletContext.java (added)
+++ shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletContext.java Thu Mar 8 08:25:17 2007
@@ -0,0 +1,326 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shale.test.mock;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Set;
+
+import javax.portlet.PortletContext;
+import javax.portlet.PortletRequestDispatcher;
+
+/**
+ * <p>Mock implementation of <code>PortletContext</code>.</p>
+ *
+ * $Id$
+ */
+public class MockPortletContext implements PortletContext {
+
+ // ----------------------------------------------------- Mock Object Methods
+
+ /**
+ * <p>Add a context initialization parameter to the set of parameters
+ * recognized by this instance.</p>
+ *
+ * @param name Parameter name
+ * @param value Parameter value
+ */
+ public void addInitParameter(String name, String value) {
+
+ parameters.put(name, value);
+
+ }
+
+
+ /**
+ * <p>Add a new MIME type mapping to the set of mappings recognized by this
+ * instance.</p>
+ *
+ * @param extension Extension to check for (without the period)
+ * @param contentType Corresponding content type
+ */
+ public void addMimeType(String extension, String contentType) {
+
+ mimeTypes.put(extension, contentType);
+
+ }
+
+
+ /**
+ * <p>Set the document root for <code>getRealPath()</code> resolution.
+ * This parameter <strong>MUST</strong> represent a directory.</p>
+ *
+ * @param documentRoot The new base directory
+ */
+ public void setDocumentRoot(File documentRoot) {
+
+ this.documentRoot = documentRoot;
+
+ }
+
+ // ------------------------------------------------------ Instance Variables
+
+ private Hashtable attributes = new Hashtable();
+ private File documentRoot = null;
+ private Hashtable mimeTypes = new Hashtable();
+ private Hashtable parameters = new Hashtable();
+
+
+ // -------------------------------------------------- PortletContext Methods
+
+
+ /** {@inheritDoc} */
+ public Object getAttribute(String name) {
+
+ return attributes.get(name);
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Enumeration getAttributeNames() {
+
+ return attributes.keys();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String getInitParameter(String name) {
+
+ return (String) parameters.get(name);
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Enumeration getInitParameterNames() {
+
+ return parameters.keys();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public int getMajorVersion() {
+
+ return 1;
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String getMimeType(String path) {
+
+ int period = path.lastIndexOf('.');
+ if (period < 0) {
+ return null;
+ }
+ String extension = path.substring(period + 1);
+ return (String) mimeTypes.get(extension);
+
+ }
+
+
+ public int getMinorVersion() {
+
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+
+ public PortletRequestDispatcher getNamedDispatcher(String arg0) {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String getPortletContextName() {
+
+ return "MockPortletContext";
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String getRealPath(String path) {
+
+ if (documentRoot != null) {
+ if (!path.startsWith("/")) {
+ throw new IllegalArgumentException("The specified path ('"
+ + path + "') does not start with a '/' character");
+ }
+ File resolved = new File(documentRoot, path.substring(1));
+ try {
+ return resolved.getCanonicalPath();
+ } catch (IOException e) {
+ return resolved.getAbsolutePath();
+ }
+ } else {
+ return null;
+ }
+
+ }
+
+
+ /** {@inheritDoc} */
+ public PortletRequestDispatcher getRequestDispatcher(String arg0) {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public URL getResource(String path) throws MalformedURLException {
+
+ if (documentRoot != null) {
+ if (!path.startsWith("/")) {
+ throw new MalformedURLException("The specified path ('" + path
+ + "') does not start with a '/' character");
+ }
+ File resolved = new File(documentRoot, path.substring(1));
+ if (resolved.exists()) {
+ return resolved.toURL();
+ } else {
+ return null;
+ }
+ } else {
+ return null;
+ }
+
+ }
+
+
+ /** {@inheritDoc} */
+ public InputStream getResourceAsStream(String path) {
+
+ try {
+ URL url = getResource(path);
+ if (url != null) {
+ return url.openStream();
+ }
+ } catch (Exception e) {
+ ;
+ }
+ return null;
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Set getResourcePaths(String path) {
+
+ if (documentRoot == null) {
+ return null;
+ }
+
+ // Enforce the leading slash restriction
+ if (!path.startsWith("/")) {
+ throw new IllegalArgumentException("The specified path ('" + path
+ + "') does not start with a '/' character");
+ }
+
+ // Locate the File node for this path's directory (if it exists)
+ File node = new File(documentRoot, path.substring(1));
+ if (!node.exists()) {
+ return null;
+ }
+ if (!node.isDirectory()) {
+ return null;
+ }
+
+ // Construct a Set containing the paths to the contents of this
+ // directory
+ Set set = new HashSet();
+ String[] files = node.list();
+ if (files == null) {
+ return null;
+ }
+ for (int i = 0; i < files.length; i++) {
+ String subfile = path + files[i];
+ File subnode = new File(node, files[i]);
+ if (subnode.isDirectory()) {
+ subfile += "/";
+ }
+ set.add(subfile);
+ }
+
+ // Return the completed set
+ return set;
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String getServerInfo() {
+
+ return "MockPortletContext";
+ }
+
+
+ /** {@inheritDoc} */
+ public void log(String message) {
+
+ System.out.println(message);
+
+ }
+
+
+ /** {@inheritDoc} */
+ public void log(String message, Throwable exception) {
+
+ System.out.println(message);
+ exception.printStackTrace();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public void removeAttribute(String name) {
+
+ if (attributes.containsKey(name)) {
+ attributes.remove(name);
+ }
+
+ }
+
+
+ /** {@inheritDoc} */
+ public void setAttribute(String name, Object value) {
+
+ if (name == null) {
+ throw new IllegalArgumentException("Attribute name cannot be null");
+ }
+ if (value == null) {
+ removeAttribute(name);
+ return;
+ }
+ attributes.put(name, value);
+
+ }
+
+}
Propchange: shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletContext.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletContext.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Added: shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletRequest.java
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletRequest.java?view=auto&rev=516091
==============================================================================
--- shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletRequest.java (added)
+++ shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletRequest.java Thu Mar 8 08:25:17 2007
@@ -0,0 +1,421 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shale.test.mock;
+
+import java.security.Principal;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.portlet.PortalContext;
+import javax.portlet.PortletMode;
+import javax.portlet.PortletPreferences;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletSession;
+import javax.portlet.WindowState;
+
+/**
+ * <p> Mock implementation of <code>PortletRequest</code>. </p>
+ *
+ * $Id$
+ */
+
+public class MockPortletRequest implements PortletRequest {
+
+ // ------------------------------------------------------------ Constructors
+
+ public MockPortletRequest() {
+
+ super();
+
+ }
+
+
+ public MockPortletRequest(PortletSession session) {
+
+ super();
+ this.session = session;
+
+ }
+
+
+ // ----------------------------------------------------- Mock Object Methods
+
+ /**
+ * <p> Add a request parameter for this request. </p>
+ *
+ * @param name Parameter name
+ * @param value Parameter value
+ */
+ public void addParameter(String name, String value) {
+
+ String[] values = (String[]) parameters.get(name);
+ if (values == null) {
+ String[] results = new String[] { value };
+ parameters.put(name, results);
+ return;
+ }
+ String[] results = new String[values.length + 1];
+ System.arraycopy(values, 0, results, 0, values.length);
+ results[values.length] = value;
+ parameters.put(name, results);
+
+ }
+
+
+ /**
+ * <p> Set the <code>PortletSession</code> associated with this request.
+ * </p>
+ *
+ * @param session The new session
+ */
+ public void setPortletSession(PortletSession session) {
+
+ this.session = session;
+ }
+
+
+ /**
+ * <p> Set the <code>Locale</code> associated with this request. </p>
+ *
+ * @param locale The new locale
+ */
+ public void setLocale(Locale locale) {
+
+ this.locale = locale;
+
+ }
+
+
+ /**
+ * <p> Set the <code>Principal</code> associated with this request. </p>
+ *
+ * @param principal The new Principal
+ */
+ public void setUserPrincipal(Principal principal) {
+
+ this.principal = principal;
+
+ }
+
+ // ------------------------------------------------------ Instance Variables
+
+ private Map attributes = new HashMap();
+ private String contextPath = null;
+ private Locale locale = null;
+ private Map parameters = new HashMap();
+ private Principal principal = null;
+ private PortletSession session = null;
+
+
+ // -------------------------------------------------- PortletRequest Methods
+
+
+ /** {@inheritDoc} */
+ public String getAuthType() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String getContextPath() {
+
+ return contextPath;
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Object getAttribute(String name) {
+
+ return attributes.get(name);
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Enumeration getAttributeNames() {
+
+ return new MockEnumeration(attributes.keySet().iterator());
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Locale getLocale() {
+
+ return locale;
+ }
+
+
+ /** {@inheritDoc} */
+ public Enumeration getLocales() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String getParameter(String name) {
+
+ String[] values = (String[]) parameters.get(name);
+ if (values != null) {
+ return values[0];
+ } else {
+ return null;
+ }
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Map getParameterMap() {
+
+ return parameters;
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Enumeration getParameterNames() {
+
+ return new MockEnumeration(parameters.keySet().iterator());
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String[] getParameterValues(String name) {
+
+ return (String[]) parameters.get(name);
+
+ }
+
+
+ /** {@inheritDoc} */
+ public PortalContext getPortalContext() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public PortletMode getPortletMode() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public PortletSession getPortletSession() {
+
+ return getPortletSession(true);
+
+ }
+
+
+ /** {@inheritDoc} */
+ public PortletSession getPortletSession(boolean create) {
+
+ if (create && (session == null)) {
+ throw new UnsupportedOperationException();
+ }
+ return session;
+
+ }
+
+
+ /** {@inheritDoc} */
+ public PortletPreferences getPreferences() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Enumeration getProperties(String arg0) {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String getProperty(String arg0) {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Enumeration getPropertyNames() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String getRemoteUser() {
+
+ if (principal != null) {
+ return principal.getName();
+ } else {
+ return null;
+ }
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String getRequestedSessionId() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String getResponseContentType() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Enumeration getResponseContentTypes() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String getScheme() {
+
+ return ("http");
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String getServerName() {
+
+ return ("localhost");
+
+ }
+
+
+ /** {@inheritDoc} */
+ public int getServerPort() {
+
+ return (8080);
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Principal getUserPrincipal() {
+
+ return principal;
+
+ }
+
+
+ /** {@inheritDoc} */
+ public WindowState getWindowState() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public boolean isPortletModeAllowed(PortletMode arg0) {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public boolean isRequestedSessionIdValid() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public boolean isSecure() {
+
+ return false;
+
+ }
+
+
+ /** {@inheritDoc} */
+ public boolean isUserInRole(String arg0) {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public boolean isWindowStateAllowed(WindowState arg0) {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public void removeAttribute(String name) {
+
+ if (attributes.containsKey(name)) {
+ attributes.remove(name);
+ }
+
+ }
+
+
+ /** {@inheritDoc} */
+ public void setAttribute(String name, Object value) {
+
+ if (name == null) {
+ throw new IllegalArgumentException("Attribute name cannot be null");
+ }
+ if (value == null) {
+ removeAttribute(name);
+ return;
+ }
+ attributes.put(name, value);
+
+ }
+
+}
Propchange: shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletRequest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletRequest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Added: shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletResponse.java
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletResponse.java?view=auto&rev=516091
==============================================================================
--- shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletResponse.java (added)
+++ shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletResponse.java Thu Mar 8 08:25:17 2007
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shale.test.mock;
+
+import javax.portlet.PortletResponse;
+
+/**
+ * <p>Mock implementation of <code>PortletResponse</code>.</p>
+ *
+ * $Id$
+ */
+
+public class MockPortletResponse implements PortletResponse {
+
+ /**
+ * <p>Return a default instance.</p>
+ */
+ public MockPortletResponse() {
+
+ }
+
+
+ // -------------------------------------------------- PortletContext Methods
+
+ /** {@inheritDoc} */
+ public void addProperty(String name, String value) {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String encodeURL(String url) {
+
+ return url;
+ }
+
+
+ /** {@inheritDoc} */
+ public void setProperty(String name, String value) {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+}
Propchange: shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletResponse.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletResponse.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Added: shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletSession.java
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletSession.java?view=auto&rev=516091
==============================================================================
--- shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletSession.java (added)
+++ shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletSession.java Thu Mar 8 08:25:17 2007
@@ -0,0 +1,268 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shale.test.mock;
+
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.portlet.PortletContext;
+import javax.portlet.PortletSession;
+
+/**
+ * <p> Mock implementation of <code>PortletSession</code>. </p>
+ *
+ * $Id$
+ */
+public class MockPortletSession implements PortletSession {
+
+ // ------------------------------------------------------------ Constructors
+
+ /**
+ * <p> Configure a default instance. </p>
+ */
+ public MockPortletSession() {
+
+ super();
+
+ }
+
+
+ /**
+ * <p> Configure a session instance associated with the specified servlet
+ * context. </p>
+ *
+ * @param servletContext The associated servlet context
+ */
+ public MockPortletSession(PortletContext portletContext) {
+
+ super();
+ this.portletContext = portletContext;
+
+ }
+
+
+ // ----------------------------------------------------- Mock Object Methods
+
+ /**
+ * <p> Set the <code>PortletContext</code> associated with this session.
+ * </p>
+ *
+ * @param servletContext The associated servlet context
+ */
+ public void setPortletContext(PortletContext portletContext) {
+
+ this.portletContext = portletContext;
+
+ }
+
+ // ------------------------------------------------------ Instance Variables
+
+ private Map portletAttributes = new HashMap();
+ private Map applicationAttributes = new HashMap();
+ private String id = "123";
+ private PortletContext portletContext = null;
+
+
+ // ---------------------------------------------------------- Public Methods
+
+ /**
+ * <p> Set the session identifier of this session. </p>
+ *
+ * @param id The new session identifier
+ */
+ public void setId(String id) {
+
+ this.id = id;
+
+ }
+
+
+ // -------------------------------------------------- PortletSession Methods
+
+
+ /** {@inheritDoc} */
+ public Object getAttribute(String name) {
+
+ return getAttribute(name, PORTLET_SCOPE);
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Object getAttribute(String name, int scope) {
+
+ if (scope == PORTLET_SCOPE) {
+ return portletAttributes.get(name);
+ } else if (scope == APPLICATION_SCOPE) {
+ return applicationAttributes.get(name);
+ }
+
+ throw new IllegalArgumentException("Scope constant " + scope
+ + " not recognized");
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Enumeration getAttributeNames() {
+
+ return getAttributeNames(PORTLET_SCOPE);
+
+ }
+
+
+ /** {@inheritDoc} */
+ public Enumeration getAttributeNames(int scope) {
+
+ if (scope == PORTLET_SCOPE) {
+ return new MockEnumeration(portletAttributes.keySet().iterator());
+ } else if (scope == APPLICATION_SCOPE) {
+ return new MockEnumeration(applicationAttributes.keySet()
+ .iterator());
+ }
+
+ throw new IllegalArgumentException("Scope constant " + scope
+ + " not recognized");
+
+ }
+
+
+ /** {@inheritDoc} */
+ public long getCreationTime() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public String getId() {
+
+ return this.id;
+
+ }
+
+
+ /** {@inheritDoc} */
+ public long getLastAccessedTime() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public int getMaxInactiveInterval() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public PortletContext getPortletContext() {
+
+ return portletContext;
+ }
+
+
+ /** {@inheritDoc} */
+ public void invalidate() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public boolean isNew() {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+
+ /** {@inheritDoc} */
+ public void removeAttribute(String name) {
+
+ removeAttribute(name, PORTLET_SCOPE);
+
+ }
+
+
+ /** {@inheritDoc} */
+ public void removeAttribute(String name, int scope) {
+
+ Map attributes;
+ if (scope == PORTLET_SCOPE) {
+ attributes = portletAttributes;
+ } else if (scope == APPLICATION_SCOPE) {
+ attributes = applicationAttributes;
+ } else {
+ throw new IllegalArgumentException("Scope constant " + scope
+ + " not recognized");
+ }
+ if (attributes.containsKey(name)) {
+ attributes.remove(name);
+ }
+
+ }
+
+
+ /** {@inheritDoc} */
+ public void setAttribute(String name, Object value) {
+
+ setAttribute(name, value, PORTLET_SCOPE);
+
+ }
+
+
+ /** {@inheritDoc} */
+ public void setAttribute(String name, Object value, int scope) {
+
+ if (name == null) {
+ throw new IllegalArgumentException("Attribute name cannot be null");
+ }
+ if (value == null) {
+ removeAttribute(name, scope);
+ return;
+ }
+
+ Map attributes;
+ if (scope == PORTLET_SCOPE) {
+ attributes = portletAttributes;
+ } else if (scope == APPLICATION_SCOPE) {
+ attributes = applicationAttributes;
+ } else {
+ throw new IllegalArgumentException("Scope constant " + scope
+ + " not recognized");
+ }
+ attributes.put(name, value);
+
+ }
+
+
+ /** {@inheritDoc} */
+ public void setMaxInactiveInterval(int arg0) {
+
+ throw new UnsupportedOperationException();
+
+ }
+
+}
Propchange: shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletSession.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: shale/framework/trunk/shale-test/src/main/java/org/apache/shale/test/mock/MockPortletSession.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL