1 18 package org.apache.activemq.test.message; 19 20 import org.apache.activemq.test.JmsTopicSendReceiveWithTwoConnectionsAndEmbeddedBrokerTest; 21 import org.apache.commons.logging.Log; 22 import org.apache.commons.logging.LogFactory; 23 24 import javax.jms.JMSException ; 25 import javax.jms.Message ; 26 27 import java.util.Arrays ; 28 import java.util.HashMap ; 29 import java.util.List ; 30 import java.util.Map ; 31 32 37 public class NestedMapAndListPropertyTest extends JmsTopicSendReceiveWithTwoConnectionsAndEmbeddedBrokerTest { 38 39 private static final Log log = LogFactory.getLog(NestedMapAndListPropertyTest.class); 40 41 protected void assertMessageValid(int index, Message message) throws JMSException { 42 Object value = message.getObjectProperty("textField"); 43 assertEquals("textField", data[index], value); 44 45 Map map = (Map ) message.getObjectProperty("mapField"); 46 assertNotNull(map); 47 assertEquals("mapField.a", "foo", map.get("a")); 48 assertEquals("mapField.b", new Integer (23), map.get("b")); 49 assertEquals("mapField.c", new Long (45), map.get("c")); 50 51 value = map.get("d"); 52 assertTrue("mapField.d should be a Map", value instanceof Map ); 53 map = (Map ) value; 54 55 assertEquals("mapField.d.x", "abc", map.get("x")); 56 value = map.get("y"); 57 assertTrue("mapField.d.y is a List", value instanceof List ); 58 List list = (List ) value; 59 log.debug("mapField.d.y: " + list); 60 assertEquals("listField.size", 3, list.size()); 61 62 log.debug("Found map: " + map); 63 64 list = (List ) message.getObjectProperty("listField"); 65 log.debug("listField: " + list); 66 assertEquals("listField.size", 3, list.size()); 67 assertEquals("listField[0]", "a", list.get(0)); 68 assertEquals("listField[1]", "b", list.get(1)); 69 assertEquals("listField[2]", "c", list.get(2)); 70 } 71 72 protected Message createMessage(int index) throws JMSException { 73 Message answer = session.createMessage(); 74 75 answer.setStringProperty("textField", data[index]); 76 77 Map grandChildMap = new HashMap (); 78 grandChildMap.put("x", "abc"); 79 grandChildMap.put("y", Arrays.asList(new Object [] { "a", "b", "c" })); 80 81 Map nestedMap = new HashMap (); 82 nestedMap.put("a", "foo"); 83 nestedMap.put("b", new Integer (23)); 84 nestedMap.put("c", new Long (45)); 85 nestedMap.put("d", grandChildMap); 86 87 answer.setObjectProperty("mapField", nestedMap); 88 answer.setObjectProperty("listField", Arrays.asList(new Object [] { "a", "b", "c" })); 89 90 return answer; 91 } 92 93 } 94 | Popular Tags |