/** * */ package org.activejpa.util; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; import java.util.HashMap; import java.util.Map; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; /** * @author ganeshs * */ public class BeanUtilTest { private Map<String, Object> model3; @BeforeMethod public void setup() { model3 = new HashMap<String, Object>(); Map<String, Object> model1 = new HashMap<String, Object>(); model1.put("stringValue", "string"); model1.put("integerValue", "1234"); Map<String, Object> model2 = new HashMap<String, Object>(); model2.put("model", model1); Map<String, Object> map = new HashMap<String, Object>(); map.put("test123", model2); model3.put("map", map); } @Test public void shouldLoadBean() { DummyModel3 model3 = new DummyModel3(); BeanUtil.load(model3, this.model3); Map<String, DummyModel2> map = model3.getMap(); assertTrue(map.containsKey("test123")); assertNotNull(map.get("test123").getModel()); assertEquals(map.get("test123").getModel().getIntegerValue(), new Integer(1234)); assertEquals(map.get("test123").getModel().getStringValue(), "string"); } @Test public void shouldLoadBeanWithMapOfStrings() { Map<String, Object> data = new HashMap<String, Object>(); Map<String, Object> map = new HashMap<String, Object>(); data.put("stringValue", "string"); data.put("integerValue", "1234"); map.put("map", data); DummyModel2 model2 = new DummyModel2(); BeanUtil.load(model2, map); assertTrue(model2.getMap().containsKey("stringValue")); } public static class DummyModel1 { private String stringValue; private Integer integerValue; /** * @return the stringValue */ public String getStringValue() { return stringValue; } /** * @param stringValue the stringValue to set */ public void setStringValue(String stringValue) { this.stringValue = stringValue; } /** * @return the integerValue */ public Integer getIntegerValue() { return integerValue; } /** * @param integerValue the integerValue to set */ public void setIntegerValue(Integer integerValue) { this.integerValue = integerValue; } } public static class DummyModel2 { private DummyModel1 model; private Map<String, String> map = new HashMap<String, String>(); /** * @return the model */ public DummyModel1 getModel() { return model; } /** * @param model the model to set */ public void setModel(DummyModel1 model) { this.model = model; } /** * @return the map */ public Map<String, String> getMap() { return map; } /** * @param map the map to set */ public void setMap(Map<String, String> map) { this.map = map; } } public static class DummyModel3 { private Map<String, DummyModel2> map = new HashMap<String, DummyModel2>(); /** * @return the map */ public Map<String, DummyModel2> getMap() { return map; } /** * @param map the map to set */ public void setMap(Map<String, DummyModel2> map) { this.map = map; } } }