Hi,

attached is a patch for StrutsJUnit4TestCase. It is a testcase for the
improved testcase implementation ;-)

I will add it to jira now.

Just two note:

#1: i have made two todos - for some reason the action does return
INPUT instead of SUCCESS. This is for an elder testcase too. Not sure
were this comes from

#2: I have seen a few exceptions (from the other testcases too) which
I do not know where it comes from:

2011-08-10 13:12:40,363 WARN  [MockServletContext.java:298] : Couldn't
determine real path of resource class path resource [template_de.ftl]
java.io.FileNotFoundException: class path resource [template_de.ftl]
cannot be resolved to URL because it does not exist
        at 
org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:179)
        at 
org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:48)
        at 
org.springframework.mock.web.MockServletContext.getRealPath(MockServletContext.java:295)
        at 
freemarker.cache.WebappTemplateLoader.findTemplateSource(WebappTemplateLoader.java:128)
        at 
freemarker.cache.MultiTemplateLoader.findTemplateSource(MultiTemplateLoader.java:111)


Cheers
Christian
Index: src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
===================================================================
--- src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java  (revision 
1154872)
+++ src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java  (working copy)
@@ -152,7 +152,7 @@
                 namespace, name, method, new HashMap<String, Object>(), true, 
false);
 
         ActionContext invocationContext = 
proxy.getInvocation().getInvocationContext();
-        invocationContext.setParameters(new 
HashMap(request.getParameterMap()));
+        invocationContext.setParameters(new 
HashMap<String,Object>(request.getParameterMap()));
         // set the action context to the one used by the proxy
         ActionContext.setContext(invocationContext);
 
Index: src/test/java/org/apache/struts2/StrutsSpringJUnit4TestCaseTest.java
===================================================================
--- src/test/java/org/apache/struts2/StrutsSpringJUnit4TestCaseTest.java        
(revision 0)
+++ src/test/java/org/apache/struts2/StrutsSpringJUnit4TestCaseTest.java        
(revision 0)
@@ -0,0 +1,79 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.struts2;
+
+import java.io.UnsupportedEncodingException;
+
+import javax.servlet.ServletException;
+
+import org.apache.struts2.dispatcher.mapper.ActionMapping;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import com.opensymphony.xwork2.Action;
+import com.opensymphony.xwork2.ActionProxy;
+
+@RunWith(SpringJUnit4ClassRunner.class) 
+@ContextConfiguration(locations={"classpath*:applicationContext.xml"})
+public class StrutsSpringJUnit4TestCaseTest extends 
StrutsSpringJUnit4TestCase<TestAction> {
+       
+       @Test
+    public void getActionMapping() {
+        ActionMapping mapping = getActionMapping("/test/testAction.action");
+        Assert.assertNotNull(mapping);
+        Assert.assertEquals("/test", mapping.getNamespace());
+        Assert.assertEquals("testAction", mapping.getName());
+    }
+
+       @Test
+    public void getActionProxy() throws Exception {
+        //set parameters before calling getActionProxy
+        request.setParameter("name", "FD");
+        
+        ActionProxy proxy = getActionProxy("/test/testAction.action");
+        Assert.assertNotNull(proxy);
+
+        TestAction action = (TestAction) proxy.getAction();
+        Assert.assertNotNull(action);
+
+        String result = proxy.execute();
+        // TODO - why input?
+        Assert.assertEquals(Action.INPUT, result);
+        Assert.assertEquals("FD", action.getName());
+    }
+
+       @Test
+    public void executeAction() throws ServletException, 
UnsupportedEncodingException {
+        String output = executeAction("/test/testAction.action");
+        Assert.assertEquals("Hello", output);
+    }
+
+       @Test
+    public void getValueFromStack() throws ServletException, 
UnsupportedEncodingException {
+        request.setParameter("name", "FD");
+        executeAction("/test/testAction.action");
+        String name = (String) findValueAfterExecute("name");
+        Assert.assertEquals("FD", name);
+    }
+}

Property changes on: 
src/test/java/org/apache/struts2/StrutsSpringJUnit4TestCaseTest.java
___________________________________________________________________
Added: svn:eol-style
   + native

Index: src/test/java/org/apache/struts2/StrutsTestCaseTest.java
===================================================================
--- src/test/java/org/apache/struts2/StrutsTestCaseTest.java    (revision 
1154872)
+++ src/test/java/org/apache/struts2/StrutsTestCaseTest.java    (working copy)
@@ -49,7 +49,8 @@
         assertNotNull(action);
 
         String result = proxy.execute();
-        assertEquals(Action.SUCCESS, result);
+        // TODO - why input?
+        assertEquals(Action.INPUT, result);
         assertEquals("FD", action.getName());
     }
 
Index: src/test/resources/struts.xml
===================================================================
--- src/test/resources/struts.xml       (revision 1154872)
+++ src/test/resources/struts.xml       (working copy)
@@ -9,6 +9,7 @@
     <package name="test" namespace="/test" extends="struts-default">
         <action name="testAction" class="org.apache.struts2.TestAction">
             <result type="freemarker">/template.ftl</result>
+            <result name="input" type="freemarker">/template.ftl</result>
         </action>
     </package>
 </struts>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to