View Javadoc

1   /*
2    * $Id: QuartzPollingFunctionalTestCase.java 22399 2011-07-13 07:06:27Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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  }