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