1
2
3
4
5
6
7
8
9
10
11 package org.mule.config.spring.handlers;
12
13 import org.mule.api.retry.RetryNotifier;
14 import org.mule.api.retry.RetryPolicyTemplate;
15 import org.mule.api.transport.Connector;
16 import org.mule.retry.async.AsynchronousRetryTemplate;
17 import org.mule.retry.notifiers.ConnectNotifier;
18 import org.mule.retry.policies.NoRetryPolicyTemplate;
19 import org.mule.retry.policies.RetryForeverPolicyTemplate;
20 import org.mule.retry.policies.SimpleRetryPolicyTemplate;
21 import org.mule.tck.FunctionalTestCase;
22
23 public class RetryNamespaceHandlerTestCase extends FunctionalTestCase
24 {
25 protected String getConfigResources()
26 {
27 return "org/mule/config/spring/handlers/retry-namespace-config.xml";
28 }
29
30 public void testDefaultConfig() throws Exception
31 {
32 Connector c = muleContext.getRegistry().lookupConnector("testConnector1");
33 assertNotNull(c);
34
35 RetryPolicyTemplate rpf = c.getRetryPolicyTemplate();
36 assertNotNull(rpf);
37 assertTrue(rpf instanceof NoRetryPolicyTemplate);
38 RetryNotifier rn = rpf.getNotifier();
39 assertNotNull(rn);
40 assertTrue(rn instanceof ConnectNotifier);
41
42 assertTrue(c.isConnected());
43 assertTrue(c.isStarted());
44 }
45
46 public void testSimpleDefaults() throws Exception
47 {
48 Connector c = muleContext.getRegistry().lookupConnector("testConnector2");
49 assertNotNull(c);
50
51 RetryPolicyTemplate rpf = c.getRetryPolicyTemplate();
52 assertNotNull(rpf);
53 assertTrue(rpf instanceof SimpleRetryPolicyTemplate);
54 assertEquals(SimpleRetryPolicyTemplate.DEFAULT_RETRY_COUNT, ((SimpleRetryPolicyTemplate) rpf).getCount());
55 assertEquals(SimpleRetryPolicyTemplate.DEFAULT_FREQUENCY, ((SimpleRetryPolicyTemplate) rpf).getFrequency());
56
57 assertTrue(c.isConnected());
58 assertTrue(c.isStarted());
59 }
60
61 public void testSimpleConfig() throws Exception
62 {
63 Connector c = muleContext.getRegistry().lookupConnector("testConnector3");
64 assertNotNull(c);
65
66 RetryPolicyTemplate rpf = c.getRetryPolicyTemplate();
67 assertNotNull(rpf);
68 assertTrue(rpf instanceof SimpleRetryPolicyTemplate);
69 assertEquals(5, ((SimpleRetryPolicyTemplate) rpf).getCount());
70 assertEquals(1000, ((SimpleRetryPolicyTemplate) rpf).getFrequency());
71
72 assertTrue(c.isConnected());
73 assertTrue(c.isStarted());
74 }
75
76 public void testForeverConfig() throws Exception
77 {
78 Connector c = muleContext.getRegistry().lookupConnector("testConnector4");
79 assertNotNull(c);
80
81 RetryPolicyTemplate rpf = c.getRetryPolicyTemplate();
82 assertNotNull(rpf);
83 assertTrue(rpf instanceof RetryForeverPolicyTemplate);
84 assertEquals(5000, ((RetryForeverPolicyTemplate) rpf).getFrequency());
85
86 assertTrue(c.isConnected());
87 assertTrue(c.isStarted());
88 }
89
90 public void testCustomConfig() throws Exception
91 {
92 Connector c = muleContext.getRegistry().lookupConnector("testConnector5");
93 assertNotNull(c);
94
95 RetryPolicyTemplate rpf = c.getRetryPolicyTemplate();
96 assertNotNull(rpf);
97 assertTrue(rpf instanceof TestRetryPolicyTemplate);
98 assertTrue(((TestRetryPolicyTemplate) rpf).isFooBar());
99 assertEquals(500, ((TestRetryPolicyTemplate) rpf).getRevolutions());
100
101 assertTrue(c.isConnected());
102 assertTrue(c.isStarted());
103 }
104
105 public void testConnectNotifierConfig() throws Exception
106 {
107 Connector c = muleContext.getRegistry().lookupConnector("testConnector6");
108 assertNotNull(c);
109
110 RetryPolicyTemplate rpf = c.getRetryPolicyTemplate();
111 assertNotNull(rpf);
112 RetryNotifier rn = rpf.getNotifier();
113 assertNotNull(rn);
114 assertTrue(rn instanceof ConnectNotifier);
115
116 assertTrue(c.isConnected());
117 assertTrue(c.isStarted());
118 }
119
120 public void testCustomNotifierConfig() throws Exception
121 {
122 Connector c = muleContext.getRegistry().lookupConnector("testConnector7");
123 assertNotNull(c);
124
125 RetryPolicyTemplate rpf = c.getRetryPolicyTemplate();
126 assertNotNull(rpf);
127 RetryNotifier rn = rpf.getNotifier();
128 assertNotNull(rn);
129 assertTrue(rn instanceof TestRetryNotifier);
130 assertEquals("red", ((TestRetryNotifier) rn).getColor());
131
132 assertTrue(c.isConnected());
133 assertTrue(c.isStarted());
134 }
135
136 public void testAsynchronousRetryConfig() throws Exception
137 {
138 Connector c = muleContext.getRegistry().lookupConnector("testConnector8");
139 assertNotNull(c);
140
141 RetryPolicyTemplate rpf = c.getRetryPolicyTemplate();
142 assertNotNull(rpf);
143 assertTrue(rpf instanceof AsynchronousRetryTemplate);
144
145 rpf = ((AsynchronousRetryTemplate) rpf).getDelegate();
146 assertTrue(rpf instanceof SimpleRetryPolicyTemplate);
147 assertEquals(5, ((SimpleRetryPolicyTemplate) rpf).getCount());
148 assertEquals(1000, ((SimpleRetryPolicyTemplate) rpf).getFrequency());
149
150
151 Thread.sleep(1000);
152 assertTrue(c.isConnected());
153 assertTrue(c.isStarted());
154 }
155 }