Author: apetrelli
Date: Sun May  2 19:35:28 2010
New Revision: 940312

URL: http://svn.apache.org/viewvc?rev=940312&view=rev
Log:
TILESSB-31
Added tests for main classes in tiles-request-portlet.
Fixed something.
100% test code coverage.

Added:
    
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ActionPortletRequestTest.java
   (with props)
    
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/EventPortletRequestTest.java
   (with props)
    
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletApplicationContextTest.java
   (with props)
    
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/RenderPortletRequestTest.java
   (with props)
    
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ResourcePortletRequestTest.java
   (with props)
Modified:
    
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletApplicationContext.java
    
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
    
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java

Modified: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletApplicationContext.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletApplicationContext.java?rev=940312&r1=940311&r2=940312&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletApplicationContext.java
 (original)
+++ 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletApplicationContext.java
 Sun May  2 19:35:28 2010
@@ -89,23 +89,6 @@ public class PortletApplicationContext i
     }
 
     /**
-     * <p>Release references to allocated resources acquired in
-     * <code>initialize()</code> of via subsequent processing.  After this
-     * method is called, subsequent calls to any other method than
-     * <code>initialize()</code> will return undefined results.</p>
-     */
-    public void release() {
-
-        // Release references to allocated collections
-        applicationScope = null;
-        initParam = null;
-
-        // Release references to Portlet API objects
-        context = null;
-
-    }
-
-    /**
      * <p>Return the {...@link PortletContext} for this context.</p>
      *
      * @return The original portlet context.

Modified: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java?rev=940312&r1=940311&r2=940312&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
 (original)
+++ 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/main/java/org/apache/tiles/request/portlet/PortletRequest.java
 Sun May  2 19:35:28 2010
@@ -217,10 +217,7 @@ public class PortletRequest extends Abst
 
     /** {...@inheritdoc} */
     public Locale getRequestLocale() {
-        if (request != null) {
-            return request.getLocale();
-        }
-        return null;
+        return request.getLocale();
     }
 
     @Override
@@ -265,6 +262,11 @@ public class PortletRequest extends Abst
 
     /** {...@inheritdoc} */
     public void doForward(String path) throws IOException {
+        if (responseDelegate.isResponseCommitted()) {
+            doInclude(path);
+            return;
+        }
+
         try {
             PortletRequestDispatcher rd = getPortletContext()
                     .getRequestDispatcher(path);

Added: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ActionPortletRequestTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ActionPortletRequestTest.java?rev=940312&view=auto
==============================================================================
--- 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ActionPortletRequestTest.java
 (added)
+++ 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ActionPortletRequestTest.java
 Sun May  2 19:35:28 2010
@@ -0,0 +1,52 @@
+/**
+ *
+ */
+package org.apache.tiles.request.portlet;
+
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.lang.reflect.Field;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletContext;
+
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.portlet.delegate.StateAwareRequestDelegate;
+import org.apache.tiles.request.portlet.delegate.StateAwareResponseDelegate;
+import org.junit.Test;
+
+/**
+ * Tests {...@link ActionPortletRequest}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class ActionPortletRequestTest {
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.ActionPortletRequest#ActionPortletRequest(org.apache.tiles.request.ApplicationContext,
 javax.portlet.PortletContext, javax.portlet.ActionRequest, 
javax.portlet.ActionResponse)}.
+     * @throws NoSuchFieldException If something goes wrong.
+     * @throws SecurityException If something goes wrong.
+     * @throws IllegalAccessException If something goes wrong.
+     * @throws IllegalArgumentException If something goes wrong.
+     */
+    @Test
+    public void testActionPortletRequest() throws SecurityException, 
NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
+        ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
+        PortletContext portletContext = createMock(PortletContext.class);
+        ActionRequest request = createMock(ActionRequest.class);
+        ActionResponse response = createMock(ActionResponse.class);
+
+        replay(applicationContext, portletContext, request, response);
+        ActionPortletRequest req = new ActionPortletRequest(applicationContext,
+                portletContext, request, response);
+        Class<? extends ActionPortletRequest> clazz = req.getClass();
+        Field field = 
clazz.getSuperclass().getDeclaredField("requestDelegate");
+        assertTrue(field.get(req) instanceof StateAwareRequestDelegate);
+        field = clazz.getSuperclass().getDeclaredField("responseDelegate");
+        assertTrue(field.get(req) instanceof StateAwareResponseDelegate);
+        verify(applicationContext, portletContext, request, response);
+    }
+
+}

