Author: apetrelli
Date: Fri Jun  4 19:04:19 2010
New Revision: 951532

URL: http://svn.apache.org/viewvc?rev=951532&view=rev
Log:
TILESSB-11
Complete coverage of tiles-el.
Fixed version of cargo plugin in tiles-test.

Added:
    
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ELContextImplTest.java
   (with props)
    
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/JspExpressionFactoryFactoryTest.java
   (with props)
Modified:
    
tiles/sandbox/trunk/tiles3/tiles-el/src/main/java/org/apache/tiles/el/ScopeELResolver.java
    
tiles/sandbox/trunk/tiles3/tiles-el/src/main/java/org/apache/tiles/el/TilesContextELResolver.java
    
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ELAttributeEvaluatorTest.java
    
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ScopeELResolverTest.java
    
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextBeanELResolverTest.java
    
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextELResolverTest.java
    
tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java
    tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/pom.xml

Modified: 
tiles/sandbox/trunk/tiles3/tiles-el/src/main/java/org/apache/tiles/el/ScopeELResolver.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-el/src/main/java/org/apache/tiles/el/ScopeELResolver.java?rev=951532&r1=951531&r2=951532&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-el/src/main/java/org/apache/tiles/el/ScopeELResolver.java
 (original)
+++ 
tiles/sandbox/trunk/tiles3/tiles-el/src/main/java/org/apache/tiles/el/ScopeELResolver.java
 Fri Jun  4 19:04:19 2010
