1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.quartz;
12
13 import org.mule.DefaultMuleContext;
14 import org.mule.api.MuleMessage;
15 import org.mule.module.client.MuleClient;
16 import org.mule.tck.FunctionalTestCase;
17 import org.mule.tck.functional.CountdownCallback;
18 import org.mule.tck.functional.FunctionalTestComponent;
19 import org.mule.transport.PollingController;
20
21 public class QuartzPollingFunctionalTestCase extends FunctionalTestCase
22 {
23 @Override
24 protected String getConfigResources()
25 {
26 return "quartz-polling-functional-test.xml";
27 }
28
29 public void testMuleReceiverJob() throws Exception
30 {
31 ((DefaultMuleContext) muleContext).setPollingController(new PollingController()
32 {
33 @Override
34 public boolean isPrimaryPollingInstance()
35 {
36 return false;
37 }
38 });
39
40 FunctionalTestComponent component = (FunctionalTestComponent) getComponent("quartzService1");
41 assertNotNull(component);
42 CountdownCallback count1 = new CountdownCallback(1000);
43 component.setEventCallback(count1);
44
45 component = (FunctionalTestComponent) getComponent("quartzService2");
46 assertNotNull(component);
47 CountdownCallback count2 = new CountdownCallback(1000);
48 component.setEventCallback(count2);
49 Thread.sleep(10000);
50
51 assertEquals(1000, count1.getCount());
52 assertEquals(1000, count2.getCount());
53 ((DefaultMuleContext)muleContext).setPollingController(new PollingController()
54 {
55 @Override
56 public boolean isPrimaryPollingInstance()
57 {
58 return true;
59 }
60 });
61 Thread.sleep(5000);
62 assertTrue(count1.getCount() < 1000);
63 assertTrue(count2.getCount() < 1000);
64 }
65
66 public void testMuleSenderJob() throws Exception
67 {
68 ((DefaultMuleContext) muleContext).setPollingController(new PollingController()
69 {
70 @Override
71 public boolean isPrimaryPollingInstance()
72 {
73 return false;
74 }
75 });
76
77 MuleClient client = new MuleClient(muleContext);
78 client.dispatch("vm://source", "Hello", null);
79 Thread.sleep(10000);
80 int numMessages = -1;
81 MuleMessage message;
82 do
83 {
84 numMessages++;
85 message = client.request("vm://sink", 1);
86 if (message != null)
87 {
88 assertEquals("Hello", message.getPayload());
89 }
90 }
91 while (message != null);
92 assertTrue(numMessages > 0);
93 }
94
95 }