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]