1 package com.diasparsoftware.javax.jms.test;
2
3 import java.util.Collections;
4
5 import javax.jms.*;
6 import javax.naming.InitialContext;
7
8 import junit.framework.TestCase;
9
10 import org.easymock.MockControl;
11 import org.mockejb.jndi.MockContextFactory;
12
13 import com.diasparsoftware.javax.jms.JBossMapMessageSender;
14 import com.sun.jms.MapMessageImpl;
15
16 public class SendMapMessageToJBossServerTest extends TestCase {
17 public void testHappyPath() throws Exception {
18 MockContextFactory.setAsInitial();
19
20 String destinationQueueJndiName = "destinationQueue";
21 MapMessage mapMessage = new MapMessageImpl();
22
23 MockControl queueConnectionFactoryControl =
24 MockControl.createControl(QueueConnectionFactory.class);
25
26 QueueConnectionFactory queueConnectionFactory =
27 (QueueConnectionFactory) queueConnectionFactoryControl
28 .getMock();
29
30 MockControl queueConnectionControl =
31 MockControl.createControl(QueueConnection.class);
32
33 QueueConnection queueConnection =
34 (QueueConnection) queueConnectionControl.getMock();
35
36 MockControl queueSessionControl =
37 MockControl.createControl(QueueSession.class);
38
39 QueueSession queueSession =
40 (QueueSession) queueSessionControl.getMock();
41
42 MockControl queueControl =
43 MockControl.createControl(Queue.class);
44
45 Queue queue = (Queue) queueControl.getMock();
46
47 MockControl queueSenderControl =
48 MockControl.createControl(QueueSender.class);
49
50 QueueSender queueSender =
51 (QueueSender) queueSenderControl.getMock();
52
53 queueConnectionFactory.createQueueConnection();
54 queueConnectionFactoryControl.setReturnValue(queueConnection);
55
56 queueConnection.createQueueSession(
57 false,
58 QueueSession.AUTO_ACKNOWLEDGE);
59 queueConnectionControl.setReturnValue(queueSession);
60
61 queueConnection.start();
62 queueConnectionControl.setVoidCallable();
63
64 queueSession.createMapMessage();
65 queueSessionControl.setReturnValue(mapMessage);
66
67 queueSession.createSender(queue);
68 queueSessionControl.setReturnValue(queueSender);
69
70 queueSender.send(mapMessage);
71 queueSenderControl.setVoidCallable();
72
73 queueConnection.stop();
74 queueConnectionControl.setVoidCallable();
75
76 queueSession.close();
77 queueSessionControl.setVoidCallable();
78
79 queueConnection.close();
80 queueConnectionControl.setVoidCallable();
81
82 InitialContext rootContext = new InitialContext();
83 rootContext.bind(
84 JBossMapMessageSender.QUEUE_CONNECTION_FACTORY_JNDI_NAME,
85 queueConnectionFactory);
86
87 rootContext.bind(destinationQueueJndiName, queue);
88
89 queueConnectionFactoryControl.replay();
90 queueConnectionControl.replay();
91 queueSessionControl.replay();
92 queueSenderControl.replay();
93 queueControl.replay();
94
95 JBossMapMessageSender messageSender =
96 new JBossMapMessageSender();
97
98 messageSender.sendMapMessage(
99 destinationQueueJndiName,
100 Collections.EMPTY_MAP);
101
102 queueConnectionFactoryControl.verify();
103 queueConnectionControl.verify();
104 queueSessionControl.verify();
105 queueSenderControl.verify();
106 queueControl.verify();
107 }
108 }