Repository: struts-site Updated Branches: refs/heads/asf-site 64baebde5 -> 9476ddfa1
Updates production by Jenkins Project: http://git-wip-us.apache.org/repos/asf/struts-site/repo Commit: http://git-wip-us.apache.org/repos/asf/struts-site/commit/9476ddfa Tree: http://git-wip-us.apache.org/repos/asf/struts-site/tree/9476ddfa Diff: http://git-wip-us.apache.org/repos/asf/struts-site/diff/9476ddfa Branch: refs/heads/asf-site Commit: 9476ddfa1c63c74e4a64bf261e070a8b3732ecff Parents: 64baebd Author: jenkins <bui...@apache.org> Authored: Wed Aug 23 11:50:37 2017 +0000 Committer: jenkins <bui...@apache.org> Committed: Wed Aug 23 11:50:37 2017 +0000 ---------------------------------------------------------------------- content/plugins/junit/index.html | 228 +++++++++++++++++++++------------- 1 file changed, 143 insertions(+), 85 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/struts-site/blob/9476ddfa/content/plugins/junit/index.html ---------------------------------------------------------------------- diff --git a/content/plugins/junit/index.html b/content/plugins/junit/index.html index 3e9d003..0ce6844 100644 --- a/content/plugins/junit/index.html +++ b/content/plugins/junit/index.html @@ -143,82 +143,89 @@ be tested.</p> an action:</p> <ul> - <li>Mapping: -```xml</li> + <li>Mapping:</li> </ul> -<struts> - <constant name="struts.objectFactory" value="spring" /> - <package name="test" namespace="/test" extends="struts-default"> - <action name="testAction" class="org.apache.struts2.TestAction"> - <result type="freemarker">/template.ftl</result> - </action> - </package> -</struts> -<div class="highlighter-rouge"><pre class="highlight"><code>- Action: -```java -public class TestAction extends ActionSupport { - private String name; - - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } -} +<div class="highlighter-rouge"><pre class="highlight"><code><span class="nt"><struts></span> + <span class="nt"><constant</span> <span class="na">name=</span><span class="s">"struts.objectFactory"</span> <span class="na">value=</span><span class="s">"spring"</span><span class="nt">/></span> + <span class="nt"><package</span> <span class="na">name=</span><span class="s">"test"</span> <span class="na">namespace=</span><span class="s">"/test"</span> <span class="na">extends=</span><span class="s">"struts-default"</span><span class="nt">></span> + <span class="nt"><action</span> <span class="na">name=</span><span class="s">"testAction"</span> <span class="na">class=</span><span class="s">"org.apache.struts2.TestAction"</span><span class="nt">></span> + <span class="nt"><result</span> <span class="na">type=</span><span class="s">"freemarker"</span><span class="nt">></span>/template.ftl<span class="nt"></result></span> + <span class="nt"></action></span> + <span class="nt"></package></span> +<span class="nt"></struts></span> +</code></pre> +</div> + +<ul> + <li>Action:</li> +</ul> + +<div class="highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">TestAction</span> <span class="kd">extends</span> <span class="n">ActionSupport</span> <span class="o">{</span> + <span class="kd">private</span> <span class="n">String</span> <span class="n">name</span><span class="o">;</span> + + <span class="kd">public</span> <span class="n">String</span> <span class="n">getName</span><span class="o">()</span> <span class="o">{</span> + <span class="k">return</span> <span class="n">name</span><span class="o">;</span> + <span class="o">}</span> + + <span class="kd">public</span> <span class="kt">void</span> <span class="n">setName</span><span class="o">(</span><span class="n">String</span> <span class="n">name</span><span class="o">)</span> <span class="o">{</span> + <span class="k">this</span><span class="o">.</span><span class="na">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">;</span> + <span class="o">}</span> +<span class="o">}</span> </code></pre> </div> + <ul> - <li>JUnit: -```java -package org.apache.struts2;</li> + <li>JUnit:</li> </ul> -<p>import org.apache.struts2.dispatcher.mapper.ActionMapping;</p> - -<p>import java.util.HashMap; -import java.io.UnsupportedEncodingException;</p> - -<p>import com.opensymphony.xwork2.ActionProxy; -import com.opensymphony.xwork2.Action;</p> - -<p>import javax.servlet.ServletException;</p> - -<p>public class StrutsTestCaseTest extends StrutsTestCase { - public void testGetActionMapping() { - ActionMapping mapping = getActionMapping(â/test/testAction.actionâ); - assertNotNull(mapping); - assertEquals(â/testâ, mapping.getNamespace()); - assertEquals(âtestActionâ, mapping.getName()); - }</p> - -<div class="highlighter-rouge"><pre class="highlight"><code>public void testGetActionProxy() throws Exception { - //set parameters before calling getActionProxy - request.setParameter("name", "FD"); - - ActionProxy proxy = getActionProxy("/test/testAction.action"); - assertNotNull(proxy); - - TestAction action = (TestAction) proxy.getAction(); - assertNotNull(action); - - String result = proxy.execute(); - assertEquals(Action.SUCCESS, result); - assertEquals("FD", action.getName()); -} - -public void testExecuteAction() throws ServletException, UnsupportedEncodingException { - String output = executeAction("/test/testAction.action"); - assertEquals("Hello", output); -} - -public void testGetValueFromStack() throws ServletException, UnsupportedEncodingException { - request.setParameter("name", "FD"); - executeAction("/test/testAction.action"); - String name = (String) findValueAfterExecute("name"); - assertEquals("FD", name); -} } ``` +<div class="highlighter-rouge"><pre class="highlight"><code><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">struts2</span><span class="o">;</span> + +<span class="kn">import</span> <span class="nn">org.apache.struts2.dispatcher.mapper.ActionMapping</span><span class="o">;</span> + +<span class="kn">import</span> <span class="nn">java.util.HashMap</span><span class="o">;</span> +<span class="kn">import</span> <span class="nn">java.io.UnsupportedEncodingException</span><span class="o">;</span> + +<span class="kn">import</span> <span class="nn">com.opensymphony.xwork2.ActionProxy</span><span class="o">;</span> +<span class="kn">import</span> <span class="nn">com.opensymphony.xwork2.Action</span><span class="o">;</span> + +<span class="kn">import</span> <span class="nn">javax.servlet.ServletException</span><span class="o">;</span> + +<span class="kd">public</span> <span class="kd">class</span> <span class="nc">StrutsTestCaseTest</span> <span class="kd">extends</span> <span class="n">StrutsTestCase</span> <span class="o">{</span> + <span class="kd">public</span> <span class="kt">void</span> <span class="n">testGetActionMapping</span><span class="o">()</span> <span class="o">{</span> + <span class="n">ActionMapping</span> <span class="n">mapping</span> <span class="o">=</span> <span class="n">getActionMapping</span><span class="o">(</span><span class="s">"/test/testAction.action"</span><span class="o">);</span> + <span class="n">assertNotNull</span><span class="o">(</span><span class="n">mapping</span><span class="o">);</span> + <span class="n">assertEquals</span><span class="o">(</span><span class="s">"/test"</span><span class="o">,</span> <span class="n">mapping</span><span class="o">.</span><span class="na">getNamespace</span><span class="o">());</span> + <span class="n">assertEquals</span><span class="o">(</span><span class="s">"testAction"</span><span class="o">,</span> <span class="n">mapping</span><span class="o">.</span><span class="na">getName</span><span class="o">());</span> + <span class="o">}</span> + + <span class="kd">public</span> <span class="kt">void</span> <span class="n">testGetActionProxy</span><span class="o">()</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span> + <span class="c1">//set parameters before calling getActionProxy</span> + <span class="n">request</span><span class="o">.</span><span class="na">setParameter</span><span class="o">(</span><span class="s">"name"</span><span class="o">,</span> <span class="s">"FD"</span><span class="o">);</span> + + <span class="n">ActionProxy</span> <span class="n">proxy</span> <span class="o">=</span> <span class="n">getActionProxy</span><span class="o">(</span><span class="s">"/test/testAction.action"</span><span class="o">);</span> + <span class="n">assertNotNull</span><span class="o">(</span><span class="n">proxy</span><span class="o">);</span> + + <span class="n">TestAction</span> <span class="n">action</span> <span class="o">=</span> <span class="o">(</span><span class="n">TestAction</span><span class="o">)</span> <span class="n">proxy</span><span class="o">.</span><span class="na">getAction</span><span class="o">();</span> + <span class="n">assertNotNull</span><span class="o">(</span><span class="n">action</span><span class="o">);</span> + + <span class="n">String</span> <span class="n">result</span> <span class="o">=</span> <span class="n">proxy</span><span class="o">.</span><span class="na">execute</span><span class="o">();</span> + <span class="n">assertEquals</span><span class="o">(</span><span class="n">Action</span><span class="o">.</span><span class="na">SUCCESS</span><span class="o">,</span> <span class="n">result</span><span class="o">);</span> + <span class="n">assertEquals</span><span class="o">(</span><span class="s">"FD"</span><span class="o">,</span> <span class="n">action</span><span class="o">.</span><span class="na">getName</span><span class="o">());</span> + <span class="o">}</span> + + <span class="kd">public</span> <span class="kt">void</span> <span class="n">testExecuteAction</span><span class="o">()</span> <span class="kd">throws</span> <span class="n">ServletException</span><span class="o">,</span> <span class="n">UnsupportedEncodingException</span> <span class="o">{</span> + <span class="n">String</span> <span class="n">output</span> <span class="o">=</span> <span class="n">executeAction</span><span class="o">(</span><span class="s">"/test/testAction.action"</span><span class="o">);</span> + <span class="n">assertEquals</span><span class="o">(</span><span class="s">"Hello"</span><span class="o">,</span> <span class="n">output</span><span class="o">);</span> + <span class="o">}</span> + + <span class="kd">public</span> <span class="kt">void</span> <span class="n">testGetValueFromStack</span><span class="o">()</span> <span class="kd">throws</span> <span class="n">ServletException</span><span class="o">,</span> <span class="n">UnsupportedEncodingException</span> <span class="o">{</span> + <span class="n">request</span><span class="o">.</span><span class="na">setParameter</span><span class="o">(</span><span class="s">"name"</span><span class="o">,</span> <span class="s">"FD"</span><span class="o">);</span> + <span class="n">executeAction</span><span class="o">(</span><span class="s">"/test/testAction.action"</span><span class="o">);</span> + <span class="n">String</span> <span class="n">name</span> <span class="o">=</span> <span class="o">(</span><span class="n">String</span><span class="o">)</span> <span class="n">findValueAfterExecute</span><span class="o">(</span><span class="s">"name"</span><span class="o">);</span> + <span class="n">assertEquals</span><span class="o">(</span><span class="s">"FD"</span><span class="o">,</span> <span class="n">name</span><span class="o">);</span> + <span class="o">}</span> +<span class="o">}</span> </code></pre> </div> @@ -231,24 +238,75 @@ the classpath and outside the container.</p> <p>There are several utility methods and mock objects defined in StrutsTestCase which can be used to facilitate the testing:</p> <ul> - <li>Methods: -|Method Name|Description| -|ââââ|ââââ| -|executeAction(String)|Pass the url for the action, and it will return the output of the action. This output <strong>is not</strong> the action result, like âsuccessâ, but what would be written to the result stream. To use this the actions must be using a result type that can be read from the classpath, like FreeMarker, velocity, etc (if you are using the experimental Embedded JSP Plugin, you can use JSPs also)| -|getActionProxy(String)|Builds an action proxy that can be used to invoke an action, by calling execute() on the returned proxy object. The return value of execute() is the action result, like âsuccessâ| -|getActionMapping(String)|Gets an ActionMapping for the url| -|injectStrutsDependencies(object)|Injects Struts dependencies into an object (dependencies are marked with Inject)| -|findValueAfterExecute(String)|Finds an object in the value stack, after an action has been executed| -|applyAdditionalParams(ActionContext)|Can be overwritten in subclass to provide additional params and settings used during action invocation| -|createAction(Class)|Can be used to instantiate an action which requires frameworkâs dependencies to be injected (e.g. extending ActionSupport requires inject some internal dependencies)|</li> - <li>Fields: -|Field|Description| -|ââ|ââââ| -|MockHttpServletRequest request|The request that will be passed to Struts. Make sure to set parameters in this object before calling methods like getActionProxy| -|MockHttpServletResponse response|The response object passed to Struts, you can use this class to test the output, response headers, etc| -|MockServletContext servletContext|The servlet context object passed to Struts|</li> + <li>Methods:</li> +</ul> + +<table> + <thead> + <tr> + <th>Method Name</th> + <th>Description</th> + </tr> + </thead> + <tbody> + <tr> + <td>executeAction(String)</td> + <td>Pass the url for the action, and it will return the output of the action. This output <strong>is not</strong> the action result, like âsuccessâ, but what would be written to the result stream. To use this the actions must be using a result type that can be read from the classpath, like FreeMarker, velocity, etc (if you are using the experimental Embedded JSP Plugin, you can use JSPs also)</td> + </tr> + <tr> + <td>getActionProxy(String)</td> + <td>Builds an action proxy that can be used to invoke an action, by calling execute() on the returned proxy object. The return value of execute() is the action result, like âsuccessâ</td> + </tr> + <tr> + <td>getActionMapping(String)</td> + <td>Gets an ActionMapping for the url</td> + </tr> + <tr> + <td>injectStrutsDependencies(object)</td> + <td>Injects Struts dependencies into an object (dependencies are marked with Inject)</td> + </tr> + <tr> + <td>findValueAfterExecute(String)</td> + <td>Finds an object in the value stack, after an action has been executed</td> + </tr> + <tr> + <td>applyAdditionalParams(ActionContext)</td> + <td>Can be overwritten in subclass to provide additional params and settings used during action invocation</td> + </tr> + <tr> + <td>createAction(Class)</td> + <td>Can be used to instantiate an action which requires frameworkâs dependencies to be injected (e.g. extending ActionSupport requires inject some internal dependencies)</td> + </tr> + </tbody> +</table> + +<ul> + <li>Fields:</li> </ul> +<table> + <thead> + <tr> + <th>Field</th> + <th>Description</th> + </tr> + </thead> + <tbody> + <tr> + <td>MockHttpServletRequest request</td> + <td>The request that will be passed to Struts. Make sure to set parameters in this object before calling methods like getActionProxy</td> + </tr> + <tr> + <td>MockHttpServletResponse response</td> + <td>The response object passed to Struts, you can use this class to test the output, response headers, etc</td> + </tr> + <tr> + <td>MockServletContext servletContext</td> + <td>The servlet context object passed to Struts</td> + </tr> + </tbody> +</table> + <h2 id="struts-actions-using-spring">Struts Actions using Spring</h2> <p>Make sure to add a dependency to the <a href="../spring/">Spring Plugin</a> to your <code class="highlighter-rouge">pom.xml</code>:</p>