/*
* 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.util;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionProxy;
import com.opensymphony.xwork2.XWorkTestCase;
import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
import java.util.HashMap;
import java.util.Map;
/**
* <code>MyBeanActionTest</code>
*
* @author Rainer Hermanns
*/
public class MyBeanActionTest extends XWorkTestCase {
public void testIndexedList() {
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("beanList(1234567890).name", "This is the bla bean");
params.put("beanList(1234567891).name", "This is the 2nd bla bean");
HashMap<String, Object> extraContext = new HashMap<String, Object>();
extraContext.put(ActionContext.PARAMETERS, params);
try {
ActionProxy proxy = actionProxyFactory.createActionProxy("", "MyBean", extraContext);
proxy.execute();
assertEquals(2, Integer.parseInt(proxy.getInvocation().getStack().findValue("beanList.size").toString()));
assertEquals(MyBean.class.getName(), proxy.getInvocation().getStack().findValue("beanList.get(0)").getClass().getName());
assertEquals(MyBean.class.getName(), proxy.getInvocation().getStack().findValue("beanList.get(1)").getClass().getName());
assertEquals("This is the bla bean", proxy.getInvocation().getStack().findValue("beanList.get(0).name"));
assertEquals(new Long(1234567890), Long.valueOf(proxy.getInvocation().getStack().findValue("beanList.get(0).id").toString()));
assertEquals("This is the 2nd bla bean", proxy.getInvocation().getStack().findValue("beanList.get(1).name"));
assertEquals(new Long(1234567891), Long.valueOf(proxy.getInvocation().getStack().findValue("beanList.get(1).id").toString()));
} catch (Exception e) {
e.printStackTrace();
fail();
}
}
public void testIndexedMap() {
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("beanMap[1234567890].id", "1234567890");
params.put("beanMap[1234567891].id", "1234567891");
params.put("beanMap[1234567890].name", "This is the bla bean");
params.put("beanMap[1234567891].name", "This is the 2nd bla bean");
HashMap<String, Object> extraContext = new HashMap<String, Object>();
extraContext.put(ActionContext.PARAMETERS, params);
try {
ActionProxy proxy = actionProxyFactory.createActionProxy("", "MyBean", extraContext);
proxy.execute();
MyBeanAction action = (MyBeanAction) proxy.getInvocation().getAction();
assertEquals(2, Integer.parseInt(proxy.getInvocation().getStack().findValue("beanMap.size").toString()));
Map map = (Map) proxy.getInvocation().getStack().findValue("beanMap");
assertEquals(true, action.getBeanMap().containsKey(new Long(1234567890)));
assertEquals(true, action.getBeanMap().containsKey(new Long(1234567891)));
assertEquals(MyBean.class.getName(), proxy.getInvocation().getStack().findValue("beanMap.get(1234567890L)").getClass().getName());
assertEquals(MyBean.class.getName(), proxy.getInvocation().getStack().findValue("beanMap.get(1234567891L)").getClass().getName());
assertEquals("This is the bla bean", proxy.getInvocation().getStack().findValue("beanMap.get(1234567890L).name"));
assertEquals("This is the 2nd bla bean", proxy.getInvocation().getStack().findValue("beanMap.get(1234567891L).name"));
assertEquals("1234567890", proxy.getInvocation().getStack().findValue("beanMap.get(1234567890L).id").toString());
assertEquals("1234567891", proxy.getInvocation().getStack().findValue("beanMap.get(1234567891L).id").toString());
} catch (Exception e) {
e.printStackTrace();
fail();
}
}
@Override
protected void setUp() throws Exception {
super.setUp();
// ensure we're using the default configuration, not simple config
loadConfigurationProviders(new XmlConfigurationProvider("xwork-sample.xml"));
}
}