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/06/06 13:53:23 UTC
svn commit: r951857 - in
/tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl:
AnyScopePropertyAccessorTest.java OGNLAttributeEvaluatorTest.java
ScopePropertyAccessorTest.java
Author: apetrelli
Date: Sun Jun 6 11:53:23 2010
New Revision: 951857
URL: http://svn.apache.org/viewvc?rev=951857&view=rev
Log:
TILESSB-11
Complete test coverage for tiles-ognl.
Added:
tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/AnyScopePropertyAccessorTest.java (with props)
tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/ScopePropertyAccessorTest.java (with props)
Modified:
tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/OGNLAttributeEvaluatorTest.java
Added: tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/AnyScopePropertyAccessorTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/AnyScopePropertyAccessorTest.java?rev=951857&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/AnyScopePropertyAccessorTest.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/AnyScopePropertyAccessorTest.java Sun Jun 6 11:53:23 2010
@@ -0,0 +1,141 @@
+/**
+ *
+ */
+package org.apache.tiles.ognl;
+
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.util.Map;
+
+import org.apache.tiles.request.Request;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests {@link AnyScopePropertyAccessor}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class AnyScopePropertyAccessorTest {
+
+ private AnyScopePropertyAccessor accessor;
+
+ /**
+ * Sets up the test.
+ */
+ @Before
+ public void setUp() {
+ accessor = new AnyScopePropertyAccessor();
+ }
+
+ /**
+ * Test method for {@link org.apache.tiles.ognl.AnyScopePropertyAccessor#getProperty(java.util.Map, java.lang.Object, java.lang.Object)}.
+ */
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testGetProperty() {
+ Request request = createMock(Request.class);
+ Map<String, Object> oneScope = createMock(Map.class);
+ Map<String, Object> twoScope = createMock(Map.class);
+
+ expect(request.getAvailableScopes()).andReturn(new String[] {"one", "two"}).anyTimes();
+ expect(request.getContext("one")).andReturn(oneScope).anyTimes();
+ expect(request.getContext("two")).andReturn(twoScope).anyTimes();
+ expect(oneScope.containsKey("name1")).andReturn(true);
+ expect(oneScope.get("name1")).andReturn("value1");
+ expect(oneScope.containsKey("name2")).andReturn(false);
+ expect(oneScope.containsKey("name3")).andReturn(false);
+ expect(twoScope.containsKey("name2")).andReturn(true);
+ expect(twoScope.get("name2")).andReturn("value2");
+ expect(twoScope.containsKey("name3")).andReturn(false);
+
+ replay(request, oneScope, twoScope);
+ assertEquals("value1", accessor.getProperty(null, request, "name1"));
+ assertEquals("value2", accessor.getProperty(null, request, "name2"));
+ assertNull(accessor.getProperty(null, request, "name3"));
+ verify(request, oneScope, twoScope);
+ }
+
+ /**
+ * Test method for {@link org.apache.tiles.ognl.AnyScopePropertyAccessor#getSourceAccessor(ognl.OgnlContext, java.lang.Object, java.lang.Object)}.
+ */
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testGetSourceAccessor() {
+ Request request = createMock(Request.class);
+ Map<String, Object> oneScope = createMock(Map.class);
+ Map<String, Object> twoScope = createMock(Map.class);
+
+ expect(request.getAvailableScopes()).andReturn(new String[] {"one", "two"}).anyTimes();
+ expect(request.getContext("one")).andReturn(oneScope).anyTimes();
+ expect(request.getContext("two")).andReturn(twoScope).anyTimes();
+ expect(oneScope.containsKey("name1")).andReturn(true);
+ expect(oneScope.containsKey("name2")).andReturn(false);
+ expect(oneScope.containsKey("name3")).andReturn(false);
+ expect(twoScope.containsKey("name2")).andReturn(true);
+ expect(twoScope.containsKey("name3")).andReturn(false);
+
+ replay(request, oneScope, twoScope);
+ assertEquals(".getContext(\"one\").get(index)", accessor.getSourceAccessor(null, request, "name1"));
+ assertEquals(".getContext(\"two\").get(index)", accessor.getSourceAccessor(null, request, "name2"));
+ assertNull(accessor.getSourceAccessor(null, request, "name3"));
+ verify(request, oneScope, twoScope);
+ }
+
+ /**
+ * Test method for {@link org.apache.tiles.ognl.AnyScopePropertyAccessor#getSourceSetter(ognl.OgnlContext, java.lang.Object, java.lang.Object)}.
+ */
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testGetSourceSetter() {
+ Request request = createMock(Request.class);
+ Map<String, Object> oneScope = createMock(Map.class);
+ Map<String, Object> twoScope = createMock(Map.class);
+
+ expect(request.getAvailableScopes()).andReturn(new String[] {"one", "two"}).anyTimes();
+ expect(request.getContext("one")).andReturn(oneScope).anyTimes();
+ expect(request.getContext("two")).andReturn(twoScope).anyTimes();
+ expect(oneScope.containsKey("name1")).andReturn(true);
+ expect(oneScope.containsKey("name2")).andReturn(false);
+ expect(oneScope.containsKey("name3")).andReturn(false);
+ expect(twoScope.containsKey("name2")).andReturn(true);
+ expect(twoScope.containsKey("name3")).andReturn(false);
+
+ replay(request, oneScope, twoScope);
+ assertEquals(".getContext(\"one\").put(index, target)", accessor.getSourceSetter(null, request, "name1"));
+ assertEquals(".getContext(\"two\").put(index, target)", accessor.getSourceSetter(null, request, "name2"));
+ assertEquals(".getContext(\"one\").put(index, target)", accessor.getSourceSetter(null, request, "name3"));
+ verify(request, oneScope, twoScope);
+ }
+
+ /**
+ * Test method for {@link org.apache.tiles.ognl.AnyScopePropertyAccessor#setProperty(java.util.Map, java.lang.Object, java.lang.Object, java.lang.Object)}.
+ */
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testSetProperty() {
+ Request request = createMock(Request.class);
+ Map<String, Object> oneScope = createMock(Map.class);
+ Map<String, Object> twoScope = createMock(Map.class);
+
+ expect(request.getAvailableScopes()).andReturn(new String[] {"one", "two"}).anyTimes();
+ expect(request.getContext("one")).andReturn(oneScope).anyTimes();
+ expect(request.getContext("two")).andReturn(twoScope).anyTimes();
+ expect(oneScope.containsKey("name1")).andReturn(true);
+ expect(oneScope.put("name1", "otherValue1")).andReturn("value1");
+ expect(oneScope.containsKey("name2")).andReturn(false);
+ expect(oneScope.containsKey("name3")).andReturn(false);
+ expect(twoScope.containsKey("name2")).andReturn(true);
+ expect(twoScope.put("name2", "otherValue2")).andReturn("value2");
+ expect(twoScope.containsKey("name3")).andReturn(false);
+ expect(oneScope.put("name3", "otherValue3")).andReturn(null);
+
+ replay(request, oneScope, twoScope);
+ accessor.setProperty(null, request, "name1", "otherValue1");
+ accessor.setProperty(null, request, "name2", "otherValue2");
+ accessor.setProperty(null, request, "name3", "otherValue3");
+ verify(request, oneScope, twoScope);
+ }
+
+}
Propchange: tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/AnyScopePropertyAccessorTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/AnyScopePropertyAccessorTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/OGNLAttributeEvaluatorTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/OGNLAttributeEvaluatorTest.java?rev=951857&r1=951856&r2=951857&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/OGNLAttributeEvaluatorTest.java (original)
+++ tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/OGNLAttributeEvaluatorTest.java Sun Jun 6 11:53:23 2010
@@ -20,25 +20,32 @@
*/
package org.apache.tiles.ognl;
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
import java.util.HashMap;
import java.util.Map;
-import junit.framework.TestCase;
+import ognl.OgnlException;
import ognl.OgnlRuntime;
import ognl.PropertyAccessor;
import org.apache.tiles.Attribute;
import org.apache.tiles.Expression;
+import org.apache.tiles.evaluator.EvaluationException;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
-import org.easymock.EasyMock;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
/**
* Tests {@link OGNLAttributeEvaluator}.
*
* @version $Rev$ $Date$$
*/
-public class OGNLAttributeEvaluatorTest extends TestCase {
+public class OGNLAttributeEvaluatorTest {
/**
* The evaluator to test.
@@ -50,10 +57,15 @@ public class OGNLAttributeEvaluatorTest
*/
private Request request;
- /** {@inheritDoc} */
- @Override
- protected void setUp() throws Exception {
- super.setUp();
+ private ApplicationContext applicationContext;
+
+ /**
+ * Sets up the test.
+ *
+ * @throws OgnlException If something goes wrong.
+ */
+ @Before
+ public void setUp() throws OgnlException {
PropertyAccessor objectPropertyAccessor = OgnlRuntime.getPropertyAccessor(Object.class);
PropertyAccessor applicationContextPropertyAccessor =
new NestedObjectDelegatePropertyAccessor<Request>(
@@ -74,28 +86,36 @@ public class OGNLAttributeEvaluatorTest
sessionScope.put("object2", new Integer(1));
applicationScope.put("object3", new Float(2.0));
requestScope.put("paulaBean", new PaulaBean());
- request = EasyMock.createMock(Request.class);
- EasyMock.expect(request.getContext("request")).andReturn(requestScope)
+ request = createMock(Request.class);
+ expect(request.getContext("request")).andReturn(requestScope)
+ .anyTimes();
+ expect(request.getContext("session")).andReturn(sessionScope)
.anyTimes();
- EasyMock.expect(request.getContext("session")).andReturn(sessionScope)
+ expect(request.getContext("application")).andReturn(applicationScope)
.anyTimes();
- EasyMock.expect(request.getContext("application")).andReturn(applicationScope)
- .anyTimes();
- EasyMock.expect(request.getAvailableScopes()).andReturn(
- new String[] { "request", "session", "application" }).anyTimes();
- ApplicationContext applicationContext = EasyMock
- .createMock(ApplicationContext.class);
- EasyMock.expect(request.getApplicationContext()).andReturn(
+ expect(request.getAvailableScopes()).andReturn(
+ new String[] { "request", "session", "application" }).anyTimes();
+ applicationContext = createMock(ApplicationContext.class);
+ expect(request.getApplicationContext()).andReturn(
applicationContext).anyTimes();
- EasyMock.expect(applicationContext.getApplicationScope()).andReturn(
+ expect(applicationContext.getApplicationScope()).andReturn(
applicationScope).anyTimes();
- EasyMock.replay(request, applicationContext);
+ replay(request, applicationContext);
+ }
+
+ /**
+ * Tears down the test.
+ */
+ @After
+ public void tearDown() {
+ verify(request, applicationContext);
}
/**
* Tests
* {@link OGNLAttributeEvaluator#evaluate(Attribute, Request)}.
*/
+ @Test
public void testEvaluate() {
Attribute attribute = new Attribute();
attribute.setExpressionObject(new Expression("requestScope.object1"));
@@ -133,6 +153,7 @@ public class OGNLAttributeEvaluatorTest
/**
* Tests {@link OGNLAttributeEvaluator#evaluate(String, Request)}.
*/
+ @Test
public void testEvaluateString() {
String expression = "requestScope.object1";
assertEquals("The value is not correct", "value", evaluator.evaluate(
@@ -161,6 +182,22 @@ public class OGNLAttributeEvaluatorTest
}
/**
+ * Tests {@link OGNLAttributeEvaluator#evaluate(String, Request)}.
+ */
+ @Test(expected=IllegalArgumentException.class)
+ public void testEvaluateNull() {
+ evaluator.evaluate((String) null, request);
+ }
+
+ /**
+ * Tests {@link OGNLAttributeEvaluator#evaluate(String, Request)}.
+ */
+ @Test(expected=EvaluationException.class)
+ public void testEvaluateOgnlException() {
+ evaluator.evaluate("wrong|||!!!!yes###", request);
+ }
+
+ /**
* This is The Brillant Paula Bean (sic) just like it was posted to:
* http://thedailywtf.com/Articles/The_Brillant_Paula_Bean.aspx I hope that
* there is no copyright on it.
Added: tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/ScopePropertyAccessorTest.java
URL: http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/ScopePropertyAccessorTest.java?rev=951857&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/ScopePropertyAccessorTest.java (added)
+++ tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/ScopePropertyAccessorTest.java Sun Jun 6 11:53:23 2010
@@ -0,0 +1,81 @@
+/**
+ *
+ */
+package org.apache.tiles.ognl;
+
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.util.Map;
+
+import org.apache.tiles.request.Request;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests {@link ScopePropertyAccessor}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class ScopePropertyAccessorTest {
+
+ private ScopePropertyAccessor accessor;
+
+ /**
+ * Sets up the test.
+ */
+ @Before
+ public void setUp() {
+ accessor = new ScopePropertyAccessor();
+ }
+
+ /**
+ * Test method for {@link org.apache.tiles.ognl.ScopePropertyAccessor#getProperty(java.util.Map, java.lang.Object, java.lang.Object)}.
+ */
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testGetProperty() {
+ Request request = createMock(Request.class);
+ Map<String, Object> oneScope = createMock(Map.class);
+
+ expect(request.getContext("one")).andReturn(oneScope);
+
+ replay(request);
+ assertEquals(oneScope, accessor.getProperty(null, request, "oneScope"));
+ assertNull(accessor.getProperty(null, request, "whatever"));
+ verify(request);
+ }
+
+ /**
+ * Test method for {@link org.apache.tiles.ognl.ScopePropertyAccessor#getSourceAccessor(ognl.OgnlContext, java.lang.Object, java.lang.Object)}.
+ */
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testGetSourceAccessor() {
+ Request request = createMock(Request.class);
+ @SuppressWarnings("unused")
+ Map<String, Object> oneScope = createMock(Map.class);
+
+ replay(request);
+ assertEquals(".getContext(\"one\")", accessor.getSourceAccessor(null, request, "oneScope"));
+ assertNull(accessor.getSourceAccessor(null, request, "whatever"));
+ verify(request);
+ }
+
+ /**
+ * Test method for {@link org.apache.tiles.ognl.ScopePropertyAccessor#getSourceSetter(ognl.OgnlContext, java.lang.Object, java.lang.Object)}.
+ */
+ @Test
+ public void testGetSourceSetter() {
+ assertNull(accessor.getSourceSetter(null, null, "whatever"));
+ }
+
+ /**
+ * Test method for {@link org.apache.tiles.ognl.ScopePropertyAccessor#setProperty(java.util.Map, java.lang.Object, java.lang.Object, java.lang.Object)}.
+ */
+ @Test
+ public void testSetProperty() {
+ accessor.setProperty(null, null, "whatever", "whateverValue");
+ }
+
+}
Propchange: tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/ScopePropertyAccessorTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/sandbox/trunk/tiles3/tiles-ognl/src/test/java/org/apache/tiles/ognl/ScopePropertyAccessorTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL