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); + } + }); + } + +}