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>