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


Reply via email to