You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by ap...@apache.org on 2010/05/08 20:05:20 UTC

svn commit: r942431 - in /tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src: main/java/org/apache/tiles/request/velocity/ main/java/org/apache/tiles/request/velocity/extractor/ test/java/org/apache/tiles/request/velocity/ test/java/org/apach...

Author: apetrelli
Date: Sat May  8 18:05:19 2010
New Revision: 942431

URL: http://svn.apache.org/viewvc?rev=942431&view=rev
Log:
TILESSB-31
Refactored Velocity request support.

Added:
    tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/extractor/
    tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractor.java   (with props)
    tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityScopeMapTest.java   (with props)
    tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/extractor/
    tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractorTest.java   (with props)
Modified:
    tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityRequest.java
    tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityScopeMap.java
    tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityRequestTest.java

Modified: tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityRequest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityRequest.java?rev=942431&r1=942430&r2=942431&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityRequest.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityRequest.java Sat May  8 18:05:19 2010
@@ -66,6 +66,16 @@ public class VelocityRequest extends Abs
 
     private Map<String, Object> pageScope;
 
+    public static VelocityRequest createVelocityRequest(
+            ApplicationContext applicationContext, HttpServletRequest request,
+            HttpServletResponse response, Context velocityContext, Writer writer) {
+        Request servletRequest = new ServletRequest(
+                applicationContext, request, response);
+        VelocityRequest velocityRequest = new VelocityRequest(
+                servletRequest, velocityContext, writer);
+        return velocityRequest;
+    }
+
     /**
      * Constructor.
      *
@@ -159,14 +169,4 @@ public class VelocityRequest extends Abs
         }
         return pageScope;
     }
-
-    public static Request createVelocityRequest(ApplicationContext applicationContext,
-            HttpServletRequest request, HttpServletResponse response,
-            Context velocityContext, Writer writer) {
-        Request servletRequest = new ServletRequest(
-                applicationContext, request, response);
-        Request velocityRequest = new VelocityRequest(
-                servletRequest, velocityContext, writer);
-        return velocityRequest;
-    }
 }

Modified: tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityScopeMap.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityScopeMap.java?rev=942431&r1=942430&r2=942431&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityScopeMap.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/VelocityScopeMap.java Sat May  8 18:05:19 2010
@@ -20,15 +20,11 @@
  */
 package org.apache.tiles.request.velocity;
 
-import java.util.ArrayList;
-import java.util.Collection;
 import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
 import java.util.Set;
 
-import org.apache.tiles.request.util.MapEntry;
+import org.apache.tiles.request.collection.ScopeMap;
+import org.apache.tiles.request.velocity.extractor.VelocityScopeExtractor;
 import org.apache.velocity.context.Context;
 
 /**
@@ -38,101 +34,42 @@ import org.apache.velocity.context.Conte
  * @version $Rev$ $Date$
  */
 
