From 0db7d33b5193a195dbd0cbda3160ed91c107247d Mon Sep 17 00:00:00 2001 From: Rajith Muditha Attapattu Date: Fri, 9 Apr 2010 15:37:06 +0000 Subject: This is a fix for QPID-2493 Added test cases as well. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@932467 13f79535-47bb-0310-9956-ffa450edef68 --- .../client/message/AMQPEncodedMapMessageTest.java | 112 +++++++++++++++++++++ 1 file changed, 112 insertions(+) (limited to 'java/systests/src') diff --git a/java/systests/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessageTest.java b/java/systests/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessageTest.java index 96ce744075..5886ffc9f8 100644 --- a/java/systests/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessageTest.java +++ b/java/systests/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessageTest.java @@ -21,8 +21,10 @@ package org.apache.qpid.client.message; */ +import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.Map; import javax.jms.Connection; @@ -139,6 +141,116 @@ public class AMQPEncodedMapMessageTest extends QpidTestCase assertEquals("Hello",m.getString("String")); } + + public void testMessageWithListEntries() throws JMSException + { + MapMessage m = _session.createMapMessage(); + + List myList = getList(); + + m.setObject("List", myList); + _producer.send(m); + + AMQPEncodedMapMessage msg = (AMQPEncodedMapMessage)_consumer.receive(RECEIVE_TIMEOUT); + assertNotNull("Message was not received on time",msg); + assertEquals("Message content-type is incorrect", + AMQPEncodedMapMessage.MIME_TYPE, + ((AbstractJMSMessage)msg).getContentType()); + + List list = (List)msg.getObject("List"); + assertNotNull("List not received",list); + int i = 1; + for (String str: list) + { + assertEquals("String" + i,str); + i++; + } + } + + public void testMessageWithMapEntries() throws JMSException + { + MapMessage m = _session.createMapMessage(); + + Map myMap = getMap(); + + m.setObject("Map", myMap); + _producer.send(m); + + AMQPEncodedMapMessage msg = (AMQPEncodedMapMessage)_consumer.receive(RECEIVE_TIMEOUT); + assertNotNull("Message was not received on time",msg); + assertEquals("Message content-type is incorrect", + AMQPEncodedMapMessage.MIME_TYPE, + ((AbstractJMSMessage)msg).getContentType()); + + Map map = (Map)msg.getObject("Map"); + assertNotNull("Map not received",map); + int i = 1; + for (String str: map.keySet()) + { + assertEquals("String" + i,map.get(str)); + i++; + } + } + + public void testMessageWithNestedListsAndMaps() throws JMSException + { + MapMessage m = _session.createMapMessage(); + + Map myMap = new HashMap(); + myMap.put("map", getMap()); + myMap.put("list", getList()); + + m.setObject("Map", myMap); + _producer.send(m); + + AMQPEncodedMapMessage msg = (AMQPEncodedMapMessage)_consumer.receive(RECEIVE_TIMEOUT); + assertNotNull("Message was not received on time",msg); + assertEquals("Message content-type is incorrect", + AMQPEncodedMapMessage.MIME_TYPE, + ((AbstractJMSMessage)msg).getContentType()); + + Map mainMap = (Map)msg.getObject("Map"); + assertNotNull("Main Map not received",mainMap); + + Map map = (Map)mainMap.get("map"); + assertNotNull("Nested Map not received",map); + int i = 1; + for (String str: map.keySet()) + { + assertEquals("String" + i,map.get(str)); + i++; + } + + List list = (List)mainMap.get("list"); + assertNotNull("Nested List not received",list); + i = 1; + for (String str: list) + { + assertEquals("String" + i,str); + i++; + } + } + + private List getList() + { + List myList = new ArrayList(); + myList.add("String1"); + myList.add("String2"); + myList.add("String3"); + + return myList; + } + + private Map getMap() + { + Map myMap = new HashMap(); + myMap.put("Key1","String1"); + myMap.put("Key2","String2"); + myMap.put("Key3","String3"); + + return myMap; + } + public void tearDown() throws Exception { //clean up -- cgit v1.2.1