struts-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lukaszlen...@apache.org
Subject [4/5] struts git commit: Add an Unit test to check if same issue as [WW-4528] has occurred
Date Tue, 14 Feb 2017 07:07:01 GMT
Add an Unit test to check if same issue as [WW-4528] has occurred

Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/805cdd77
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/805cdd77
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/805cdd77

Branch: refs/heads/master
Commit: 805cdd7754400149e166edc80b92fa2d67133d39
Parents: 51c0bcb
Author: Yasser Zamani <yasser.zamani@live.com>
Authored: Tue Feb 14 01:35:46 2017 +0330
Committer: Yasser Zamani <yasser.zamani@live.com>
Committed: Tue Feb 14 01:35:46 2017 +0330

----------------------------------------------------------------------
 .../ChainingInterceptorWithConfigTest.java      | 116 +++++++++++++++++++
 1 file changed, 116 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/805cdd77/core/src/test/java/com/opensymphony/xwork2/interceptor/ChainingInterceptorWithConfigTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/interceptor/ChainingInterceptorWithConfigTest.java
b/core/src/test/java/com/opensymphony/xwork2/interceptor/ChainingInterceptorWithConfigTest.java
new file mode 100644
index 0000000..25a5ee1
--- /dev/null
+++ b/core/src/test/java/com/opensymphony/xwork2/interceptor/ChainingInterceptorWithConfigTest.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2002-2006,2009 The Apache Software Foundation.
+ * 
+ * Licensed 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 com.opensymphony.xwork2.interceptor;
+
+import com.opensymphony.xwork2.*;
+import com.opensymphony.xwork2.config.Configuration;
+import com.opensymphony.xwork2.config.ConfigurationException;
+import com.opensymphony.xwork2.config.ConfigurationProvider;
+import com.opensymphony.xwork2.config.entities.ActionConfig;
+import com.opensymphony.xwork2.config.entities.InterceptorConfig;
+import com.opensymphony.xwork2.config.entities.InterceptorMapping;
+import com.opensymphony.xwork2.config.entities.PackageConfig;
+import com.opensymphony.xwork2.config.entities.ResultConfig;
+import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
+import com.opensymphony.xwork2.inject.ContainerBuilder;
+import com.opensymphony.xwork2.util.location.LocatableProperties;
+
+import java.util.*;
+
+import org.apache.struts2.TestResult;
+
+
+/**
+ * Unit test for {@link ChainingInterceptor} with a configuration provider.
+ *
+ */
+public class ChainingInterceptorWithConfigTest extends XWorkTestCase {
+
+    static String CHAINED_ACTION = "chainedAction";
+    static String CHAINTO_ACTION = "chaintoAction";
+    ObjectFactory objectFactory;
+
+    public void testTwoExcludesPropertiesChained() throws Exception {
+        assertNotNull(objectFactory);
+        ActionProxy proxy = actionProxyFactory.createActionProxy("", CHAINED_ACTION, null,
null);
+        SimpleAction chainedAction = (SimpleAction) proxy.getAction();
+        chainedAction.setBar(1);
+        chainedAction.setFoo(1);
+        chainedAction.setBlah("WW-4528");
+        proxy.execute();
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        XmlConfigurationProvider provider = new XmlConfigurationProvider("xwork-default.xml");
+        container.inject(provider);
+        this.objectFactory = container.getInstance(ObjectFactory.class);
+        loadConfigurationProviders(provider, new MockConfigurationProvider());
+    }
+
+    
+    private class MockConfigurationProvider implements ConfigurationProvider {
+        private Configuration config;
+
+        public void init(Configuration configuration) throws ConfigurationException {
+            this.config = configuration;
+        }
+
+        public boolean needsReload() {
+            return false;
+        }
+
+        public void destroy() { }
+
+
+        public void register(ContainerBuilder builder, LocatableProperties props) throws
ConfigurationException {
+            if (!builder.contains(ObjectFactory.class)) {
+                builder.factory(ObjectFactory.class);
+            }
+            if (!builder.contains(ActionProxyFactory.class)) {
+                builder.factory(ActionProxyFactory.class, DefaultActionProxyFactory.class);
+            }
+        }
+
+        public void loadPackages() throws ConfigurationException {
+            HashMap<String, String> interceptorParams = new HashMap<>();
+            interceptorParams.put("excludes", "blah,bar");
+
+            HashMap successParams1 = new HashMap();
+            successParams1.put("propertyName", "baz");
+            successParams1.put("expectedValue", 1);
+
+            HashMap successParams2 = new HashMap();
+            successParams2.put("propertyName", "blah");
+            successParams2.put("expectedValue", null);
+
+            InterceptorConfig chainingInterceptorConfig =  new InterceptorConfig.Builder("chainStack",
ChainingInterceptor.class.getName()).build();
+            PackageConfig packageConfig = new PackageConfig.Builder("default")
+                    .addActionConfig(CHAINED_ACTION, new ActionConfig.Builder("defaultPackage",
CHAINED_ACTION, SimpleAction.class.getName())
+                            .addResultConfig(new ResultConfig.Builder(Action.ERROR, ActionChainResult.class.getName()).addParam("actionName",
CHAINTO_ACTION).build())
+                            .build())
+                    .addActionConfig(CHAINTO_ACTION, new ActionConfig.Builder("defaultPackage",
CHAINTO_ACTION, SimpleAction.class.getName())
+                            .addInterceptors(Collections.singletonList(new InterceptorMapping("chainStack",
objectFactory.buildInterceptor(chainingInterceptorConfig, interceptorParams))))
+                            .addResultConfig(new ResultConfig.Builder(Action.SUCCESS, TestResult.class.getName()).addParams(successParams1).build())
+                            .addResultConfig(new ResultConfig.Builder(Action.ERROR, TestResult.class.getName()).addParams(successParams2).build())
+                            .build())
+                    .build();
+            config.addPackageConfig("defaultPackage", packageConfig);
+            config.addPackageConfig("default", new PackageConfig.Builder(packageConfig).name("default").build());
+        }
+    }
+}


Mime
View raw message