@@ -22,6 +22,7 @@ package org.apache.tiles.el;
 
 import java.beans.FeatureDescriptor;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -54,6 +55,11 @@ public class ScopeELResolver extends ELR
     @Override
     public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context,
             Object base) {
+        if (base != null) {
+            List<FeatureDescriptor> retValue = Collections.emptyList();
+            return retValue.iterator();
+        }
+
         List<FeatureDescriptor> list = new ArrayList<FeatureDescriptor>();
 
         Request request = (Request) context

Modified: 
tiles/sandbox/trunk/tiles3/tiles-el/src/main/java/org/apache/tiles/el/TilesContextELResolver.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-el/src/main/java/org/apache/tiles/el/TilesContextELResolver.java?rev=951532&r1=951531&r2=951532&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-el/src/main/java/org/apache/tiles/el/TilesContextELResolver.java
 (original)
+++ 
tiles/sandbox/trunk/tiles3/tiles-el/src/main/java/org/apache/tiles/el/TilesContextELResolver.java
 Fri Jun  4 19:04:19 2010
@@ -23,8 +23,8 @@ package org.apache.tiles.el;
 import java.beans.FeatureDescriptor;
 import java.util.Iterator;
 
-import javax.el.BeanELResolver;
 import javax.el.ELContext;
+import javax.el.ELResolver;
 
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.Request;
@@ -37,7 +37,13 @@ import org.apache.tiles.util.CombinedBea
  * @version $Rev$ $Date$
  * @since 2.2.1
  */
-public class TilesContextELResolver extends BeanELResolver {
+public class TilesContextELResolver extends ELResolver {
+
+    private ELResolver beanElResolver;
+
+    public TilesContextELResolver(ELResolver beanElResolver) {
+        this.beanElResolver = beanElResolver;
+    }
 
     /**
      * The beaninfos about {...@link Request} and {...@link 
ApplicationContext}.
@@ -80,11 +86,11 @@ public class TilesContextELResolver exte
         if (requestBeanInfo.getProperties(Request.class).contains(property)) {
             Request request = (Request) context
                     .getContext(Request.class);
-            retValue = super.getType(context, request, property);
+            retValue = beanElResolver.getType(context, request, property);
         } else if 
(requestBeanInfo.getProperties(ApplicationContext.class).contains(property)) {
             ApplicationContext applicationContext = (ApplicationContext) 
context
                     .getContext(ApplicationContext.class);
-            retValue = super.getType(context, applicationContext, property);
+            retValue = beanElResolver.getType(context, applicationContext, 
property);
         }
 
         if (retValue != null) {
@@ -107,12 +113,12 @@ public class TilesContextELResolver exte
         if (requestBeanInfo.getProperties(Request.class).contains(property)) {
             Request request = (Request) context
                     .getContext(Request.class);
-            retValue = super.getValue(context, request, property);
+            retValue = beanElResolver.getValue(context, request, property);
         } else if (requestBeanInfo.getProperties(ApplicationContext.class)
                 .contains(property)) {
             ApplicationContext applicationContext = (ApplicationContext) 
context
                     .getContext(ApplicationContext.class);
-            retValue = super.getValue(context, applicationContext, property);
+            retValue = beanElResolver.getValue(context, applicationContext, 
property);
         }
 
         if (retValue != null) {

Modified: 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ELAttributeEvaluatorTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ELAttributeEvaluatorTest.java?rev=951532&r1=951531&r2=951532&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ELAttributeEvaluatorTest.java
 (original)
+++ 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ELAttributeEvaluatorTest.java
 Fri Jun  4 19:04:19 2010
@@ -87,14 +87,15 @@ public class ELAttributeEvaluatorTest ex
         evaluator.setExpressionFactory(new ExpressionFactoryImpl());
         ELResolver elResolver = new CompositeELResolver() {
             {
+                BeanELResolver beanElResolver = new BeanELResolver(false);
                 add(new ScopeELResolver());
-                add(new TilesContextELResolver());
+                add(new TilesContextELResolver(beanElResolver));
                 add(new TilesContextBeanELResolver());
                 add(new ArrayELResolver(false));
                 add(new ListELResolver(false));
                 add(new MapELResolver(false));
                 add(new ResourceBundleELResolver());
-                add(new BeanELResolver(false));
+                add(beanElResolver);
             }
         };
         evaluator.setResolver(elResolver);

Added: 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ELContextImplTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ELContextImplTest.java?rev=951532&view=auto
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ELContextImplTest.java
 (added)
+++ 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ELContextImplTest.java
 Fri Jun  4 19:04:19 2010
@@ -0,0 +1,98 @@
+/**
+ *
+ */
+package org.apache.tiles.el;
+
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import javax.el.ELResolver;
+import javax.el.FunctionMapper;
+import javax.el.ValueExpression;
+import javax.el.VariableMapper;
+
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests {...@link ELContextImpl}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class ELContextImplTest {
+
+    private ELContextImpl context;
+
+    private ELResolver resolver;
+
+    /**
+     * Sets up the test.
+     */
+    @Before
+    public void setUp() {
+        resolver = createMock(ELResolver.class);
+        context = new ELContextImpl(resolver);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.el.ELContextImpl#getELResolver()}.
+     */
+    @Test
+    public void testGetELResolver() {
+        replay(resolver);
+        assertEquals(resolver, context.getELResolver());
+        verify(resolver);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.el.ELContextImpl#setFunctionMapper(javax.el.FunctionMapper)}.
+     */
+    @Test
+    public void testSetFunctionMapper() {
+        FunctionMapper functionMapper = createMock(FunctionMapper.class);
+
+        replay(resolver, functionMapper);
+        context.setFunctionMapper(functionMapper);
+        assertEquals(functionMapper, context.getFunctionMapper());
+        verify(resolver, functionMapper);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.el.ELContextImpl#setVariableMapper(javax.el.VariableMapper)}.
+     */
+    @Test
+    public void testSetVariableMapper() {
+        VariableMapper variableMapper = createMock(VariableMapper.class);
+
+        replay(resolver, variableMapper);
+        context.setVariableMapper(variableMapper);
+        assertEquals(variableMapper, context.getVariableMapper());
+        verify(resolver, variableMapper);
+    }
+
+    /**
+     * Tests {...@link ELContextImpl#getFunctionMapper()}.
+     */
+    @Test
+    public void testNullFunctionMapper() {
+        replay(resolver);
+        FunctionMapper functionMapper = context.getFunctionMapper();
+        assertNull(functionMapper.resolveFunction("whatever", "it_IT"));
+        verify(resolver);
+    }
+
+    /**
+     * Tests {...@link ELContextImpl#getVariableMapper()}.
+     */
+    @Test
+    public void testVariableMapperImpl() {
+        ValueExpression expression = createMock(ValueExpression.class);
+
+        replay(resolver, expression);
+        VariableMapper variableMapper = context.getVariableMapper();
+        assertNull(variableMapper.resolveVariable("whatever"));
+        variableMapper.setVariable("var", expression);
+        assertEquals(expression, variableMapper.resolveVariable("var"));
+        verify(resolver, expression);
+    }
+}

Propchange: 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ELContextImplTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ELContextImplTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/JspExpressionFactoryFactoryTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/JspExpressionFactoryFactoryTest.java?rev=951532&view=auto
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/JspExpressionFactoryFactoryTest.java
 (added)
+++ 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/JspExpressionFactoryFactoryTest.java
 Fri Jun  4 19:04:19 2010
@@ -0,0 +1,68 @@
+/**
+ *
+ */
+package org.apache.tiles.el;
+
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import javax.el.ExpressionFactory;
+import javax.servlet.ServletContext;
+import javax.servlet.jsp.JspApplicationContext;
+import javax.servlet.jsp.JspFactory;
+
+import org.apache.tiles.request.ApplicationContext;
+import org.junit.Test;
+
+/**
+ * Tests {...@link JspExpressionFactoryFactory}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class JspExpressionFactoryFactoryTest {
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.el.JspExpressionFactoryFactory#getExpressionFactory()}.
+     */
+    @Test
+    public void testGetExpressionFactory() {
+        ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
+        ServletContext servletContext = createMock(ServletContext.class);
+        JspFactory jspFactory = createMock(JspFactory.class);
+        JspApplicationContext jspApplicationContext = 
createMock(JspApplicationContext.class);
+        ExpressionFactory expressionFactory = 
createMock(ExpressionFactory.class);
+
+        expect(applicationContext.getContext()).andReturn(servletContext);
+        
expect(jspFactory.getJspApplicationContext(servletContext)).andReturn(jspApplicationContext);
+        
expect(jspApplicationContext.getExpressionFactory()).andReturn(expressionFactory);
+
+        replay(applicationContext, servletContext, jspFactory,
+                jspApplicationContext, expressionFactory);
+        JspFactory.setDefaultFactory(jspFactory);
+        JspExpressionFactoryFactory factory = new 
JspExpressionFactoryFactory();
+        factory.setApplicationContext(applicationContext);
+        assertEquals(expressionFactory, factory.getExpressionFactory());
+        verify(applicationContext, servletContext, jspFactory,
+                jspApplicationContext, expressionFactory);
+    }
+
+    /**
+     * Test method for {...@link 
org.apache.tiles.el.JspExpressionFactoryFactory#getExpressionFactory()}.
+     */
+    @Test(expected=IllegalArgumentException.class)
+    public void testSetApplicationContextIllegal() {
+        ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
+        Integer servletContext = new Integer(1);
+
+        expect(applicationContext.getContext()).andReturn(servletContext);
+
+        replay(applicationContext);
+        try {
+            JspExpressionFactoryFactory factory = new 
JspExpressionFactoryFactory();
+            factory.setApplicationContext(applicationContext);
+        } finally {
+            verify(applicationContext);
+        }
+    }
+
+}

Propchange: 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/JspExpressionFactoryFactoryTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/JspExpressionFactoryFactoryTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Modified: 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ScopeELResolverTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ScopeELResolverTest.java?rev=951532&r1=951531&r2=951532&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ScopeELResolverTest.java
 (original)
+++ 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/ScopeELResolverTest.java
 Fri Jun  4 19:04:19 2010
@@ -3,7 +3,9 @@ package org.apache.tiles.el;
 import static org.easymock.classextension.EasyMock.*;
 import static org.junit.Assert.*;
 
+import java.beans.FeatureDescriptor;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.Map;
 
 import javax.el.ELContext;
@@ -28,8 +30,43 @@ public class ScopeELResolverTest {
     }
 
     /**
+     * Tests {...@link ScopeELResolver#getCommonPropertyType(ELContext, 
Object)}.
+     */
+    @Test
+    public void testGetCommonPropertyType() {
+        ELContext elContext = createMock(ELContext.class);
+
+        replay(elContext);
+        assertNull(resolver.getCommonPropertyType(elContext, new Integer(1)));
+        assertEquals(Map.class, resolver.getCommonPropertyType(elContext, 
null));
+        verify(elContext);
+    }
+
+    /**
+     * Tests {...@link ScopeELResolver#getFeatureDescriptors(ELContext, 
Object)}.
+     */
+    @Test
+    public void testGetFeatureDescriptors() {
+        ELContext elContext = createMock(ELContext.class);
+        Request request = createMock(Request.class);
+
+        expect(elContext.getContext(Request.class)).andReturn(request);
+        expect(request.getAvailableScopes()).andReturn(new String[] {"one", 
"two"});
+
+        replay(elContext, request);
+        assertFalse(resolver.getFeatureDescriptors(elContext, new 
Integer(1)).hasNext());
+        Iterator<FeatureDescriptor> descriptors = 
resolver.getFeatureDescriptors(elContext, null);
+        FeatureDescriptor descriptor = descriptors.next();
+        assertEquals("oneScope", descriptor.getName());
+        descriptor = descriptors.next();
+        assertEquals("twoScope", descriptor.getName());
+        assertFalse(descriptors.hasNext());
+        verify(elContext, request);
+    }
+
+    /**
      * Test method for
-     * {...@link TilesContextELResolver#getType(javax.el.ELContext, 
java.lang.Object, java.lang.Object)}.
+     * {...@link ScopeELResolver#getType(javax.el.ELContext, java.lang.Object, 
java.lang.Object)}.
      */
     @Test
     public void testGetType() {
@@ -39,6 +76,7 @@ public class ScopeELResolverTest {
         replay(request, applicationContext);
         context.putContext(Request.class, request);
         context.putContext(ApplicationContext.class, applicationContext);
+        assertNull(resolver.getType(context, new Integer(1), "whatever"));
         assertEquals("The requestScope object is not a map.", Map.class,
                 resolver.getType(context, null, "requestScope"));
         assertEquals("The sessionScope object is not a map.", Map.class,
@@ -49,7 +87,7 @@ public class ScopeELResolverTest {
 
     /**
      * Test method for
-     * {...@link TilesContextELResolver#getValue(javax.el.ELContext, 
java.lang.Object, java.lang.Object)}.
+     * {...@link ScopeELResolver#getValue(javax.el.ELContext, 
java.lang.Object, java.lang.Object)}.
      */
     @Test
     public void testGetValue() {
@@ -63,11 +101,12 @@ public class ScopeELResolverTest {
         expect(request.getContext("request")).andReturn(requestScope);
         expect(request.getContext("session")).andReturn(sessionScope);
         ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
-               
expect(request.getContext("application")).andReturn(applicationScope);
+        expect(request.getContext("application")).andReturn(applicationScope);
         ELContext context = new ELContextImpl(resolver);
         replay(request, applicationContext);
         context.putContext(Request.class, request);
         context.putContext(ApplicationContext.class, applicationContext);
+        assertNull(resolver.getValue(context, new Integer(1), "whatever"));
         assertEquals("The requestScope map does not correspond", requestScope,
                 resolver.getValue(context, null, "requestScope"));
         assertEquals("The sessionScope map does not correspond", sessionScope,
@@ -77,4 +116,32 @@ public class ScopeELResolverTest {
                         "applicationScope"));
     }
 
+    /**
+     * Tests {...@link ScopeELResolver#isReadOnly(ELContext, Object, Object)}.
+     */
+    @Test
+    public void testIsReadOnly() {
+        ELContext elContext = createMock(ELContext.class);
+
+        replay(elContext);
+        assertTrue(resolver.isReadOnly(elContext, null, "whatever"));
+        verify(elContext);
+    }
+
+    /**
+     * Tests {...@link ScopeELResolver#isReadOnly(ELContext, Object, Object)}.
+     */
+    @Test(expected=NullPointerException.class)
+    public void testIsReadOnlyNPE() {
+        resolver.isReadOnly(null, null, "whatever");
+    }
+
+    /**
+     * Tests {...@link ScopeELResolver#setValue(ELContext, Object, Object, 
Object)}.
+     */
+    @Test
+    public void testSetValue() {
+        // Just to complete code coverage!
+        resolver.setValue(null, null, null, null);
+    }
 }

Modified: 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextBeanELResolverTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextBeanELResolverTest.java?rev=951532&r1=951531&r2=951532&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextBeanELResolverTest.java
 (original)
+++ 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextBeanELResolverTest.java
 Fri Jun  4 19:04:19 2010
@@ -20,6 +20,9 @@
  */
 package org.apache.tiles.el;
 
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
 import java.beans.FeatureDescriptor;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -29,30 +32,28 @@ import java.util.Map;
 
 import javax.el.ELContext;
 
-import org.apache.tiles.el.ELContextImpl;
-import org.apache.tiles.el.TilesContextBeanELResolver;
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.Request;
-import org.easymock.EasyMock;
-
-import junit.framework.TestCase;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Tests {...@link TilesContextBeanELResolver}.
  *
  * @version $Rev$ $Date$
  */
-public class TilesContextBeanELResolverTest extends TestCase {
+public class TilesContextBeanELResolverTest {
 
     /**
      * The resolver to test.
      */
     private TilesContextBeanELResolver resolver;
 
-    /** {...@inheritdoc} */
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+    /**
+     * Sets up the test.
+     */
+    @Before
+    public void setUp() {
         resolver = new TilesContextBeanELResolver();
     }
 
@@ -60,6 +61,7 @@ public class TilesContextBeanELResolverT
      * Test method for
      * {...@link 
TilesContextBeanELResolver#getCommonPropertyType(javax.el.ELContext, 
java.lang.Object)}.
      */
+    @Test
     public void testGetCommonPropertyType() {
         Class<?> clazz = resolver.getCommonPropertyType(null, null);
         assertEquals("The class is not correct", String.class, clazz);
@@ -71,6 +73,7 @@ public class TilesContextBeanELResolverT
      * Test method for
      * {...@link 
TilesContextBeanELResolver#getFeatureDescriptors(javax.el.ELContext, 
java.lang.Object)}.
      */
+    @Test
     public void testGetFeatureDescriptors() {
         Map<String, Object> requestScope = new HashMap<String, Object>();
         Map<String, Object> sessionScope = new HashMap<String, Object>();
@@ -78,20 +81,18 @@ public class TilesContextBeanELResolverT
         requestScope.put("object1", "value");
         sessionScope.put("object2", new Integer(1));
         applicationScope.put("object3", new Float(2.0));
-        Request request = EasyMock
-                .createMock(Request.class);
-        EasyMock.expect(request.getContext("request")).andReturn(requestScope)
-                .anyTimes();
-        EasyMock.expect(request.getContext("session")).andReturn(sessionScope)
-                .anyTimes();
-        ApplicationContext applicationContext = EasyMock
-                .createMock(ApplicationContext.class);
-        EasyMock.expect(request.getContext("application")).andReturn(
+        Request request = createMock(Request.class);
+        expect(request.getContext("request")).andReturn(requestScope)
+                .anyTimes();
+        expect(request.getContext("session")).andReturn(sessionScope)
+                .anyTimes();
+        ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
+        expect(request.getContext("application")).andReturn(
                 applicationScope).anyTimes();
-               EasyMock.expect(request.getAvailableScopes()).andReturn(
-                               new String[] { "request", "session", 
"application" })
-                               .anyTimes();
-        EasyMock.replay(request, applicationContext);
+        expect(request.getAvailableScopes()).andReturn(
+                new String[] { "request", "session", "application" })
+                .anyTimes();
+        replay(request, applicationContext);
 
         ELContext context = new ELContextImpl(resolver);
         context.putContext(Request.class, request);
@@ -133,6 +134,7 @@ public class TilesContextBeanELResolverT
      * Test method for
      * {...@link TilesContextBeanELResolver#getType(javax.el.ELContext, 
java.lang.Object, java.lang.Object)}.
      */
+    @Test
     public void testGetType() {
         Map<String, Object> requestScope = new HashMap<String, Object>();
         Map<String, Object> sessionScope = new HashMap<String, Object>();
@@ -140,20 +142,18 @@ public class TilesContextBeanELResolverT
         requestScope.put("object1", "value");
         sessionScope.put("object2", new Integer(1));
         applicationScope.put("object3", new Float(2.0));
-        Request request = EasyMock
-                .createMock(Request.class);
-        EasyMock.expect(request.getContext("request")).andReturn(requestScope)
-                .anyTimes();
-        EasyMock.expect(request.getContext("session")).andReturn(sessionScope)
-                .anyTimes();
-        ApplicationContext applicationContext = EasyMock
-                .createMock(ApplicationContext.class);
-        EasyMock.expect(request.getContext("application")).andReturn(
+        Request request = createMock(Request.class);
+        expect(request.getContext("request")).andReturn(requestScope)
+                .anyTimes();
+        expect(request.getContext("session")).andReturn(sessionScope)
+                .anyTimes();
+        ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
+        expect(request.getContext("application")).andReturn(
                 applicationScope).anyTimes();
-               EasyMock.expect(request.getAvailableScopes()).andReturn(
-                               new String[] { "request", "session", 
"application" })
-                               .anyTimes();
-        EasyMock.replay(request, applicationContext);
+        expect(request.getAvailableScopes()).andReturn(
+                new String[] { "request", "session", "application" })
+                .anyTimes();
+        replay(request, applicationContext);
 
         ELContext context = new ELContextImpl(resolver);
         context.putContext(Request.class, request);
@@ -165,12 +165,16 @@ public class TilesContextBeanELResolverT
                 context, null, "object2"));
         assertEquals("The type is not correct", Float.class, resolver.getType(
                 context, null, "object3"));
+        assertNull(resolver.getType(context, new Integer(1), "whatever"));
+        assertNull(resolver.getType(context, null, "object4"));
+        verify(request, applicationContext);
     }
 
     /**
      * Test method for
      * {...@link TilesContextBeanELResolver#getValue(javax.el.ELContext, 
java.lang.Object, java.lang.Object)}.
      */
+    @Test
     public void testGetValue() {
         Map<String, Object> requestScope = new HashMap<String, Object>();
         Map<String, Object> sessionScope = new HashMap<String, Object>();
@@ -178,20 +182,18 @@ public class TilesContextBeanELResolverT
         requestScope.put("object1", "value");
         sessionScope.put("object2", new Integer(1));
         applicationScope.put("object3", new Float(2.0));
-        Request request = EasyMock
-                .createMock(Request.class);
-        EasyMock.expect(request.getContext("request")).andReturn(requestScope)
-                .anyTimes();
-        EasyMock.expect(request.getContext("session")).andReturn(sessionScope)
-                .anyTimes();
-        ApplicationContext applicationContext = EasyMock
-                .createMock(ApplicationContext.class);
-        EasyMock.expect(request.getContext("application")).andReturn(
+        Request request = createMock(Request.class);
+        expect(request.getContext("request")).andReturn(requestScope)
+                .anyTimes();
+        expect(request.getContext("session")).andReturn(sessionScope)
+                .anyTimes();
+        ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
+        expect(request.getContext("application")).andReturn(
                 applicationScope).anyTimes();
-               EasyMock.expect(request.getAvailableScopes()).andReturn(
-                               new String[] { "request", "session", 
"application" })
-                               .anyTimes();
-        EasyMock.replay(request, applicationContext);
+        expect(request.getAvailableScopes()).andReturn(
+                new String[] { "request", "session", "application" })
+                .anyTimes();
+        replay(request, applicationContext);
 
         ELContext context = new ELContextImpl(resolver);
         context.putContext(Request.class, request);
@@ -203,12 +205,14 @@ public class TilesContextBeanELResolverT
                 .getValue(context, null, "object2"));
         assertEquals("The value is not correct", new Float(2.0), resolver
                 .getValue(context, null, "object3"));
+        assertNull(resolver.getValue(context, new Integer(1), "whatever"));
     }
 
     /**
      * Test method for
      * {...@link TilesContextBeanELResolver#isReadOnly(javax.el.ELContext, 
java.lang.Object, java.lang.Object)}.
      */
+    @Test
     public void testIsReadOnlyELContextObjectObject() {
         ELContext context = new ELContextImpl(resolver);
         assertTrue("The value is not read only", resolver.isReadOnly(context,
@@ -217,8 +221,27 @@ public class TilesContextBeanELResolverT
 
     /**
      * Test method for
+     * {...@link TilesContextBeanELResolver#isReadOnly(javax.el.ELContext, 
java.lang.Object, java.lang.Object)}.
+     */
+    @Test(expected=NullPointerException.class)
+    public void testIsReadOnlyNPE() {
+        resolver.isReadOnly(null, null, null);
+    }
+
+    /**
+     * Tests {...@link TilesContextBeanELResolver#setValue(ELContext, Object, 
Object, Object)}.
+     */
+    @Test
+    public void testSetValue() {
+        // Just to complete code coverage!
+        resolver.setValue(null, null, null, null);
+    }
+
+    /**
+     * Test method for
      * {...@link 
TilesContextBeanELResolver#findObjectByProperty(javax.el.ELContext, 
java.lang.Object)}.
      */
+    @Test
     public void testFindObjectByProperty() {
         Map<String, Object> requestScope = new HashMap<String, Object>();
         Map<String, Object> sessionScope = new HashMap<String, Object>();
@@ -226,20 +249,18 @@ public class TilesContextBeanELResolverT
         requestScope.put("object1", "value");
         sessionScope.put("object2", new Integer(1));
         applicationScope.put("object3", new Float(2.0));
-        Request request = EasyMock
-                .createMock(Request.class);
-        EasyMock.expect(request.getContext("request")).andReturn(requestScope)
-                .anyTimes();
-        EasyMock.expect(request.getContext("session")).andReturn(sessionScope)
-                .anyTimes();
-        ApplicationContext applicationContext = EasyMock
-                .createMock(ApplicationContext.class);
-        EasyMock.expect(request.getContext("application")).andReturn(
+        Request request = createMock(Request.class);
+        expect(request.getContext("request")).andReturn(requestScope)
+                .anyTimes();
+        expect(request.getContext("session")).andReturn(sessionScope)
+                .anyTimes();
+        ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
+        expect(request.getContext("application")).andReturn(
                 applicationScope).anyTimes();
-               EasyMock.expect(request.getAvailableScopes()).andReturn(
-                               new String[] { "request", "session", 
"application" })
-                               .anyTimes();
-        EasyMock.replay(request, applicationContext);
+        expect(request.getAvailableScopes()).andReturn(
+                new String[] { "request", "session", "application" })
+                .anyTimes();
+        replay(request, applicationContext);
 
         ELContext context = new ELContextImpl(resolver);
         context.putContext(Request.class, request);
@@ -257,6 +278,7 @@ public class TilesContextBeanELResolverT
      * Test method for
      * {...@link 
org.apache.tiles.el.TilesContextBeanELResolver#getObject(java.util.Map, 
java.lang.String)}.
      */
+    @Test
     public void testGetObject() {
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("object1", "value");
@@ -266,4 +288,11 @@ public class TilesContextBeanELResolverT
         assertNull("The value is not null", resolver.getObject(null, 
"object1"));
     }
 
+    /**
+     * Tests {...@link TilesContextBeanELResolver#collectBeanInfo(Map, List)}.
+     */
+    @Test
+    public void testCollectBeanInfoEmpty() {
+        resolver.collectBeanInfo(null, null);
+    }
 }

Modified: 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextELResolverTest.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextELResolverTest.java?rev=951532&r1=951531&r2=951532&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextELResolverTest.java
 (original)
+++ 
tiles/sandbox/trunk/tiles3/tiles-el/src/test/java/org/apache/tiles/el/TilesContextELResolverTest.java
 Fri Jun  4 19:04:19 2010
@@ -20,6 +20,9 @@
  */
 package org.apache.tiles.el;
 
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
 import java.beans.FeatureDescriptor;
 import java.beans.PropertyDescriptor;
 import java.util.Iterator;
@@ -27,48 +30,59 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 
 import javax.el.ELContext;
-
-import junit.framework.TestCase;
+import javax.el.ELResolver;
 
 import org.apache.tiles.reflect.ClassUtil;
 import org.apache.tiles.request.ApplicationContext;
 import org.apache.tiles.request.Request;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
  * Tests {...@link TilesContextELResolver}.
  *
  * @version $Rev$ $Date$
  */
-public class TilesContextELResolverTest extends TestCase {
+public class TilesContextELResolverTest {
+
+    private ELResolver beanElResolver;
 
     /**
      * The resolver to test.
      */
     private TilesContextELResolver resolver;
 
-    /** {...@inheritdoc} */
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        resolver = new TilesContextELResolver();
+    /**
+     * Sets up the test.
+     */
+    @Before
+    public void setUp() {
+        beanElResolver = createMock(ELResolver.class);
+        resolver = new TilesContextELResolver(beanElResolver);
     }
 
     /**
      * Test method for
      * {...@link 
TilesContextELResolver#getCommonPropertyType(javax.el.ELContext, 
java.lang.Object)}.
      */
+    @Test
     public void testGetCommonPropertyTypeELContextObject() {
+        replay(beanElResolver);
         Class<?> clazz = resolver.getCommonPropertyType(null, null);
         assertEquals("The class is not correct", String.class, clazz);
         clazz = resolver.getCommonPropertyType(null, "Base object");
         assertNull("The class for non root objects must be null", clazz);
+        verify(beanElResolver);
     }
 
     /**
      * Test method for
      * {...@link 
TilesContextELResolver#getFeatureDescriptors(javax.el.ELContext, 
java.lang.Object)}.
      */
+    @Test
     public void testGetFeatureDescriptorsELContextObject() {
+        replay(beanElResolver);
+        assertNull(resolver.getFeatureDescriptors(null, new Integer(1)));
         Map<String, PropertyDescriptor> expected = new LinkedHashMap<String, 
PropertyDescriptor>();
         ClassUtil.collectBeanInfo(Request.class, expected);
         ClassUtil.collectBeanInfo(ApplicationContext.class, expected);
@@ -81,15 +95,91 @@ public class TilesContextELResolverTest 
         }
         assertTrue("The feature descriptors are not of the same size",
                 !featureIt.hasNext() && !expectedIt.hasNext());
+        verify(beanElResolver);
+    }
+
+    /**
+     * Tests {...@link TilesContextBeanELResolver#getType(ELContext, Object, 
Object)}.
+     */
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testGetType() {
+        ELContext elContext = createMock(ELContext.class);
+        Request request = createMock(Request.class);
+        ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
+
+        expect(elContext.getContext(Request.class)).andReturn(request);
+        
expect(elContext.getContext(ApplicationContext.class)).andReturn(applicationContext);
+        expect(beanElResolver.getType(elContext, request, 
"responseCommitted")).andReturn((Class) Boolean.class);
+        expect(beanElResolver.getType(elContext, applicationContext, 
"initParams")).andReturn((Class) Map.class);
+        elContext.setPropertyResolved(true);
+        expectLastCall().times(2);
+
+        replay(beanElResolver, elContext, request, applicationContext);
+        assertNull(resolver.getType(elContext, new Integer(1), "whatever"));
+        assertEquals(Boolean.class, resolver.getType(elContext, null, 
"responseCommitted"));
+        assertEquals(Map.class, resolver.getType(elContext, null, 
"initParams"));
+        verify(beanElResolver, elContext, request, applicationContext);
+    }
+
+    /**
+     * Tests {...@link TilesContextBeanELResolver#getValue(ELContext, Object, 
Object)}.
+     */
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testGetValue() {
+        ELContext elContext = createMock(ELContext.class);
+        Request request = createMock(Request.class);
+        ApplicationContext applicationContext = 
createMock(ApplicationContext.class);
+        Map map = createMock(Map.class);
+
+        expect(elContext.getContext(Request.class)).andReturn(request);
+        
expect(elContext.getContext(ApplicationContext.class)).andReturn(applicationContext);
+        expect(beanElResolver.getValue(elContext, request, 
"responseCommitted")).andReturn(true);
+        expect(beanElResolver.getValue(elContext, applicationContext, 
"initParams")).andReturn(map);
+        elContext.setPropertyResolved(true);
+        expectLastCall().times(2);
+
+        replay(beanElResolver, elContext, request, applicationContext, map);
+        assertNull(resolver.getValue(elContext, new Integer(1), "whatever"));
+        assertEquals(true, resolver.getValue(elContext, null, 
"responseCommitted"));
+        assertEquals(map, resolver.getValue(elContext, null, "initParams"));
+        verify(beanElResolver, elContext, request, applicationContext, map);
     }
 
     /**
      * Test method for
      * {...@link TilesContextELResolver#isReadOnly(javax.el.ELContext, 
java.lang.Object, java.lang.Object)}.
      */
+    @Test
     public void testIsReadOnly() {
+        replay(beanElResolver);
         ELContext context = new ELContextImpl(resolver);
         assertTrue("The value is not read only", resolver.isReadOnly(context,
                 null, null));
+        verify(beanElResolver);
+    }
+
+    /**
+     * Test method for
+     * {...@link TilesContextELResolver#isReadOnly(javax.el.ELContext, 
java.lang.Object, java.lang.Object)}.
+     */
+    @Test(expected=NullPointerException.class)
+    public void testIsReadOnlyNPE() {
+        replay(beanElResolver);
+        try {
+            resolver.isReadOnly(null, null, null);
+        } finally {
+            verify(beanElResolver);
+        }
+    }
+
+    /**
+     * Tests {...@link TilesContextELResolver#setValue(ELContext, Object, 
Object, Object)}.
+     */
+    @Test
+    public void testSetValue() {
+        // Just to complete code coverage!
+        resolver.setValue(null, null, null, null);
     }
 }

Modified: 
tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java?rev=951532&r1=951531&r2=951532&view=diff
==============================================================================
--- 
tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java
 (original)
+++ 
tiles/sandbox/trunk/tiles3/tiles-extras/src/main/java/org/apache/tiles/extras/complete/CompleteAutoloadTilesContainerFactory.java
 Fri Jun  4 19:04:19 2010
@@ -241,14 +241,15 @@ public class CompleteAutoloadTilesContai
         evaluator.setExpressionFactory(efFactory.getExpressionFactory());
         ELResolver elResolver = new CompositeELResolver() {
             {
+                BeanELResolver beanElResolver = new BeanELResolver(false);
                 add(new ScopeELResolver());
-                add(new TilesContextELResolver());
+                add(new TilesContextELResolver(beanElResolver));
                 add(new TilesContextBeanELResolver());
                 add(new ArrayELResolver(false));
                 add(new ListELResolver(false));
                 add(new MapELResolver(false));
                 add(new ResourceBundleELResolver());
-                add(new BeanELResolver(false));
+                add(beanElResolver);
             }
         };
         evaluator.setResolver(elResolver);

Modified: tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/pom.xml
URL: 
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/pom.xml?rev=951532&r1=951531&r2=951532&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/pom.xml (original)
+++ tiles/sandbox/trunk/tiles3/tiles-test-pom/tiles-test/pom.xml Fri Jun  4 
19:04:19 2010
@@ -153,6 +153,7 @@
            <plugin>
                <groupId>org.codehaus.cargo</groupId>
                <artifactId>cargo-maven2-plugin</artifactId>
+               <version>1.0.1-beta-3</version>
                <configuration>
                    <container>
                        <containerId>tomcat6x</containerId>


Reply via email to