1
2
3
4
5
6
7 package org.mule.transport.jms.integration;
8
9 import org.mule.api.MuleMessage;
10 import org.mule.module.client.MuleClient;
11
12 import org.junit.Test;
13
14 import static org.junit.Assert.assertEquals;
15 import static org.junit.Assert.assertNotNull;
16 import static org.junit.Assert.assertNull;
17
18
19
20
21 public class JmsMuleSideDurableTopicXATxTestCase extends AbstractJmsFunctionalTestCase
22 {
23
24 public static final String CONNECTOR1_NAME = "jmsConnectorC1";
25
26 @Override
27 protected String getConfigResources()
28 {
29 return "integration/jms-muleside-durable-topic-xa-tx.xml";
30 }
31
32 @Test
33 public void testMuleXaTopic() throws Exception
34 {
35
36
37 Thread.sleep(5000);
38
39 MuleMessage result;
40 MuleClient client = new MuleClient(muleContext);
41 client.dispatch("vm://in", DEFAULT_INPUT_MESSAGE, null);
42 result = client.request("vm://out", getTimeout());
43 assertNotNull(result);
44 result = client.request("vm://out", getTimeout());
45 assertNotNull(result);
46 result = client.request("vm://out", getTimeout());
47 assertNull(result);
48
49 muleContext.getRegistry().lookupConnector(CONNECTOR1_NAME).stop();
50 assertEquals(muleContext.getRegistry().lookupConnector(CONNECTOR1_NAME).isStarted(), false);
51 logger.info(CONNECTOR1_NAME + " is stopped");
52 client.dispatch("vm://in", DEFAULT_INPUT_MESSAGE, null);
53 Thread.sleep(1000);
54 muleContext.getRegistry().lookupConnector(CONNECTOR1_NAME).start();
55 Thread.sleep(1000);
56 logger.info(CONNECTOR1_NAME + " is started");
57 result = client.request("vm://out", getTimeout());
58 assertNotNull(result);
59 logger.info("Received " + result.getPayload());
60 result = client.request("vm://out", getTimeout());
61 assertNotNull(result);
62 logger.info("!Received " + result.getPayload());
63 result = client.request("vm://out", getSmallTimeout());
64 assertNull(result);
65 }
66 }