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