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