Propchange: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ActionPortletRequestTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ActionPortletRequestTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/EventPortletRequestTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/EventPortletRequestTest.java?rev=940312&view=auto
==============================================================================
--- 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/EventPortletRequestTest.java
 (added)
+++ 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/EventPortletRequestTest.java
 Sun May  2 19:35:28 2010
@@ -0,0 +1,52 @@
+/**
+ *
+ */
+package org.apache.tiles.request.portlet;
+
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.lang.reflect.Field;
+
+import javax.portlet.EventRequest;
+import javax.portlet.EventResponse;
+import javax.portlet.PortletContext;
+
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.portlet.delegate.StateAwareRequestDelegate;
+import org.apache.tiles.request.portlet.delegate.StateAwareResponseDelegate;
+import org.junit.Test;
+
+/**
+ * Tests {...@link EventPortletRequest}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class EventPortletRequestTest {
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.EventPortletRequest#EventPortletRequest(org.apache.tiles.request.ApplicationContext,
 javax.portlet.PortletContext, javax.portlet.EventRequest, 
javax.portlet.EventResponse)}.
+     * @throws NoSuchFieldException If something goes wrong.
+     * @throws SecurityException If something goes wrong.
+     * @throws IllegalAccessException If something goes wrong.
+     * @throws IllegalArgumentException If something goes wrong.
+     */
+    @Test
+    public void testEventPortletRequest() throws SecurityException, 
NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
+        ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
+        PortletContext portletContext = createMock(PortletContext.class);
+        EventRequest request = createMock(EventRequest.class);
+        EventResponse response = createMock(EventResponse.class);
+
+        replay(applicationContext, portletContext, request, response);
+        EventPortletRequest req = new EventPortletRequest(applicationContext,
+                portletContext, request, response);
+        Class<? extends EventPortletRequest> clazz = req.getClass();
+        Field field = 
clazz.getSuperclass().getDeclaredField("requestDelegate");
+        assertTrue(field.get(req) instanceof StateAwareRequestDelegate);
+        field = clazz.getSuperclass().getDeclaredField("responseDelegate");
+        assertTrue(field.get(req) instanceof StateAwareResponseDelegate);
+        verify(applicationContext, portletContext, request, response);
+    }
+
+}

Propchange: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/EventPortletRequestTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/EventPortletRequestTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletApplicationContextTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletApplicationContextTest.java?rev=940312&view=auto
==============================================================================
--- 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletApplicationContextTest.java
 (added)
+++ 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletApplicationContextTest.java
 Sun May  2 19:35:28 2010
