Adds test cases to cover three use cases with flow of exceptions

Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/61ab8137
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/61ab8137
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/61ab8137

Branch: refs/heads/master
Commit: 61ab8137ebbafd33a8c0c96d2c177db3e5267a0d
Parents: bf7714f
Author: Lukasz Lenart <lukaszlen...@apache.org>
Authored: Sat Dec 20 09:02:56 2014 +0100
Committer: Lukasz Lenart <lukaszlen...@apache.org>
Committed: Sat Dec 20 09:02:56 2014 +0100

----------------------------------------------------------------------
 .../xwork2/DefaultActionInvocationTest.java     | 106 ++++++++++++++++++-
 1 file changed, 103 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/61ab8137/xwork-core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java
----------------------------------------------------------------------
diff --git 
a/xwork-core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java
 
b/xwork-core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java
index e0aa8ba..d0ff2b5 100644
--- 
a/xwork-core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java
+++ 
b/xwork-core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java
@@ -1,14 +1,12 @@
 package com.opensymphony.xwork2;
 
-import com.mockobjects.dynamic.Mock;
 import com.opensymphony.xwork2.config.entities.InterceptorMapping;
 import com.opensymphony.xwork2.mock.MockActionProxy;
 import com.opensymphony.xwork2.mock.MockContainer;
 import com.opensymphony.xwork2.mock.MockInterceptor;
 import com.opensymphony.xwork2.ognl.OgnlUtil;
+import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.ValueStackFactory;
-import org.easymock.EasyMock;
-import org.easymock.IMocksControl;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -81,6 +79,108 @@ public class DefaultActionInvocationTest extends 
XWorkTestCase {
         assertEquals(mockContainer, deserializable.container);
     }
 
+    public void testInvokingExistingExecuteMethod() throws Exception {
+        // given
+        DefaultActionInvocation dai = new DefaultActionInvocation(new 
HashMap<String, Object>(), false) {
+            public ValueStack getStack() {
+                return new StubValueStack();
+            }
+        };
+
+        SimpleAction action = new SimpleAction() {
+            @Override
+            public String execute() throws Exception {
+                return SUCCESS;
+            }
+        };
+        MockActionProxy proxy = new MockActionProxy();
+        proxy.setMethod("execute");
+
+        dai.proxy = proxy;
+        dai.ognlUtil = new OgnlUtil();
+
+        // when
+        String result = dai.invokeAction(action, null);
+
+        // then
+        assertEquals("success", result);
+    }
+
+    public void testInvokingMissingMethod() throws Exception {
+        // given
+        DefaultActionInvocation dai = new DefaultActionInvocation(new 
HashMap<String, Object>(), false) {
+            public ValueStack getStack() {
+                return new StubValueStack();
+            }
+        };
+
+        SimpleAction action = new SimpleAction() {
+            @Override
+            public String execute() throws Exception {
+                return ERROR;
+            }
+        };
+        MockActionProxy proxy = new MockActionProxy();
+        proxy.setMethod("notExists");
+
+        UnknownHandlerManager uhm = new DefaultUnknownHandlerManager() {
+            @Override
+            public boolean hasUnknownHandlers() {
+                return false;
+            }
+        };
+
+        dai.proxy = proxy;
+        dai.ognlUtil = new OgnlUtil();
+        dai.unknownHandlerManager = uhm;
+
+        // when
+        Throwable expected = null;
+        try {
+            dai.invokeAction(action, null);
+        } catch (Exception e) {
+            expected = e;
+        }
+
+        // then
+        assertNotNull(expected);
+        assertTrue(expected instanceof NoSuchMethodException);
+    }
+
+    public void testInvokingExistingMethodThatThrowsException() throws 
Exception {
+        // given
+        DefaultActionInvocation dai = new DefaultActionInvocation(new 
HashMap<String, Object>(), false) {
+            public ValueStack getStack() {
+                return new StubValueStack();
+            }
+        };
+
+        SimpleAction action = new SimpleAction() {
+            @Override
+            public String execute() throws Exception {
+                throw new IllegalArgumentException();
+            }
+        };
+        MockActionProxy proxy = new MockActionProxy();
+        proxy.setMethod("execute");
+
+        dai.proxy = proxy;
+        dai.ognlUtil = new OgnlUtil();
+
+        // when
+        // when
+        Throwable expected = null;
+        try {
+            dai.invokeAction(action, null);
+        } catch (Exception e) {
+            expected = e;
+        }
+
+        // then
+        assertNotNull(expected);
+        assertTrue(expected instanceof IllegalArgumentException);
+    }
+
 }
 
 class DefaultActionInvocationTester extends DefaultActionInvocation {

Reply via email to