Author: lukaszlenart
Date: Tue Sep 28 07:52:39 2010
New Revision: 1002045
URL: http://svn.apache.org/viewvc?rev=1002045&view=rev
Log:
Resolved WW-3403 - added JUnit 4 StrutsTestCase
Added:
struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkJUnit4TestCase.java
Modified:
struts/struts2/trunk/plugins/junit/pom.xml
Modified: struts/struts2/trunk/plugins/junit/pom.xml
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/junit/pom.xml?rev=1002045&r1=1002044&r2=1002045&view=diff
==============================================================================
--- struts/struts2/trunk/plugins/junit/pom.xml (original)
+++ struts/struts2/trunk/plugins/junit/pom.xml Tue Sep 28 07:52:39 2010
@@ -41,11 +41,6 @@
<dependencies>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.2</version>
- </dependency>
- <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${struts2.springPlatformVersion}</version>
Added:
struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java?rev=1002045&view=auto
==============================================================================
---
struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
(added)
+++
struts/struts2/trunk/plugins/junit/src/main/java/org/apache/struts2/StrutsJUnit4TestCase.java
Tue Sep 28 07:52:39 2010
@@ -0,0 +1,80 @@
+package org.apache.struts2;
+
+import com.opensymphony.xwork2.XWorkJUnit4TestCase;
+import com.opensymphony.xwork2.interceptor.annotations.After;
+import com.opensymphony.xwork2.interceptor.annotations.Before;
+import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import com.opensymphony.xwork2.util.logging.jdk.JdkLoggerFactory;
+import org.apache.struts2.dispatcher.Dispatcher;
+import org.apache.struts2.util.StrutsTestCaseHelper;
+import org.springframework.mock.web.MockServletContext;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Map;
+import java.util.logging.ConsoleHandler;
+import java.util.logging.Formatter;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+import java.util.logging.Logger;
+
+
+public class StrutsJUnit4TestCase extends XWorkJUnit4TestCase {
+
+ static {
+ ConsoleHandler handler = new ConsoleHandler();
+ final SimpleDateFormat df = new SimpleDateFormat("mm:ss.SSS");
+ Formatter formatter = new Formatter() {
+ @Override
+ public String format(LogRecord record) {
+ StringBuilder sb = new StringBuilder();
+ sb.append(record.getLevel());
+ sb.append(':');
+ for (int x = 9 - record.getLevel().toString().length(); x > 0;
x--) {
+ sb.append(' ');
+ }
+ sb.append('[');
+ sb.append(df.format(new Date(record.getMillis())));
+ sb.append("] ");
+ sb.append(formatMessage(record));
+ sb.append('\n');
+ return sb.toString();
+ }
+ };
+ handler.setFormatter(formatter);
+ Logger logger = Logger.getLogger("");
+ if (logger.getHandlers().length > 0)
+ logger.removeHandler(logger.getHandlers()[0]);
+ logger.addHandler(handler);
+ logger.setLevel(Level.WARNING);
+ LoggerFactory.setLoggerFactory(new JdkLoggerFactory());
+ }
+
+ /**
+ * Sets up the configuration settings, XWork configuration, and
+ * message resources
+ */
+ @Before
+ public void setUp() throws Exception {
+
+ super.setUp();
+ initDispatcher(null);
+
+ }
+
+ protected Dispatcher initDispatcher(Map<String, String> params) {
+ Dispatcher du = StrutsTestCaseHelper.initDispatcher(new
MockServletContext(), params);
+ configurationManager = du.getConfigurationManager();
+ configuration = configurationManager.getConfiguration();
+ container = configuration.getContainer();
+ return du;
+ }
+
+ @After
+ public void tearDown() throws Exception {
+
+ super.tearDown();
+ StrutsTestCaseHelper.tearDown();
+ }
+
+}
Added:
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkJUnit4TestCase.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkJUnit4TestCase.java?rev=1002045&view=auto
==============================================================================
---
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkJUnit4TestCase.java
(added)
+++
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkJUnit4TestCase.java
Tue Sep 28 07:52:39 2010
@@ -0,0 +1,68 @@
+package com.opensymphony.xwork2;
+
+import com.opensymphony.xwork2.config.Configuration;
+import com.opensymphony.xwork2.config.ConfigurationException;
+import com.opensymphony.xwork2.config.ConfigurationManager;
+import com.opensymphony.xwork2.config.ConfigurationProvider;
+import com.opensymphony.xwork2.inject.Container;
+import com.opensymphony.xwork2.inject.ContainerBuilder;
+import com.opensymphony.xwork2.inject.Context;
+import com.opensymphony.xwork2.inject.Factory;
+import com.opensymphony.xwork2.inject.Scope;
+import com.opensymphony.xwork2.test.StubConfigurationProvider;
+import com.opensymphony.xwork2.util.XWorkTestCaseHelper;
+import com.opensymphony.xwork2.util.location.LocatableProperties;
+import org.junit.After;
+import org.junit.Before;
+
+public abstract class XWorkJUnit4TestCase {
+
+ protected ConfigurationManager configurationManager;
+ protected Configuration configuration;
+ protected Container container;
+ protected ActionProxyFactory actionProxyFactory;
+
+ @Before
+ public void setUp() throws Exception {
+ configurationManager = XWorkTestCaseHelper.setUp();
+ configuration = configurationManager.getConfiguration();
+ container = configuration.getContainer();
+ actionProxyFactory = container.getInstance(ActionProxyFactory.class);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ XWorkTestCaseHelper.tearDown(configurationManager);
+ configurationManager = null;
+ configuration = null;
+ container = null;
+ actionProxyFactory = null;
+ }
+
+ protected void loadConfigurationProviders(ConfigurationProvider...
providers) {
+ configurationManager =
XWorkTestCaseHelper.loadConfigurationProviders(configurationManager, providers);
+ configuration = configurationManager.getConfiguration();
+ container = configuration.getContainer();
+ actionProxyFactory = container.getInstance(ActionProxyFactory.class);
+ }
+
+ protected void loadButAdd(final Class<?> type, final Object impl) {
+ loadButAdd(type, Container.DEFAULT_NAME, impl);
+ }
+
+ protected void loadButAdd(final Class<?> type, final String name, final
Object impl) {
+ loadConfigurationProviders(new StubConfigurationProvider() {
+ @Override
+ public void register(ContainerBuilder builder,
+ LocatableProperties props) throws
ConfigurationException {
+ builder.factory(type, name, new Factory() {
+ public Object create(Context context) throws Exception {
+ return impl;
+ }
+
+ }, Scope.SINGLETON);
+ }
+ });
+ }
+
+}