-final class VelocityScopeMap implements Map<String, Object> {
-
+final class VelocityScopeMap extends ScopeMap {
 
     /**
      * The request object to use.
      */
     private Context request = null;
 
-
     /**
      * Constructor.
      *
      * @param request The request object to use.
      */
     public VelocityScopeMap(Context request) {
+        super(new VelocityScopeExtractor(request));
         this.request = request;
     }
 
-
-    /** {@inheritDoc} */
-    public void clear() {
-        Object[] keys = request.getKeys();
-        for (Object key: keys) {
-            request.remove(key);
-        }
-    }
-
-
-    /** {@inheritDoc} */
-    public boolean containsKey(Object key) {
-        return request.containsKey(key);
-    }
-
-
-    /** {@inheritDoc} */
-    public boolean containsValue(Object value) {
-        if (value == null) {
-            return (false);
-        }
-        Object[] keys = request.getKeys();
-        for (Object key : keys) {
-            Object next = request.get((String) key);
-            if (next == value) {
-                return (true);
-            }
-        }
-        return (false);
-    }
-
-
-    /** {@inheritDoc} */
-    public Set<Map.Entry<String, Object>> entrySet() {
-        Set<Map.Entry<String, Object>> set = new HashSet<Map.Entry<String, Object>>();
-        Object[] keys = request.getKeys();
-        for (Object key : keys) {
-            set.add(new MapEntry<String, Object>((String) key,
-                    request.get((String) key), true));
-        }
-        return (set);
-    }
-
-
-    /** {@inheritDoc} */
     @Override
-    public boolean equals(Object o) {
-        Context otherRequest = ((VelocityScopeMap) o).request;
-        boolean retValue = true;
-        synchronized (request) {
-            for (Object key : request.getKeys()) {
-                String attributeName = (String) key;
-                retValue = request.get(attributeName).equals(
-                        otherRequest.get(attributeName));
-            }
-        }
-
-        return retValue;
+    public Object remove(Object key) {
+        return request.remove(key);
     }
 
-
-    /** {@inheritDoc} */
-    public Object get(Object key) {
-        return (request.get(key(key)));
+    @Override
+    public Object put(String key, Object value) {
+        return request.put(key, value);
     }
 
-
     /** {@inheritDoc} */
-    @Override
-    public int hashCode() {
-        return (request.hashCode());
+    public boolean containsKey(Object key) {
+        return request.containsKey(key);
     }
 
 
     /** {@inheritDoc} */
     public boolean isEmpty() {
-        return (size() < 1);
+        return size() < 1;
     }
 
 
@@ -145,70 +82,8 @@ final class VelocityScopeMap implements 
         return (set);
     }
 
-
-    /** {@inheritDoc} */
-    public Object put(String key, Object value) {
-        if (value == null) {
-            return (remove(key));
-        }
-        String skey = key(key);
-        Object previous = request.get(skey);
-        request.put(skey, value);
-        return (previous);
-    }
-
-
-    /** {@inheritDoc} */
-    public void putAll(Map<? extends String, ? extends Object> map) {
-        Iterator<? extends String> keys = map.keySet().iterator();
-        while (keys.hasNext()) {
-            String key = keys.next();
-            request.put(key, map.get(key));
-        }
-    }
-
-
-    /** {@inheritDoc} */
-    public Object remove(Object key) {
-        String skey = key(key);
-        Object previous = request.get(skey);
-        request.remove(skey);
-        return (previous);
-    }
-
-
     /** {@inheritDoc} */
     public int size() {
         return request.getKeys().length;
     }
-
-
-    /** {@inheritDoc} */
-    public Collection<Object> values() {
-        List<Object> list = new ArrayList<Object>();
-        for (Object key : request.getKeys()) {
-            list.add(request.get((String) key));
-        }
-        return (list);
-    }
-
-
-    /**
-     * Returns the string representation of the key.
-     *
-     * @param key The key.
-     * @return The string representation of the key.
-     * @throws IllegalArgumentException If the key is <code>null</code>.
-     */
-    private String key(Object key) {
-        if (key == null) {
-            throw new IllegalArgumentException();
-        } else if (key instanceof String) {
-            return ((String) key);
-        } else {
-            return (key.toString());
-        }
-    }
-
-
 }

Added: tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractor.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractor.java?rev=942431&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractor.java (added)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractor.java Sat May  8 18:05:19 2010
@@ -0,0 +1,56 @@
+package org.apache.tiles.request.velocity.extractor;
+
+import java.util.Enumeration;
+
+import org.apache.tiles.request.collection.extractor.AttributeExtractor;
+import org.apache.velocity.context.Context;
+
+public class VelocityScopeExtractor implements AttributeExtractor {
+
+    private Context context;
+
+    public VelocityScopeExtractor(Context context) {
+        this.context = context;
+    }
+
+    @Override
+    public void removeValue(String name) {
+        context.remove(name);
+    }
+
+    @Override
+    public Enumeration<String> getKeys() {
+        return new KeyEnumeration(context.getKeys());
+    }
+
+    @Override
+    public Object getValue(String key) {
+        return context.get(key);
+    }
+
+    @Override
+    public void setValue(String key, Object value) {
+        context.put(key, value);
+    }
+
+    private static class KeyEnumeration implements Enumeration<String> {
+
+        private int index = 0;
+
+        private Object[] keys;
+
+        public KeyEnumeration(Object[] keys) {
+            this.keys = keys;
+        }
+
+        @Override
+        public boolean hasMoreElements() {
+            return index < keys.length;
+        }
+
+        @Override
+        public String nextElement() {
+            return (String) keys[index++];
+        }
+    }
+}

Propchange: tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/main/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractor.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityRequestTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityRequestTest.java?rev=942431&r1=942430&r2=942431&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityRequestTest.java (original)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityRequestTest.java Sat May  8 18:05:19 2010
@@ -21,10 +21,12 @@
 
 package org.apache.tiles.request.velocity;
 
-import static org.junit.Assert.*;
+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.io.StringWriter;
 
 import javax.servlet.RequestDispatcher;
@@ -32,10 +34,10 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.tiles.request.AbstractRequest;
+import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.Request;
 import org.apache.tiles.request.servlet.ExternalWriterHttpServletResponse;
-import org.apache.tiles.request.velocity.VelocityRequest;
+import org.apache.tiles.request.servlet.ServletRequest;
 import org.apache.velocity.context.Context;
 import org.junit.Before;
 import org.junit.Test;
@@ -70,6 +72,38 @@ public class VelocityRequestTest {
     }
 
     /**
+     * Tests {@link VelocityRequest
+     * #createVelocityRequest(org.apache.tiles.request.ApplicationContext, HttpServletRequest, HttpServletResponse, Context, java.io.Writer)}.
+     * @throws IOException If something goes wrong.
+     * @throws ServletException If something goes wrong.
+     */
+    @Test
+    public void testCreateVelocityRequest() {
+        HttpServletRequest httpRequest = createMock(HttpServletRequest.class);
+        HttpServletResponse response = createMock(HttpServletResponse.class);
+        ApplicationContext applicationContext = createMock(ApplicationContext.class);
+
+        replay(velocityContext, httpRequest, response, applicationContext);
+        context = VelocityRequest.createVelocityRequest(applicationContext, httpRequest, response, velocityContext, writer);
+        ServletRequest servletRequest = (ServletRequest) context.getWrappedRequest();
+        assertEquals(httpRequest, servletRequest.getRequest());
+        assertEquals(response, servletRequest.getResponse());
+        verify(velocityContext, httpRequest, response, applicationContext);
+    }
+
+    /**
+     * Tests {@link FreemarkerRequest#getNativeScopes()}.
+     */
+    @Test
+    public void testGetNativeScopes() {
+        Request enclosedRequest = createMock(Request.class);
+        replay(enclosedRequest);
+        context = new VelocityRequest(enclosedRequest, velocityContext, writer);
+        assertArrayEquals(new String[] {"page"}, context.getNativeScopes());
+        verify(enclosedRequest);
+    }
+
+    /**
      * Tests {@link VelocityRequest#doInclude(String)}.
      *
      * @throws IOException If something goes wrong.
@@ -97,6 +131,59 @@ public class VelocityRequestTest {
     }
 
     /**
+     * Tests {@link VelocityRequest#doInclude(String)}.
+     *
+     * @throws IOException If something goes wrong.
+     * @throws ServletException If something goes wrong.
+     */
+    @Test(expected=IOException.class)
+    public void testDoIncludeNoRequestDispatcher() throws IOException {
+        String path = "this way";
+        Request enclosedRequest = createMock(Request.class);
+        HttpServletRequest servletRequest = createMock(HttpServletRequest.class);
+        HttpServletResponse response = createMock(HttpServletResponse.class);
+
+        expect(servletRequest.getRequestDispatcher("this way")).andReturn(null);
+        replay(servletRequest, response);
+        Object[] requestItems = new Object[] {servletRequest, response};
+
+        expect(enclosedRequest.getRequestObjects()).andReturn(requestItems);
+
+        replay(velocityContext, enclosedRequest);
+        context = new VelocityRequest(enclosedRequest, velocityContext, writer);
+        context.doInclude(path);
+        verify(velocityContext, enclosedRequest, servletRequest, response);
+    }
+
+    /**
+     * Tests {@link VelocityRequest#doInclude(String)}.
+     *
+     * @throws IOException If something goes wrong.
+     * @throws ServletException If something goes wrong.
+     */
+    @Test(expected=IOException.class)
+    public void testDoIncludeServletException() throws IOException, ServletException {
+        String path = "this way";
+        Request enclosedRequest = createMock(Request.class);
+        HttpServletRequest servletRequest = createMock(HttpServletRequest.class);
+        HttpServletResponse response = createMock(HttpServletResponse.class);
+        RequestDispatcher dispatcher = createMock(RequestDispatcher.class);
+
+        expect(servletRequest.getRequestDispatcher("this way")).andReturn(dispatcher);
+        dispatcher.include(eq(servletRequest), isA(ExternalWriterHttpServletResponse.class));
+        expectLastCall().andThrow(new ServletException());
+        replay(servletRequest, response, dispatcher);
+        Object[] requestItems = new Object[] {servletRequest, response};
+
+        expect(enclosedRequest.getRequestObjects()).andReturn(requestItems);
+
+        replay(velocityContext, enclosedRequest);
+        context = new VelocityRequest(enclosedRequest, velocityContext, writer);
+        context.doInclude(path);
+        verify(velocityContext, enclosedRequest, servletRequest, response, dispatcher);
+    }
+
+    /**
      * Tests {@link VelocityRequest#getPrintWriter()}.
      *
      * @throws IOException If something goes wrong.
@@ -112,6 +199,37 @@ public class VelocityRequestTest {
     }
 
     /**
+     * Tests {@link VelocityRequest#getPrintWriter()}.
+     *
+     * @throws IOException If something goes wrong.
+     */
+    @Test
+    public void testGetPrintWriterPrintWriter() {
+        Request enclosedRequest = createMock(Request.class);
+
+        PrintWriter printWriter = new PrintWriter(writer);
+        replay(velocityContext, enclosedRequest);
+        context = new VelocityRequest(enclosedRequest, velocityContext, printWriter);
+        assertEquals(printWriter, context.getPrintWriter());
+        verify(velocityContext, enclosedRequest);
+    }
+
+    /**
+     * Tests {@link VelocityRequest#getPrintWriter()}.
+     *
+     * @throws IOException If something goes wrong.
+     */
+    @Test(expected=IllegalStateException.class)
+    public void testGetPrintWriterNoWriter() {
+        Request enclosedRequest = createMock(Request.class);
+
+        replay(velocityContext, enclosedRequest);
+        context = new VelocityRequest(enclosedRequest, velocityContext, null);
+        context.getPrintWriter();
+        verify(velocityContext, enclosedRequest);
+    }
+
+    /**
      * Tests {@link VelocityRequest#getWriter()}.
      *
      * @throws IOException If something goes wrong.
@@ -127,6 +245,21 @@ public class VelocityRequestTest {
     }
 
     /**
+     * Tests {@link VelocityRequest#getWriter()}.
+     *
+     * @throws IOException If something goes wrong.
+     */
+    @Test(expected=IllegalStateException.class)
+    public void testGetWriterNoWriter() {
+        Request enclosedRequest = createMock(Request.class);
+
+        replay(velocityContext, enclosedRequest);
+        context = new VelocityRequest(enclosedRequest, velocityContext, null);
+        context.getWriter();
+        verify(velocityContext, enclosedRequest);
+    }
+
+    /**
      * Tests {@link VelocityRequest#getRequestObjects()}.
      * @throws IOException If something goes wrong.
      * @throws ServletException If something goes wrong.
@@ -148,4 +281,40 @@ public class VelocityRequestTest {
                 response, writer }, context.getRequestObjects());
         verify(velocityContext, enclosedRequest, servletRequest, response);
     }
+
+    /**
+     * Tests {@link VelocityRequest#getRequestObjects()}.
+     * @throws IOException If something goes wrong.
+     * @throws ServletException If something goes wrong.
+     */
+    @Test
+    public void testGetRequestObjectsNoWriter() {
+        Request enclosedRequest = createMock(Request.class);
+        HttpServletRequest servletRequest = createMock(HttpServletRequest.class);
+        HttpServletResponse response = createMock(HttpServletResponse.class);
+
+        replay(servletRequest, response);
+        Object[] requestItems = new Object[] {servletRequest, response};
+
+        expect(enclosedRequest.getRequestObjects()).andReturn(requestItems);
+
+        replay(velocityContext, enclosedRequest);
+        context = new VelocityRequest(enclosedRequest, velocityContext, null);
+        assertArrayEquals(new Object[] { velocityContext, servletRequest,
+                response}, context.getRequestObjects());
+        verify(velocityContext, enclosedRequest, servletRequest, response);
+    }
+
+    /**
+     * Tests {@link VelocityRequest#getPageScope()}.
+     */
+    @Test
+    public void testGetPageScope() {
+        Request enclosedRequest = createMock(Request.class);
+
+        replay(velocityContext, enclosedRequest);
+        context = new VelocityRequest(enclosedRequest, velocityContext, writer);
+        assertTrue(context.getPageScope() instanceof VelocityScopeMap);
+        verify(velocityContext, enclosedRequest);
+    }
 }

Added: tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityScopeMapTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityScopeMapTest.java?rev=942431&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityScopeMapTest.java (added)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/VelocityScopeMapTest.java Sat May  8 18:05:19 2010
@@ -0,0 +1,121 @@
+/**
+ *
+ */
+package org.apache.tiles.request.velocity;
+
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.util.Set;
+
+import org.apache.velocity.context.Context;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests {@link VelocityScopeMap}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class VelocityScopeMapTest {
+
+    private Context request;
+
+    private VelocityScopeMap map;
+
+    /**
+     * Sets up the test.
+     */
+    @Before
+    public void setUp() {
+        request = createMock(Context.class);
+        map = new VelocityScopeMap(request);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.request.velocity.VelocityScopeMap#containsKey(java.lang.Object)}.
+     */
+    @Test
+    public void testContainsKey() {
+        expect(request.containsKey("key")).andReturn(true);
+
+        replay(request);
+        assertTrue(map.containsKey("key"));
+        verify(request);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.request.velocity.VelocityScopeMap#isEmpty()}.
+     */
+    @Test
+    public void testIsEmpty() {
+        expect(request.getKeys()).andReturn(new Object[0]);
+
+        replay(request);
+        assertTrue(map.isEmpty());
+        verify(request);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.request.velocity.VelocityScopeMap#isEmpty()}.
+     */
+    @Test
+    public void testIsEmptyFalse() {
+        expect(request.getKeys()).andReturn(new Object[] {"one", "two"});
+
+        replay(request);
+        assertFalse(map.isEmpty());
+        verify(request);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.request.velocity.VelocityScopeMap#keySet()}.
+     */
+    @Test
+    public void testKeySet() {
+        expect(request.getKeys()).andReturn(new Object[] {"one", "two"});
+
+        replay(request);
+        Set<String> set = map.keySet();
+        assertEquals(2, set.size());
+        assertTrue(set.contains("one"));
+        assertTrue(set.contains("two"));
+        verify(request);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.request.velocity.VelocityScopeMap#size()}.
+     */
+    @Test
+    public void testSize() {
+        expect(request.getKeys()).andReturn(new Object[] {"one", "two"});
+
+        replay(request);
+        assertEquals(2, map.size());
+        verify(request);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.request.velocity.VelocityScopeMap#put(java.lang.String, java.lang.Object)}.
+     */
+    @Test
+    public void testPutStringObject() {
+        expect(request.put("key", "value")).andReturn("oldValue");
+
+        replay(request);
+        assertEquals("oldValue", map.put("key", "value"));
+        verify(request);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.request.velocity.VelocityScopeMap#remove(java.lang.Object)}.
+     */
+    @Test
+    public void testRemoveObject() {
+        expect(request.remove("key")).andReturn("value");
+
+        replay(request);
+        assertEquals("value", map.remove("key"));
+        verify(request);
+    }
+}

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

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

Added: tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractorTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractorTest.java?rev=942431&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractorTest.java (added)
+++ tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractorTest.java Sat May  8 18:05:19 2010
@@ -0,0 +1,87 @@
+/**
+ *
+ */
+package org.apache.tiles.request.velocity.extractor;
+
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.util.Enumeration;
+
+import org.apache.velocity.context.Context;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests {@link VelocityScopeExtractor}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class VelocityScopeExtractorTest {
+
+    private Context request;
+
+    private VelocityScopeExtractor extractor;
+
+    /**
+     * Sets up the test.
+     */
+    @Before
+    public void setUp() {
+        request = createMock(Context.class);
+        extractor = new VelocityScopeExtractor(request);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.request.velocity.extractor.VelocityScopeExtractor#removeValue(java.lang.String)}.
+     */
+    @Test
+    public void testRemoveValue() {
+        expect(request.remove("key")).andReturn("value");
+
+        replay(request);
+        extractor.removeValue("key");
+        verify(request);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.request.velocity.extractor.VelocityScopeExtractor#getKeys()}.
+     */
+    @Test
+    public void testGetKeys() {
+        expect(request.getKeys()).andReturn(new Object[] {"one", "two"});
+
+        replay(request);
+        Enumeration<String> keys = extractor.getKeys();
+        assertTrue(keys.hasMoreElements());
+        assertEquals("one", keys.nextElement());
+        assertTrue(keys.hasMoreElements());
+        assertEquals("two", keys.nextElement());
+        assertFalse(keys.hasMoreElements());
+        verify(request);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.request.velocity.extractor.VelocityScopeExtractor#getValue(java.lang.String)}.
+     */
+    @Test
+    public void testGetValue() {
+        expect(request.get("key")).andReturn("value");
+
+        replay(request);
+        assertEquals("value", extractor.getValue("key"));
+        verify(request);
+    }
+
+    /**
+     * Test method for {@link org.apache.tiles.request.velocity.extractor.VelocityScopeExtractor#setValue(java.lang.String, java.lang.Object)}.
+     */
+    @Test
+    public void testSetValue() {
+        expect(request.put("key", "value")).andReturn(null);
+
+        replay(request);
+        extractor.setValue("key", "value");
+        verify(request);
+    }
+}

Propchange: tiles/sandbox/trunk/tiles-request/tiles-request-velocity/src/test/java/org/apache/tiles/request/velocity/extractor/VelocityScopeExtractorTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

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