KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > activemq > test > message > NestedMapMessageTest


1 /**
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one or more
4  * contributor license agreements. See the NOTICE file distributed with
5  * this work for additional information regarding copyright ownership.
6  * The ASF licenses this file to You under the Apache License, Version 2.0
7  * (the "License"); you may not use this file except in compliance with
8  * the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */

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 JavaDoc;
25 import javax.jms.MapMessage JavaDoc;
26 import javax.jms.Message JavaDoc;
27
28 import java.util.Arrays JavaDoc;
29 import java.util.HashMap JavaDoc;
30 import java.util.List JavaDoc;
31 import java.util.Map JavaDoc;
32
33 /**
34  *
35  * @version $Revision: 426366 $
36  */

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 JavaDoc message) throws JMSException JavaDoc {
42         assertTrue("Should be a MapMessage: " + message, message instanceof MapMessage JavaDoc);
43
44         MapMessage JavaDoc mapMessage = (MapMessage JavaDoc) message;
45
46         Object JavaDoc value = mapMessage.getObject("textField");
47         assertEquals("textField", data[index], value);
48
49         Map JavaDoc map = (Map JavaDoc) mapMessage.getObject("mapField");
50         assertNotNull(map);
51         assertEquals("mapField.a", "foo", map.get("a"));
52         assertEquals("mapField.b", new Integer JavaDoc(23), map.get("b"));
53         assertEquals("mapField.c", new Long JavaDoc(45), map.get("c"));
54
55         value = map.get("d");
56         assertTrue("mapField.d should be a Map", value instanceof Map JavaDoc);
57         map = (Map JavaDoc) 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 JavaDoc);
62         List JavaDoc list = (List JavaDoc) 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 JavaDoc) 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 JavaDoc createMessage(int index) throws JMSException JavaDoc {
77         MapMessage JavaDoc answer = session.createMapMessage();
78
79         answer.setString("textField", data[index]);
80
81         Map JavaDoc grandChildMap = new HashMap JavaDoc();
82         grandChildMap.put("x", "abc");
83         grandChildMap.put("y", Arrays.asList(new Object JavaDoc[] { "a", "b", "c" }));
84
85         Map JavaDoc nestedMap = new HashMap JavaDoc();
86         nestedMap.put("a", "foo");
87         nestedMap.put("b", new Integer JavaDoc(23));
88         nestedMap.put("c", new Long JavaDoc(45));
89         nestedMap.put("d", grandChildMap);
90
91         answer.setObject("mapField", nestedMap);
92         answer.setObject("listField", Arrays.asList(new Object JavaDoc[] { "a", "b", "c" }));
93
94         return answer;
95     }
96
97 }
98
Popular Tags