@@ -0,0 +1,108 @@
+package org.apache.tiles.request.portlet;
+
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.Set;
+
+import javax.portlet.PortletContext;
+
+import org.apache.tiles.request.collection.ReadOnlyEnumerationMap;
+import org.apache.tiles.request.collection.ScopeMap;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests {...@link PortletApplicationContext}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class PortletApplicationContextTest {
+
+    private PortletContext portletContext;
+
+    private PortletApplicationContext context;
+
+    /**
+     * Sets up the test.
+     */
+    @Before
+    public void setUp() {
+        portletContext = createMock(PortletContext.class);
+        context = new PortletApplicationContext(portletContext);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletApplicationContext#getContext()}.
+     */
+    @Test
+    public void testGetContext() {
+        replay(portletContext);
+        assertEquals(portletContext, context.getContext());
+        verify(portletContext);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletApplicationContext#getPortletContext()}.
+     */
+    @Test
+    public void testGetPortletContext() {
+        replay(portletContext);
+        assertEquals(portletContext, context.getPortletContext());
+        verify(portletContext);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletApplicationContext#getApplicationScope()}.
+     */
+    @Test
+    public void testGetApplicationScope() {
+        replay(portletContext);
+        assertTrue(context.getApplicationScope() instanceof ScopeMap);
+        verify(portletContext);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletApplicationContext#getInitParams()}.
+     */
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testGetInitParams() {
+        replay(portletContext);
+        assertTrue(context.getInitParams() instanceof ReadOnlyEnumerationMap);
+        verify(portletContext);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletApplicationContext#getResource(java.lang.String)}.
+     * @throws IOException If something goes wrong.
+     */
+    @Test
+    public void testGetResource() throws IOException {
+        URL url = new URL("http://tiles.apache.org/";);
+        expect(portletContext.getResource("/my/path")).andReturn(url);
+
+        replay(portletContext);
+        assertEquals(url, context.getResource("/my/path"));
+        verify(portletContext);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletApplicationContext#getResources(java.lang.String)}.
+     * @throws IOException If something goes wrong.
+     */
+    @Test
+    public void testGetResources() throws IOException {
+        URL url = new URL("http://tiles.apache.org/";);
+        expect(portletContext.getResource("/my/path")).andReturn(url);
+
+        replay(portletContext);
+        Set<URL> urls = context.getResources("/my/path");
+        assertEquals(1, urls.size());
+        assertTrue(urls.contains(url));
+        verify(portletContext);
+    }
+}

Propchange: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletApplicationContextTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletApplicationContextTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java?rev=940312&r1=940311&r2=940312&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java
 (original)
+++ 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/PortletRequestTest.java
 Sun May  2 19:35:28 2010
@@ -1,204 +1,397 @@
-/*
- * $Id$
- *
- * 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.tiles.request.portlet;
 
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Locale;
 import java.util.Map;
 
-//import org.apache.shale.test.mock.MockPortletContext;
-//import org.apache.shale.test.mock.MockPortletRequest;
-//import org.apache.shale.test.mock.MockPortletResponse;
-//import org.apache.shale.test.mock.MockPortletSession;
-import org.apache.tiles.request.Request;
-import org.apache.tiles.request.portlet.PortletRequest;
-
-import junit.framework.TestCase;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.PortletResponse;
+import javax.servlet.ServletOutputStream;
+
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.collection.AddableParameterMap;
+import org.apache.tiles.request.collection.HeaderValuesMap;
+import org.apache.tiles.request.collection.ScopeMap;
+import org.apache.tiles.request.portlet.delegate.RequestDelegate;
+import org.apache.tiles.request.portlet.delegate.ResponseDelegate;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
+ * Tests {...@link PortletRequest}.
+ *
  * @version $Rev$ $Date$
  */
-public class PortletRequestTest extends TestCase {
+public class PortletRequestTest {
+
+    private ApplicationContext applicationContext;
+
+    private PortletContext portletContext;
+
+    private javax.portlet.PortletRequest request;
+
+    private PortletResponse response;
+
+    private PortletRequest req;
+
+    private RequestDelegate requestDelegate;
+
+    private ResponseDelegate responseDelegate;
+
+    /**
+     * Sets up the test.
+     */
+    @Before
+    public void setUp() {
+        applicationContext = createMock(ApplicationContext.class);
+        portletContext = createMock(PortletContext.class);
+        request = createMock(javax.portlet.PortletRequest.class);
+        response = createMock(PortletResponse.class);
+        requestDelegate = createMock(RequestDelegate.class);
+        responseDelegate = createMock(ResponseDelegate.class);
+        req = new PortletRequest(applicationContext, portletContext, request,
+                response, requestDelegate, responseDelegate);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#doForward(java.lang.String)}.
+     * @throws IOException If something goes wrong.
+     * @throws PortletException If something goes wrong.
+     */
+    @Test
+    public void testDoForward() throws PortletException, IOException {
+        PortletRequestDispatcher rd = 
createMock(PortletRequestDispatcher.class);
+
+        expect(responseDelegate.isResponseCommitted()).andReturn(false);
+        expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
+        rd.forward(request, response);
+
+        replay(applicationContext, portletContext, request, response, rd);
+        req.doForward("/my/path");
+        verify(applicationContext, portletContext, request, response, rd);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#doForward(java.lang.String)}.
+     * @throws IOException If something goes wrong.
+     * @throws PortletException If something goes wrong.
+     */
+    @Test(expected=IOException.class)
+    public void testDoForwardNoDispatcher() throws IOException {
+        expect(responseDelegate.isResponseCommitted()).andReturn(false);
+        
expect(portletContext.getRequestDispatcher("/my/path")).andReturn(null);
+
+        replay(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+        try {
+            req.doForward("/my/path");
+        } finally {
+            verify(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+        }
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#doForward(java.lang.String)}.
+     * @throws IOException If something goes wrong.
+     * @throws PortletException If something goes wrong.
+     */
+    @Test(expected=IOException.class)
+    public void testDoForwardPortletException() throws PortletException, 
IOException {
+        PortletRequestDispatcher rd = 
createMock(PortletRequestDispatcher.class);
+
+        expect(responseDelegate.isResponseCommitted()).andReturn(false);
+        expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
+        rd.forward(request, response);
+        expectLastCall().andThrow(new PortletException());
+
+        replay(applicationContext, request, response, rd, portletContext, 
requestDelegate, responseDelegate);
+        try {
+            req.doForward("/my/path");
+        } finally {
+            verify(applicationContext, request, response, rd, portletContext, 
requestDelegate, responseDelegate);
+        }
+    }
 
     /**
-     * The used request context.
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#doForward(java.lang.String)}.
+     * @throws IOException If something goes wrong.
+     * @throws PortletException If something goes wrong.
      */
-    private Request context;
+    @Test
+    public void testDoForwardInclude() throws PortletException, IOException {
+        PortletRequestDispatcher rd = 
createMock(PortletRequestDispatcher.class);
+
+        expect(responseDelegate.isResponseCommitted()).andReturn(true);
+        expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
+        rd.include(request, response);
+
+        replay(applicationContext, request, response, rd, portletContext, 
requestDelegate, responseDelegate);
+        req.doForward("/my/path");
+        verify(applicationContext, request, response, rd, portletContext, 
requestDelegate, responseDelegate);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#doInclude(java.lang.String)}.
+     * @throws IOException If something goes wrong.
+     * @throws PortletException If something goes wrong.
+     */
+    @Test
+    public void testDoInclude() throws IOException, PortletException {
+        PortletRequestDispatcher rd = 
createMock(PortletRequestDispatcher.class);
+
+        expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
+        rd.include(request, response);
 
-    /** {...@inheritdoc} */
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-//        MockPortletContext servletContext = new MockPortletContext();
-//        servletContext
-//                .addInitParameter("initParameter1", "initParameterValue1");
-//        MockPortletSession session = new MockPortletSession(servletContext);
-//        MockPortletRequest request = new MockPortletRequest(session);
-//        MockPortletResponse response = new MockPortletResponse();
-//        request.addParameter("myParam", "value1");
-//        request.addParameter("myParam", "value2");
-//
-//        context = new PortletTilesRequestContext(servletContext, request,
-//                response);
-//
-//        Map<String, Object> requestScope = context.getRequestScope();
-//        requestScope.put("attribute1", "value1");
-//        requestScope.put("attribute2", "value2");
-//
-//        Map<String, Object> sessionScope = context.getSessionScope();
-//        sessionScope.put("sessionAttribute1", "sessionValue1");
-//        sessionScope.put("sessionAttribute2", "sessionValue2");
-//
-//        Map<String, Object> applicationScope = ((TilesApplicationContext) 
context)
-//                .getApplicationScope();
-//        applicationScope.put("applicationAttribute1", "applicationValue1");
-//        applicationScope.put("applicationAttribute2", "applicationValue2");
+        replay(applicationContext, request, response, rd, portletContext, 
requestDelegate, responseDelegate);
+        req.doInclude("/my/path");
+        verify(applicationContext, request, response, rd, portletContext, 
requestDelegate, responseDelegate);
     }
 
     /**
-     * Tests getting the header.
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#doInclude(java.lang.String)}.
+     * @throws IOException If something goes wrong.
      */
+    @Test(expected=IOException.class)
+    public void testDoIncludeNoDispatcher() throws IOException {
+        
expect(portletContext.getRequestDispatcher("/my/path")).andReturn(null);
+
+        replay(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+        try {
+            req.doInclude("/my/path");
+        } finally {
+            verify(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+        }
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#doInclude(java.lang.String)}.
+     * @throws IOException If something goes wrong.
+     * @throws PortletException If something goes wrong.
+     */
+    @Test(expected=IOException.class)
+    public void testDoIncludePortletException() throws IOException, 
PortletException {
+        PortletRequestDispatcher rd = 
createMock(PortletRequestDispatcher.class);
+
+        expect(portletContext.getRequestDispatcher("/my/path")).andReturn(rd);
+        rd.include(request, response);
+        expectLastCall().andThrow(new PortletException());
+
+        replay(applicationContext, request, response, rd, portletContext, 
requestDelegate, responseDelegate);
+        try {
+            req.doInclude("/my/path");
+        } finally {
+            verify(applicationContext, request, response, rd, portletContext, 
requestDelegate, responseDelegate);
+        }
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getHeader()}.
+     */
+    @Test
     public void testGetHeader() {
-//        Map<String, String> map = context.getHeader();
-//        assertTrue("The portlet cannot have headers!", map.isEmpty());
-//        doTestReadMap(map, String.class, String.class, "header map");
+        assertTrue(req.getHeader() instanceof AddableParameterMap);
     }
 
     /**
-     * Tests getting the header values.
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getHeaderValues()}.
      */
+    @Test
     public void testGetHeaderValues() {
-//        Map<String, String[]> map = context.getHeaderValues();
-//        assertTrue("The portlet cannot have headers!", map.isEmpty());
-//        doTestReadMap(map, String.class, String[].class, "header values 
map");
+        assertTrue(req.getHeaderValues() instanceof HeaderValuesMap);
     }
 
     /**
-     * Tests getting request parameters.
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getParam()}.
      */
+    @SuppressWarnings("unchecked")
+    @Test
     public void testGetParam() {
-//        Map<String, String> map = context.getParam();
-//        assertTrue("The parameters do not contain a set value", "value1"
-//                .equals(map.get("myParam"))
-//                || "value2".equals(map.get("myParam")));
-//        doTestReadMap(map, String.class, String.class, "parameter map");
+        Map<String, String> map = createMock(Map.class);
+
+        expect(requestDelegate.getParam()).andReturn(map);
+
+        replay(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+        assertEquals(map, req.getParam());
+        verify(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
     }
 
     /**
-     * Tests getting request parameters values.
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getParamValues()}.
      */
+    @SuppressWarnings("unchecked")
+    @Test
     public void testGetParamValues() {
-//        Map<String, String[]> map = context.getParamValues();
-//        String[] array = map.get("myParam");
-//        assertTrue(
-//                "The parameters not contain a set value",
-//                array.length == 2
-//                        && (("value1".equals(array[0]) && "value2"
-//                                .equals(array[1])) || ("value1"
-//                                .equals(array[1]) && 
"value2".equals(array[0]))));
-//        doTestReadMap(map, String.class, String[].class, "parameter values 
map");
+        Map<String, String[]> paramMap = createMock(Map.class);
+
+        expect(requestDelegate.getParamValues()).andReturn(paramMap);
+
+        replay(applicationContext, request, response, paramMap, 
portletContext, requestDelegate, responseDelegate);
+        assertEquals(paramMap, req.getParamValues());
+        verify(applicationContext, request, response, paramMap, 
portletContext, requestDelegate, responseDelegate);
     }
 
     /**
-     * Tests {...@link PortletRequest#getApplicationContext()}.
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getRequestScope()}.
      */
-    public void testGetApplicationContext() {
-//      assertTrue("The objects are not the same", context == context
-//              .getApplicationContext());
+    @Test
+    public void testGetRequestScope() {
+        assertTrue(req.getRequestScope() instanceof ScopeMap);
     }
 
     /**
-     * Tests getting request scope attributes.
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getSessionScope()}.
      */
-    public void testGetRequestScope() {
-//        Map<String, Object> map = context.getRequestScope();
-//        assertTrue("The request scope does not contain a set value", "value1"
-//                .equals(map.get("attribute1")));
-//        assertTrue("The request scope does not contain a set value", "value2"
-//                .equals(map.get("attribute2")));
-//        doTestReadMap(map, String.class, Object.class, "request scope map");
+    @Test
+    public void testGetSessionScope() {
+        assertTrue(req.getSessionScope() instanceof ScopeMap);
     }
 
     /**
-     * Tests getting session scope attributes.
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getPortletSessionScope()}.
      */
-    public void testGetSessionScope() {
-//        Map<String, Object> map = context.getSessionScope();
-//        assertTrue("The session scope does not contain a set value",
-//                "sessionValue1".equals(map.get("sessionAttribute1")));
-//        assertTrue("The session scope does not contain a set value",
-//                "sessionValue2".equals(map.get("sessionAttribute2")));
-//        doTestReadMap(map, String.class, Object.class, "session scope map");
+    @Test
+    public void testGetPortletSessionScope() {
+        assertTrue(req.getPortletSessionScope() instanceof ScopeMap);
     }
 
     /**
-     * Tests getting application scope attributes.
-     */
-    public void testGetApplicationScope() {
-//        Map<String, Object> map = ((TilesApplicationContext) context)
-//                .getApplicationScope();
-//        assertTrue("The application scope does not contain a set value",
-//                
"applicationValue1".equals(map.get("applicationAttribute1")));
-//        assertTrue("The application scope does not contain a set value",
-//                
"applicationValue2".equals(map.get("applicationAttribute2")));
-//        doTestReadMap(map, String.class, Object.class, "application scope 
map");
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getNativeScopes()}.
+     */
+    @Test
+    public void testGetNativeScopes() {
+        assertArrayEquals(new String[] { "request", "portletSession",
+                "session", "application" }, req.getNativeScopes());
     }
 
     /**
-     * Tests getting init parameters..
-     */
-    public void testGetInitParams() {
-//        Map<String, String> map = ((TilesApplicationContext) context)
-//                .getInitParams();
-//        assertTrue("The init parameters do not contain a set value",
-//                "initParameterValue1".equals(map.get("initParameter1")));
-//        doTestReadMap(map, String.class, String.class,
-//                "init parameters scope map");
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getOutputStream()}.
+     * @throws IOException If something goes wrong.
+     */
+    @Test
+    public void testGetOutputStream() throws IOException {
+        ServletOutputStream os = createMock(ServletOutputStream.class);
+
+        expect(responseDelegate.getOutputStream()).andReturn(os);
+
+        replay(applicationContext, request, response, os, portletContext, 
requestDelegate, responseDelegate);
+        assertEquals(req.getOutputStream(), os);
+        verify(applicationContext, request, response, os, portletContext, 
requestDelegate, responseDelegate);
     }
 
     /**
-     * Tests a generic map.
-     *
-     * @param <K> The key type.
-     * @param <V> The value type.
-     * @param currentMap The map to check.
-     * @param keyClass The key class.
-     * @param valueClass The value class.
-     * @param mapName The name of the map to test (for messages).
-     */
-    private <K, V> void doTestReadMap(Map<K, V> currentMap, Class<K> keyClass,
-            Class<V> valueClass, String mapName) {
-        int size1, size2;
-        size1 = currentMap.keySet().size();
-        size2 = currentMap.entrySet().size();
-        assertEquals("The map" + mapName
-                + " has keySet and entrySet of different size", size1, size2);
-        for (K key : currentMap.keySet()) {
-            assertTrue("The key is not of class" + keyClass.getName(), keyClass
-                    .isInstance(key));
-            V value = currentMap.get(key);
-            assertTrue("The value is not of class" + valueClass.getName(),
-                    valueClass.isInstance(value));
-            assertTrue("The map " + mapName
-                    + " does not return the correct value for 'containsValue'",
-                    currentMap.containsValue(value));
-        }
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getWriter()}.
+     * @throws IOException If something goes wrong.
+     */
+    @Test
+    public void testGetWriter() throws IOException {
+        PrintWriter os = createMock(PrintWriter.class);
+
+        expect(responseDelegate.getWriter()).andReturn(os);
+
+        replay(applicationContext, request, response, os, portletContext, 
requestDelegate, responseDelegate);
+        assertEquals(req.getWriter(), os);
+        verify(applicationContext, request, response, os, portletContext, 
requestDelegate, responseDelegate);
     }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getPrintWriter()}.
+     * @throws IOException If something goes wrong.
+     */
+    @Test
+    public void testGetPrintWriter() throws IOException {
+        PrintWriter os = createMock(PrintWriter.class);
+
+        expect(responseDelegate.getPrintWriter()).andReturn(os);
+
+        replay(applicationContext, request, response, os, portletContext, 
requestDelegate, responseDelegate);
+        assertEquals(req.getPrintWriter(), os);
+        verify(applicationContext, request, response, os, portletContext, 
requestDelegate, responseDelegate);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#isResponseCommitted()}.
+     */
+    @Test
+    public void testIsResponseCommitted() {
+        expect(responseDelegate.isResponseCommitted()).andReturn(true);
+
+        replay(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+        assertTrue(req.isResponseCommitted());
+        verify(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#setContentType(java.lang.String)}.
+     */
+    @Test
+    public void testSetContentType() {
+        responseDelegate.setContentType("text/html");
+
+        replay(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+        req.setContentType("text/html");
+        verify(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getRequestLocale()}.
+     */
+    @Test
+    public void testGetRequestLocale() {
+        Locale locale = Locale.ITALY;
+
+        expect(request.getLocale()).andReturn(locale);
+
+        replay(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+        assertEquals(locale, req.getRequestLocale());
+        verify(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getRequestObjects()}.
+     */
+    @Test
+    public void testGetRequestObjects() {
+        replay(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+        assertArrayEquals(new Object[] {request, response}, 
req.getRequestObjects());
+        verify(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getRequest()}.
+     */
+    @Test
+    public void testGetRequest() {
+        replay(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+        assertEquals(request, req.getRequest());
+        verify(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#getResponse()}.
+     */
+    @Test
+    public void testGetResponse() {
+        replay(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+        assertEquals(response, req.getResponse());
+        verify(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.PortletRequest#isUserInRole(java.lang.String)}.
+     */
+    @Test
+    public void testIsUserInRole() {
+        expect(request.isUserInRole("myrole")).andReturn(true);
+
+        replay(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+        assertTrue(req.isUserInRole("myrole"));
+        verify(applicationContext, request, response, portletContext, 
requestDelegate, responseDelegate);
+    }
+
 }

Added: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/RenderPortletRequestTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/RenderPortletRequestTest.java?rev=940312&view=auto
==============================================================================
--- 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/RenderPortletRequestTest.java
 (added)
+++ 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/RenderPortletRequestTest.java
 Sun May  2 19:35:28 2010
@@ -0,0 +1,52 @@
+/**
+ *
+ */
+package org.apache.tiles.request.portlet;
+
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.lang.reflect.Field;
+
+import javax.portlet.PortletContext;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.portlet.delegate.MimeResponseDelegate;
+import org.apache.tiles.request.portlet.delegate.PortletRequestDelegate;
+import org.junit.Test;
+
+/**
+ * Tests {...@link RenderPortletRequest}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class RenderPortletRequestTest {
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.RenderPortletRequest#RenderPortletRequest(org.apache.tiles.request.ApplicationContext,
 javax.portlet.PortletContext, javax.portlet.RenderRequest, 
javax.portlet.RenderResponse)}.
+     * @throws NoSuchFieldException If something goes wrong.
+     * @throws SecurityException If something goes wrong.
+     * @throws IllegalAccessException If something goes wrong.
+     * @throws IllegalArgumentException If something goes wrong.
+     */
+    @Test
+    public void testRenderPortletRequest() throws SecurityException, 
NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
+        ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
+        PortletContext portletContext = createMock(PortletContext.class);
+        RenderRequest request = createMock(RenderRequest.class);
+        RenderResponse response = createMock(RenderResponse.class);
+
+        replay(applicationContext, portletContext, request, response);
+        RenderPortletRequest req = new RenderPortletRequest(applicationContext,
+                portletContext, request, response);
+        Class<? extends RenderPortletRequest> clazz = req.getClass();
+        Field field = 
clazz.getSuperclass().getDeclaredField("requestDelegate");
+        assertTrue(field.get(req) instanceof PortletRequestDelegate);
+        field = clazz.getSuperclass().getDeclaredField("responseDelegate");
+        assertTrue(field.get(req) instanceof MimeResponseDelegate);
+        verify(applicationContext, portletContext, request, response);
+    }
+
+}

Propchange: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/RenderPortletRequestTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/RenderPortletRequestTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ResourcePortletRequestTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ResourcePortletRequestTest.java?rev=940312&view=auto
==============================================================================
--- 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ResourcePortletRequestTest.java
 (added)
+++ 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ResourcePortletRequestTest.java
 Sun May  2 19:35:28 2010
@@ -0,0 +1,52 @@
+/**
+ *
+ */
+package org.apache.tiles.request.portlet;
+
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.lang.reflect.Field;
+
+import javax.portlet.PortletContext;
+import javax.portlet.ResourceRequest;
+import javax.portlet.ResourceResponse;
+
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.portlet.delegate.MimeResponseDelegate;
+import org.apache.tiles.request.portlet.delegate.PortletRequestDelegate;
+import org.junit.Test;
+
+/**
+ * Tests {...@link ResourcePortletRequest}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class ResourcePortletRequestTest {
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.request.portlet.ResourcePortletRequest#ResourcePortletRequest(org.apache.tiles.request.ApplicationContext,
 javax.portlet.PortletContext, javax.portlet.ResourceRequest, 
javax.portlet.ResourceResponse)}.
+     * @throws NoSuchFieldException If something goes wrong.
+     * @throws SecurityException If something goes wrong.
+     * @throws IllegalAccessException If something goes wrong.
+     * @throws IllegalArgumentException If something goes wrong.
+     */
+    @Test
+    public void testResourcePortletRequest() throws SecurityException, 
NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
+        ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
+        PortletContext portletContext = createMock(PortletContext.class);
+        ResourceRequest request = createMock(ResourceRequest.class);
+        ResourceResponse response = createMock(ResourceResponse.class);
+
+        replay(applicationContext, portletContext, request, response);
+        ResourcePortletRequest req = new 
ResourcePortletRequest(applicationContext,
+                portletContext, request, response);
+        Class<? extends ResourcePortletRequest> clazz = req.getClass();
+        Field field = 
clazz.getSuperclass().getDeclaredField("requestDelegate");
+        assertTrue(field.get(req) instanceof PortletRequestDelegate);
+        field = clazz.getSuperclass().getDeclaredField("responseDelegate");
+        assertTrue(field.get(req) instanceof MimeResponseDelegate);
+        verify(applicationContext, portletContext, request, response);
+    }
+
+}

Propchange: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ResourcePortletRequestTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tiles/sandbox/trunk/tiles-request/tiles-request-portlet/src/test/java/org/apache/tiles/request/portlet/ResourcePortletRequestTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL


Reply via email to