/*
* Copyright 2002-2003,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.config.providers;
import com.opensymphony.xwork2.config.ConfigurationProvider;
import com.opensymphony.xwork2.config.entities.ActionConfig;
import com.opensymphony.xwork2.config.entities.PackageConfig;
import com.opensymphony.xwork2.config.entities.ResultConfig;
import com.opensymphony.xwork2.config.entities.ResultTypeConfig;
import com.opensymphony.xwork2.mock.MockResult;
import java.util.Map;
/**
* Test XmlConfigurationProvider's <result-types> ... </result-types>
*
* @author tm_jee
* @version $Date$ $Id$
*/
public class XmlConfigurationProviderResultTypesTest extends ConfigurationTestBase {
public void testPlainResultTypesParams() throws Exception {
ConfigurationProvider configurationProvider = buildConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-result-types.xml");
PackageConfig packageConfig = configuration.getPackageConfig("xworkResultTypesTestPackage1");
Map resultTypesConfigMap = packageConfig.getResultTypeConfigs();
assertEquals(resultTypesConfigMap.size(), 2);
assertTrue(resultTypesConfigMap.containsKey("result1"));
assertTrue(resultTypesConfigMap.containsKey("result2"));
assertFalse(resultTypesConfigMap.containsKey("result3"));
ResultTypeConfig result1ResultTypeConfig = (ResultTypeConfig) resultTypesConfigMap.get("result1");
Map result1ParamsMap = result1ResultTypeConfig.getParams();
ResultTypeConfig result2ResultTypeConfig = (ResultTypeConfig) resultTypesConfigMap.get("result2");
Map result2ParamsMap = result2ResultTypeConfig.getParams();
assertEquals(result1ResultTypeConfig.getName(), "result1");
assertEquals(result1ResultTypeConfig.getClassName(), MockResult.class.getName());
assertEquals(result2ResultTypeConfig.getName(), "result2");
assertEquals(result2ResultTypeConfig.getClassName(), MockResult.class.getName());
assertEquals(result1ParamsMap.size(), 3);
assertEquals(result2ParamsMap.size(), 2);
assertTrue(result1ParamsMap.containsKey("param1"));
assertTrue(result1ParamsMap.containsKey("param2"));
assertTrue(result1ParamsMap.containsKey("param3"));
assertFalse(result1ParamsMap.containsKey("param4"));
assertTrue(result2ParamsMap.containsKey("paramA"));
assertTrue(result2ParamsMap.containsKey("paramB"));
assertFalse(result2ParamsMap.containsKey("paramC"));
assertEquals(result1ParamsMap.get("param1"), "value1");
assertEquals(result1ParamsMap.get("param2"), "value2");
assertEquals(result1ParamsMap.get("param3"), "value3");
assertEquals(result2ParamsMap.get("paramA"), "valueA");
assertEquals(result2ParamsMap.get("paramB"), "valueB");
}
public void testInheritedResultTypesParams() throws Exception {
ConfigurationProvider configurationProvider = buildConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-result-types.xml");
PackageConfig packageConfig = configuration.getPackageConfig("xworkResultTypesTestPackage2");
Map actionConfigMap = packageConfig.getActionConfigs();
ActionConfig action1ActionConfig = (ActionConfig) actionConfigMap.get("action1");
ActionConfig action2ActionConfig = (ActionConfig) actionConfigMap.get("action2");
ResultConfig action1Result = (ResultConfig) action1ActionConfig.getResults().get("success");
ResultConfig action2Result = (ResultConfig) action2ActionConfig.getResults().get("success");
assertEquals(action1Result.getName(), "success");
assertEquals(action1Result.getClassName(), "com.opensymphony.xwork2.mock.MockResult");
assertEquals(action1Result.getName(), "success");
assertEquals(action1Result.getClassName(), "com.opensymphony.xwork2.mock.MockResult");
Map action1ResultMap = action1Result.getParams();
Map action2ResultMap = action2Result.getParams();
assertEquals(action1ResultMap.size(), 5);
assertTrue(action1ResultMap.containsKey("param1"));
assertTrue(action1ResultMap.containsKey("param2"));
assertTrue(action1ResultMap.containsKey("param3"));
assertTrue(action1ResultMap.containsKey("param10"));
assertTrue(action1ResultMap.containsKey("param11"));
assertFalse(action1ResultMap.containsKey("param12"));
assertEquals(action1ResultMap.get("param1"), "newValue1");
assertEquals(action1ResultMap.get("param2"), "value2");
assertEquals(action1ResultMap.get("param3"), "newValue3");
assertEquals(action1ResultMap.get("param10"), "value10");
assertEquals(action1ResultMap.get("param11"), "value11");
assertEquals(action2ResultMap.size(), 3);
assertTrue(action2ResultMap.containsKey("paramA"));
assertTrue(action2ResultMap.containsKey("paramB"));
assertTrue(action2ResultMap.containsKey("paramZ"));
assertFalse(action2ResultMap.containsKey("paramY"));
assertEquals(action2ResultMap.get("paramA"), "valueA");
assertEquals(action2ResultMap.get("paramB"), "newValueB");
assertEquals(action2ResultMap.get("paramZ"), "valueZ");
}
}