This is an automated email from the ASF dual-hosted git repository. lukaszlenart pushed a commit to branch struts-611 in repository https://gitbox.apache.org/repos/asf/struts-examples.git
commit bebfd8c9177e658de001d64172a1f38dad494706 Author: Lukasz Lenart <lukaszlen...@apache.org> AuthorDate: Wed Nov 30 09:18:57 2022 +0100 Adjust examples to Struts 6.1.1 --- blank/src/test/java/example/ConfigTest.java | 2 +- blank/src/test/java/example/HelloWorldTest.java | 9 +- .../org/apache/struts/edit/action/EditAction.java | 20 ++-- control-tags/src/main/resources/struts.xml | 38 ++++--- control-tags/src/main/webapp/WEB-INF/web.xml | 8 +- control-tags/src/main/webapp/index.jsp | 2 +- control-tags/src/main/webapp/thankyou.jsp | 2 +- .../apache/struts/register/action/Register.java | 17 +++ .../org/apache/struts/register/model/Person.java | 14 ++- form-processing/src/main/resources/struts.xml | 4 +- .../src/main/webapp/WEB-INF/register.jsp | 3 + .../src/main/webapp/WEB-INF/thankyou.jsp | 1 + .../helloworld/action/ExecAndWaitTestAction.java | 14 +++ helloworld/src/main/resources/struts.xml | 46 +++++--- helloworld/src/main/webapp/HelloWorld.jsp | 1 + helloworld/src/main/webapp/WEB-INF/web.xml | 20 ++-- helloworld/src/main/webapp/execAndWaitTest.jsp | 16 +++ .../src/main/webapp/execAndWaitTest_wait.jsp | 20 ++++ helloworld/src/main/webapp/index.jsp | 16 ++- pom.xml | 37 ++++--- .../struts/actions/IndexControllerTest.java | 29 ++++- .../struts/actions/data/OrderControllerTest.java | 26 ++++- text-provider/pom.xml | 4 - .../struts/register/action/RegisterTest.java | 123 ++++++++++----------- 24 files changed, 307 insertions(+), 165 deletions(-) diff --git a/blank/src/test/java/example/ConfigTest.java b/blank/src/test/java/example/ConfigTest.java index 006f87b..5663474 100644 --- a/blank/src/test/java/example/ConfigTest.java +++ b/blank/src/test/java/example/ConfigTest.java @@ -24,8 +24,8 @@ import com.opensymphony.xwork2.config.RuntimeConfiguration; import com.opensymphony.xwork2.config.entities.ActionConfig; import com.opensymphony.xwork2.config.entities.ResultConfig; import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider; -import org.apache.struts2.StrutsTestCase; import org.apache.struts2.config.StrutsXmlConfigurationProvider; +import org.apache.struts2.junit.StrutsTestCase; import java.util.List; import java.util.Map; diff --git a/blank/src/test/java/example/HelloWorldTest.java b/blank/src/test/java/example/HelloWorldTest.java index fcc4e68..0ef5990 100644 --- a/blank/src/test/java/example/HelloWorldTest.java +++ b/blank/src/test/java/example/HelloWorldTest.java @@ -16,20 +16,17 @@ * specific language governing permissions and limitations * under the License. */ - package example; import com.opensymphony.xwork2.ActionSupport; -import org.apache.struts2.StrutsTestCase; +import org.apache.struts2.junit.StrutsTestCase; public class HelloWorldTest extends StrutsTestCase { public void testHelloWorld() throws Exception { HelloWorld hello_world = container.inject(HelloWorld.class); String result = hello_world.execute(); - assertTrue("Expected a success result!", - ActionSupport.SUCCESS.equals(result)); - assertTrue("Expected the default message!", - hello_world.getText(HelloWorld.MESSAGE).equals(hello_world.getMessage())); + assertEquals("Expected a success result!", ActionSupport.SUCCESS, result); + assertEquals("Expected the default message!", hello_world.getText(HelloWorld.MESSAGE), hello_world.getMessage()); } } diff --git a/control-tags/src/main/java/org/apache/struts/edit/action/EditAction.java b/control-tags/src/main/java/org/apache/struts/edit/action/EditAction.java index eaaf6f1..cc8ceee 100755 --- a/control-tags/src/main/java/org/apache/struts/edit/action/EditAction.java +++ b/control-tags/src/main/java/org/apache/struts/edit/action/EditAction.java @@ -17,33 +17,33 @@ import java.util.List; * */ public class EditAction extends ActionSupport { - + private static final long serialVersionUID = 1L; - + private EditService editService = new EditServiceInMemory(); - + private Person personBean; private String [] sports = {"football", "baseball", "basketball" }; private String [] genders = {"male", "female", "not sure" }; private List<State> states ; private String [] carModelsAvailable = {"Ford","Chrysler","Toyota","Nissan"}; - public String execute() throws Exception { + public String save() throws Exception { editService.savePerson( getPersonBean() ); - + return SUCCESS; } public String input() throws Exception { setPersonBean( editService.getPerson() ); - + return INPUT; } - + public Person getPersonBean() { return personBean; } - + public void setPersonBean(Person person) { personBean = person; } @@ -51,7 +51,7 @@ public class EditAction extends ActionSupport { public List<String> getSports() { return Arrays.asList(sports); } - + public List<String> getGenders() { return Arrays.asList(genders); } @@ -66,7 +66,7 @@ public class EditAction extends ActionSupport { states.add( new State("FL", "Florida") ); states.add( new State("KS", "Kansas") ); states.add( new State("NY", "New York") ); - + return states; } diff --git a/control-tags/src/main/resources/struts.xml b/control-tags/src/main/resources/struts.xml index 219494c..9bf7dc1 100755 --- a/control-tags/src/main/resources/struts.xml +++ b/control-tags/src/main/resources/struts.xml @@ -1,29 +1,31 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC - "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" - "http://struts.apache.org/dtds/struts-2.5.dtd"> + "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" + "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> - <constant name="struts.devMode" value="true" /> + <constant name="struts.devMode" value="true"/> + <constant name="struts.enable.DynamicMethodInvocation" value="true"/> - <package name="basicstruts2" extends="struts-default"> + <package name="basicstruts2" extends="struts-default"> + <default-action-ref name="index"/> - <!-- If no class attribute is specified the framework will assume success and + <!-- If no class attribute is specified the framework will assume success and render the result index.jsp --> <!-- If no name value for the result node is specified the success value is the default --> - <action name="index"> - <result>/index.jsp</result> - </action> + <action name="index"> + <result>/index.jsp</result> + </action> - <action name="edit" class="org.apache.struts.edit.action.EditAction" method="input"> - <result name="input">/edit.jsp</result> - </action> - - <action name="save" class="org.apache.struts.edit.action.EditAction" method="execute"> - <result name="input">/edit.jsp</result> - <result name="success">/thankyou.jsp</result> - </action> + <action name="edit" class="org.apache.struts.edit.action.EditAction" method="input"> + <result name="input">/edit.jsp</result> + </action> - </package> + <action name="save" class="org.apache.struts.edit.action.EditAction" method="save"> + <result name="input">/edit.jsp</result> + <result name="success">/thankyou.jsp</result> + </action> -</struts> \ No newline at end of file + </package> + +</struts> diff --git a/control-tags/src/main/webapp/WEB-INF/web.xml b/control-tags/src/main/webapp/WEB-INF/web.xml index 2692584..f045032 100755 --- a/control-tags/src/main/webapp/WEB-INF/web.xml +++ b/control-tags/src/main/webapp/WEB-INF/web.xml @@ -2,10 +2,10 @@ <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>control_tags</display-name> <welcome-file-list> - <welcome-file>index.jsp</welcome-file> + <welcome-file>/index</welcome-file> </welcome-file-list> - - + + <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> @@ -15,5 +15,5 @@ <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> - + </web-app> diff --git a/control-tags/src/main/webapp/index.jsp b/control-tags/src/main/webapp/index.jsp index 70613c1..38130ec 100755 --- a/control-tags/src/main/webapp/index.jsp +++ b/control-tags/src/main/webapp/index.jsp @@ -10,6 +10,6 @@ <body> <h1>Welcome To Struts 2!</h1> -<p><a href='<s:url action="edit" />'>Edit your information</a></p> +<p><a href='<s:url action="edit" includeParams="all" />'>Edit your information</a></p> </body> </html> diff --git a/control-tags/src/main/webapp/thankyou.jsp b/control-tags/src/main/webapp/thankyou.jsp index f186888..fb03f71 100755 --- a/control-tags/src/main/webapp/thankyou.jsp +++ b/control-tags/src/main/webapp/thankyou.jsp @@ -46,7 +46,7 @@ </s:iterator> </table> -<p><a href="<s:url action='index' />">Return to home page</a>.</p> +<p><a href="<s:url action='index' includeParams="all"/>">Return to home page</a>.</p> </body> </html> diff --git a/form-processing/src/main/java/org/apache/struts/register/action/Register.java b/form-processing/src/main/java/org/apache/struts/register/action/Register.java index bfa99db..49974d8 100644 --- a/form-processing/src/main/java/org/apache/struts/register/action/Register.java +++ b/form-processing/src/main/java/org/apache/struts/register/action/Register.java @@ -3,15 +3,25 @@ package org.apache.struts.register.action; import com.opensymphony.xwork2.ActionSupport; import org.apache.struts.register.model.Person; +import java.util.ArrayList; +import java.util.List; + public class Register extends ActionSupport { private Person personBean; + private List<Integer> options; public String execute2() throws Exception { //call Service class to store personBean's state in database return SUCCESS; } + public String input() throws Exception { + this.options = new ArrayList<>(); + this.options.add(3); + return INPUT; + } + public String cancel2() throws Exception { return SUCCESS; } @@ -24,4 +34,11 @@ public class Register extends ActionSupport { personBean = person; } + public List<Integer> getOptions() { + return options; + } + + public void setOptions(List<Integer> options) { + this.options = options; + } } diff --git a/form-processing/src/main/java/org/apache/struts/register/model/Person.java b/form-processing/src/main/java/org/apache/struts/register/model/Person.java index ade6961..2103076 100644 --- a/form-processing/src/main/java/org/apache/struts/register/model/Person.java +++ b/form-processing/src/main/java/org/apache/struts/register/model/Person.java @@ -1,10 +1,13 @@ package org.apache.struts.register.model; +import java.util.List; + public class Person { private String firstName; private String lastName; private String email; private int age; + private List<Integer> options; public String getFirstName() { return firstName; @@ -38,10 +41,19 @@ public class Person { this.age = age; } + public List<Integer> getOptions() { + return options; + } + + public void setOptions(List<Integer> options) { + this.options = options; + } + public String toString() { return "First Name: " + getFirstName() + " Last Name: " + getLastName() + " Email: " + getEmail() + - " Age: " + getAge(); + " Age: " + getAge() + + " Options: " + getOptions(); } } diff --git a/form-processing/src/main/resources/struts.xml b/form-processing/src/main/resources/struts.xml index 56f4999..3345180 100644 --- a/form-processing/src/main/resources/struts.xml +++ b/form-processing/src/main/resources/struts.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC - "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" - "http://struts.apache.org/dtds/struts-2.5.dtd"> + "-//Apache Software Foundation//DTD Struts Configuration 6.0//EN" + "https://struts.apache.org/dtds/struts-6.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <constant name="struts.enable.DynamicMethodInvocation" value="true"/> diff --git a/form-processing/src/main/webapp/WEB-INF/register.jsp b/form-processing/src/main/webapp/WEB-INF/register.jsp index 5f17f61..25c056b 100644 --- a/form-processing/src/main/webapp/WEB-INF/register.jsp +++ b/form-processing/src/main/webapp/WEB-INF/register.jsp @@ -14,6 +14,9 @@ <s:textfield name="personBean.lastName" label="Last name"/> <s:textfield name="personBean.email" label="Email"/> <s:textfield name="personBean.age" label="Age"/> + <s:checkbox name="options[0]" fieldValue="1" label="1" /> + <s:checkbox name="options[1]" fieldValue="2" label="2" /> + <s:checkbox name="options[2]" fieldValue="3" label="3" /> <s:submit/> <s:submit action="register-cancel" value="Cancel" /> </s:form> diff --git a/form-processing/src/main/webapp/WEB-INF/thankyou.jsp b/form-processing/src/main/webapp/WEB-INF/thankyou.jsp index 665339f..38fea5f 100644 --- a/form-processing/src/main/webapp/WEB-INF/thankyou.jsp +++ b/form-processing/src/main/webapp/WEB-INF/thankyou.jsp @@ -10,6 +10,7 @@ <h3>Thank you for registering for a prize.</h3> <p>Your registration information: <s:property value="personBean" /> </p> + <p>Your registration information: <s:property value="options" /> </p> <p><a href="<s:url action='index' />" >Return to home page</a>.</p> </body> diff --git a/helloworld/src/main/java/org/apache/struts/helloworld/action/ExecAndWaitTestAction.java b/helloworld/src/main/java/org/apache/struts/helloworld/action/ExecAndWaitTestAction.java new file mode 100644 index 0000000..12e665d --- /dev/null +++ b/helloworld/src/main/java/org/apache/struts/helloworld/action/ExecAndWaitTestAction.java @@ -0,0 +1,14 @@ +package org.apache.struts.helloworld.action; + +import com.opensymphony.xwork2.ActionSupport; + +import java.util.concurrent.TimeUnit; + +public class ExecAndWaitTestAction extends ActionSupport { + + public String test() throws InterruptedException { + TimeUnit.SECONDS.sleep(15); + return SUCCESS; + } + +} diff --git a/helloworld/src/main/resources/struts.xml b/helloworld/src/main/resources/struts.xml index b0f3e63..8adf5e8 100755 --- a/helloworld/src/main/resources/struts.xml +++ b/helloworld/src/main/resources/struts.xml @@ -1,27 +1,41 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC - "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" - "http://struts.apache.org/dtds/struts-2.5.dtd"> + "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" + "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> - <constant name="struts.devMode" value="true" /> + <constant name="struts.devMode" value="true"/> + <constant name="struts.action.extension" value=","/> - <package name="basicstruts2" extends="struts-default"> + <package name="basicstruts2" namespace="/" extends="struts-default"> + <default-action-ref name="index"/> - <!-- If no class attribute is specified the framework will assume success and + <!-- If no class attribute is specified the framework will assume success and render the result index.jsp --> <!-- If no name value for the result node is specified the success value is the default --> - <action name="index"> - <result>/index.jsp</result> - </action> - - <!-- If the URL is hello.action then call the execute method of class HelloWorldAction. - If the result returned by the execute method is success render the HelloWorld.jsp --> - <action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute"> - <result name="success">/HelloWorld.jsp</result> - </action> - - </package> + <action name="index"> + <result>/index.jsp</result> + </action> + + <!-- If the URL is hello.action then call the execute method of class HelloWorldAction. + If the result returned by the execute method is success render the HelloWorld.jsp --> + <action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute"> + <result name="success">/HelloWorld.jsp</result> + </action> + + <!-- Executed And Wait Test --> + <action name="ExecAndWaitTest" class="org.apache.struts.helloworld.action.ExecAndWaitTestAction"> + <interceptor-ref name="basicStack"/> + <result>/execAndWaitTest.jsp</result> + </action> + <action name="ExecAndWaitTest_test" class="org.apache.struts.helloworld.action.ExecAndWaitTestAction" method="test"> + <interceptor-ref name="basicStack"/> + <interceptor-ref name="execAndWait"/> + <result name="wait">/execAndWaitTest_wait.jsp</result> + <result type="redirectAction">ExecAndWaitTest</result> + </action> + + </package> </struts> diff --git a/helloworld/src/main/webapp/HelloWorld.jsp b/helloworld/src/main/webapp/HelloWorld.jsp index db8e040..0ee7613 100755 --- a/helloworld/src/main/webapp/HelloWorld.jsp +++ b/helloworld/src/main/webapp/HelloWorld.jsp @@ -8,5 +8,6 @@ </head> <body> <h2><s:property value="messageStore.message" /></h2> + <p><a href="<s:url action="index"/>">Home</a></p> </body> </html> diff --git a/helloworld/src/main/webapp/WEB-INF/web.xml b/helloworld/src/main/webapp/WEB-INF/web.xml index 3bf270d..4fc7bc1 100755 --- a/helloworld/src/main/webapp/WEB-INF/web.xml +++ b/helloworld/src/main/webapp/WEB-INF/web.xml @@ -1,19 +1,21 @@ <?xml version="1.0" encoding="UTF-8"?> -<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> -<display-name>Hello World Struts 2</display-name> - <welcome-file-list> - <welcome-file>index.jsp</welcome-file> - </welcome-file-list> - - +<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> + <display-name>Hello World Struts 2</display-name> + <welcome-file-list> + <welcome-file>/index</welcome-file> + </welcome-file-list> + + <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> - <filter-mapping> + <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> - + </web-app> diff --git a/helloworld/src/main/webapp/execAndWaitTest.jsp b/helloworld/src/main/webapp/execAndWaitTest.jsp new file mode 100644 index 0000000..7b18000 --- /dev/null +++ b/helloworld/src/main/webapp/execAndWaitTest.jsp @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<%@ taglib prefix="s" uri="/struts-tags" %> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <title>Basic Struts 2 Application - Welcome</title> +</head> +<body> + +<s:form name="frmLetterMenu" action="ExecAndWaitTest_test" accept-charset="utf-8"> + <s:token/> + <s:submit value="Test Execute And Wait"/> +</s:form> + +</body> +</html> diff --git a/helloworld/src/main/webapp/execAndWaitTest_wait.jsp b/helloworld/src/main/webapp/execAndWaitTest_wait.jsp new file mode 100644 index 0000000..37ec9a1 --- /dev/null +++ b/helloworld/src/main/webapp/execAndWaitTest_wait.jsp @@ -0,0 +1,20 @@ +<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> +<%@ taglib prefix="s" uri="/struts-tags" %> + +<!DOCTYPE html> +<html lang="en"> +<head> + <!-- Refresh every 5 seconds --> + <meta http-equiv="refresh" content="5;url=<s:url includeParams="all"/>"/> + <title>Execute And Wait Test</title> +</head> + +<body> +<p> + Waiting... +</p> +<p> + Refresh URL (every 3 seconds): <!--s:url includeParams="all"/--> +</p> +</body> +</html> diff --git a/helloworld/src/main/webapp/index.jsp b/helloworld/src/main/webapp/index.jsp index de471ed..54cb33d 100755 --- a/helloworld/src/main/webapp/index.jsp +++ b/helloworld/src/main/webapp/index.jsp @@ -2,12 +2,16 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> - <head> +<head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Basic Struts 2 Application - Welcome</title> - </head> - <body> - <h1>Welcome To Struts 2!</h1> - <p><a href="<s:url action='hello'/>">Hello World</a></p> - </body> +</head> +<body> +<h1>Welcome To Struts 2!</h1> +<p><a href="<s:url action='hello'/>">Hello World</a></p> + +<h1>Execute and Wait Test</h1> +<a><a href="<s:url action='ExecAndWaitTest'/>">Test Execute And Wait</a></p> + +</body> </html> diff --git a/pom.xml b/pom.xml index 4bf20f1..3ace9ed 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <struts2.version>6.0.3</struts2.version> + <struts2.version>6.1.1</struts2.version> <log4j2.version>2.19.0</log4j2.version> <jetty-plugin.version>9.4.46.v20220331</jetty-plugin.version> <maven.javadoc.skip>true</maven.javadoc.skip> @@ -118,21 +118,15 @@ <module>jasperreports</module> </modules> - <dependencies> - - <dependency> - <groupId>org.apache.struts</groupId> - <artifactId>struts2-core</artifactId> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - </dependency> - - </dependencies> - <dependencyManagement> <dependencies> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + <version>3.1.0</version> + <scope>provided</scope> + </dependency> + <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> @@ -159,6 +153,21 @@ </dependencies> </dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.struts</groupId> + <artifactId>struts2-core</artifactId> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + </dependency> + </dependencies> + <build> <plugins> diff --git a/rest-angular/src/test/java/org/apache/examples/struts/actions/IndexControllerTest.java b/rest-angular/src/test/java/org/apache/examples/struts/actions/IndexControllerTest.java index 951b840..eab7c71 100644 --- a/rest-angular/src/test/java/org/apache/examples/struts/actions/IndexControllerTest.java +++ b/rest-angular/src/test/java/org/apache/examples/struts/actions/IndexControllerTest.java @@ -1,16 +1,35 @@ +/* + * 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.examples.struts.actions; import com.opensymphony.xwork2.ActionProxy; -import org.apache.struts2.StrutsRestTestCase; +import org.apache.struts2.junit.StrutsRestTestCase; import org.junit.Before; import org.junit.Test; -import static org.hamcrest.Matchers.*; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.notNullValue; public class IndexControllerTest extends StrutsRestTestCase<IndexController> { - @Before public void init() throws Exception { super.setUp(); @@ -27,4 +46,4 @@ public class IndexControllerTest extends StrutsRestTestCase<IndexController> { assertThat(indexController.isUseMinifiedResources(), is(false)); } -} \ No newline at end of file +} diff --git a/rest-angular/src/test/java/org/apache/examples/struts/actions/data/OrderControllerTest.java b/rest-angular/src/test/java/org/apache/examples/struts/actions/data/OrderControllerTest.java index 76eec4d..44685b3 100644 --- a/rest-angular/src/test/java/org/apache/examples/struts/actions/data/OrderControllerTest.java +++ b/rest-angular/src/test/java/org/apache/examples/struts/actions/data/OrderControllerTest.java @@ -1,23 +1,41 @@ +/* + * 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.examples.struts.actions.data; import com.jayway.jsonpath.JsonPath; import com.opensymphony.xwork2.ActionProxy; import org.apache.examples.struts.models.Order; import org.apache.struts2.ServletActionContext; -import org.apache.struts2.StrutsRestTestCase; +import org.apache.struts2.junit.StrutsRestTestCase; import org.junit.Before; import org.junit.Test; import org.springframework.mock.web.MockHttpServletResponse; import java.util.List; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.greaterThanOrEqualTo; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; -import static org.junit.Assert.assertThat; public class OrderControllerTest extends StrutsRestTestCase<OrderController> { @@ -36,7 +54,9 @@ public class OrderControllerTest extends StrutsRestTestCase<OrderController> { assertThat(model, notNullValue()); assertThat(model, is(instanceOf(List.class))); + @SuppressWarnings("unchecked") List<Order> orders = (List<Order>) model; + assertThat("List contains 3 orders", orders.size(), is(greaterThanOrEqualTo(3))); } @@ -112,4 +132,4 @@ public class OrderControllerTest extends StrutsRestTestCase<OrderController> { assertThat(order.getClientName(), is(equalTo("Grace Hopper"))); assertThat(order.getAmount(), is(equalTo(85))); } -} \ No newline at end of file +} diff --git a/text-provider/pom.xml b/text-provider/pom.xml index 1907b6e..5603bdd 100644 --- a/text-provider/pom.xml +++ b/text-provider/pom.xml @@ -23,10 +23,6 @@ <artifactId>struts2-convention-plugin</artifactId> <version>${struts2.version}</version> </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - </dependency> </dependencies> <build> diff --git a/unit-testing/src/test/java/org/apache/struts/register/action/RegisterTest.java b/unit-testing/src/test/java/org/apache/struts/register/action/RegisterTest.java index ae94936..d3ce410 100644 --- a/unit-testing/src/test/java/org/apache/struts/register/action/RegisterTest.java +++ b/unit-testing/src/test/java/org/apache/struts/register/action/RegisterTest.java @@ -1,80 +1,75 @@ +/* + * 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.struts.register.action; - import com.opensymphony.xwork2.ActionProxy; import com.opensymphony.xwork2.ActionSupport; -import org.apache.struts2.StrutsTestCase; +import org.apache.struts2.junit.StrutsTestCase; import org.junit.Test; public class RegisterTest extends StrutsTestCase { - @Test - public void testExecuteValidationPasses() throws Exception { - - request.setParameter("personBean.firstName", "Bruce"); - - request.setParameter("personBean.lastName", "Phillips"); - - request.setParameter("personBean.email", "bphill...@ku.edu"); - - request.setParameter("personBean.age", "19"); - - ActionProxy actionProxy = getActionProxy("/register.action") ; - - Register action = (Register) actionProxy.getAction(); - - assertNotNull("The action is null but should not be.", action); + @Test + public void testExecuteValidationPasses() throws Exception { + request.setParameter("personBean.firstName", "Bruce"); + request.setParameter("personBean.lastName", "Phillips"); + request.setParameter("personBean.email", "bphill...@ku.edu"); + request.setParameter("personBean.age", "19"); + + ActionProxy actionProxy = getActionProxy("/register.action"); + + Register action = (Register) actionProxy.getAction(); + assertNotNull("The action is null but should not be.", action); + + String result = actionProxy.execute(); + assertEquals("The execute method did not return " + ActionSupport.SUCCESS + " but should have.", ActionSupport.SUCCESS, result); + } + + @Test + public void testExecuteValidationFailsMissingFirstName() throws Exception { + request.setParameter("personBean.firstName", "Bruce"); + request.setParameter("personBean.lastName", "Phillips"); + request.setParameter("personBean.email", "bphill...@ku.edu"); + request.setParameter("personBean.age", "17"); + + ActionProxy actionProxy = getActionProxy("/register.action"); - String result = actionProxy.execute(); - - assertEquals("The execute method did not return " + ActionSupport.SUCCESS + " but should have.", ActionSupport.SUCCESS, result); + Register action = (Register) actionProxy.getAction(); + assertNotNull("The action is null but should not be.", action); - } - - @Test - public void testExecuteValidationFailsMissingFirstName() throws Exception { - - request.setParameter("personBean.firstName", "Bruce"); - - request.setParameter("personBean.lastName", "Phillips"); - - request.setParameter("personBean.email", "bphill...@ku.edu"); - - request.setParameter("personBean.age", "17"); - - ActionProxy actionProxy = getActionProxy("/register.action") ; - - Register action = (Register) actionProxy.getAction(); - - assertNotNull("The action is null but should not be.", action); + String result = actionProxy.execute(); + assertEquals("The execute method did not return " + ActionSupport.INPUT + " but should have.", ActionSupport.INPUT, result); + } - String result = actionProxy.execute(); - - assertEquals("The execute method did not return " + ActionSupport.INPUT + " but should have.", ActionSupport.INPUT, result); + @Test + public void testExecuteValidationFailsAgeToYoung() throws Exception { + request.setParameter("personBean.lastName", "Phillips"); + request.setParameter("personBean.email", "bphill...@ku.edu"); + request.setParameter("personBean.age", "19"); - } - - - @Test - public void testExecuteValidationFailsAgeToYoung() throws Exception { - - - request.setParameter("personBean.lastName", "Phillips"); - - request.setParameter("personBean.email", "bphill...@ku.edu"); - - request.setParameter("personBean.age", "19"); - - ActionProxy actionProxy = getActionProxy("/register.action") ; - - Register action = (Register) actionProxy.getAction(); - - assertNotNull("The action is null but should not be.", action); + ActionProxy actionProxy = getActionProxy("/register.action"); - String result = actionProxy.execute(); - - assertEquals("The execute method did not return " + ActionSupport.INPUT + " but should have.", ActionSupport.INPUT, result); + Register action = (Register) actionProxy.getAction(); + assertNotNull("The action is null but should not be.", action); - } + String result = actionProxy.execute(); + assertEquals("The execute method did not return " + ActionSupport.INPUT + " but should have.", ActionSupport.INPUT, result); + } }