1
2
3
4
5
6
7
8
9
10 package org.mule.transformers.simple;
11
12 import org.mule.api.lifecycle.Disposable;
13 import org.mule.api.lifecycle.InitialisationException;
14 import org.mule.api.transformer.TransformerException;
15 import org.mule.tck.FunctionalTestCase;
16 import org.mule.transformer.AbstractTransformer;
17
18 import java.util.ArrayList;
19 import java.util.List;
20
21
22
23
24
25 public class RegistryTransformerLifecycleTestCase extends FunctionalTestCase
26 {
27 @Override
28 protected String getConfigResources()
29 {
30 return "simple-transformer-config.xml";
31 }
32
33 public void testLifecycleInSpring() throws Exception
34 {
35 TransformerLifecycleTracker transformer =
36 (TransformerLifecycleTracker) muleContext.getRegistry().lookupTransformer("lifecycle");
37 assertNotNull(transformer);
38
39 muleContext.dispose();
40 assertLifecycle(transformer);
41 }
42
43 public void testLifecycleInTransientRegistry() throws Exception
44 {
45 TransformerLifecycleTracker transformer = new TransformerLifecycleTracker();
46 transformer.setProperty("foo");
47 muleContext.getRegistry().registerTransformer(transformer);
48
49 muleContext.dispose();
50 assertLifecycle(transformer);
51 }
52
53 private void assertLifecycle(TransformerLifecycleTracker transformer)
54 {
55 assertEquals("[setProperty, initialise, dispose]", transformer.getTracker().toString());
56 }
57
58 public static class TransformerLifecycleTracker extends AbstractTransformer implements Disposable
59 {
60 private final List<String> tracker = new ArrayList<String>();
61
62 private String property;
63
64 @Override
65 protected Object doTransform(Object src, String encoding) throws TransformerException
66 {
67 tracker.add("doTransform");
68 return null;
69 }
70
71 public String getProperty()
72 {
73 return property;
74 }
75
76 public void setProperty(String property)
77 {
78 tracker.add("setProperty");
79 }
80
81 public List<String> getTracker()
82 {
83 return tracker;
84 }
85
86 @Override
87 public void initialise() throws InitialisationException
88 {
89 tracker.add("initialise");
90 }
91
92 @Override
93 public void dispose()
94 {
95 tracker.add("dispose");
96 }
97 }
98 }