1
2
3
4
5
6
7
8
9
10
11 package org.mule.component;
12
13 import org.mule.object.PrototypeObjectFactory;
14 import org.mule.tck.testmodels.fruit.Orange;
15 import org.mule.tck.testmodels.fruit.WaterMelon;
16
17 public class DefaultJavaComponentTestCase extends AbstractComponentTestCase
18 {
19
20 public void testComponentCreation() throws Exception
21 {
22 PrototypeObjectFactory objectFactory = new PrototypeObjectFactory(Orange.class);
23 objectFactory.setObjectClass(Orange.class);
24 objectFactory.initialise();
25
26 DefaultJavaComponent component = new DefaultJavaComponent(objectFactory);
27
28 assertNotNull(component.getObjectFactory());
29 assertEquals(objectFactory, component.getObjectFactory());
30 assertEquals(Orange.class, component.getObjectFactory().getObjectClass());
31 assertEquals(Orange.class, component.getObjectType());
32 }
33
34 public void testLifecycle() throws Exception
35 {
36 DefaultJavaComponent component =
37 new DefaultJavaComponent(new PrototypeObjectFactory(Orange.class));
38 component.setService(getTestService());
39 component.initialise();
40 component.start();
41
42 assertNotSame(component.borrowComponentLifecycleAdaptor(),
43 component.borrowComponentLifecycleAdaptor());
44
45 Object obj = component.getObjectFactory().getInstance();
46 assertNotNull(obj);
47
48 component.stop();
49 component.start();
50
51 assertNotSame(
52 ((DefaultLifecycleAdapter) component.borrowComponentLifecycleAdaptor()).componentObject,
53 ((DefaultLifecycleAdapter) component.borrowComponentLifecycleAdaptor()).componentObject);
54
55 }
56
57 public void testComponentDisposal() throws Exception
58 {
59 DefaultJavaComponent component = new DefaultJavaComponent(
60 new PrototypeObjectFactory(WaterMelon.class));
61
62 component.setService(getTestService());
63 component.initialise();
64 component.start();
65
66 DefaultLifecycleAdapter lifecycleAdapter = (DefaultLifecycleAdapter)
67 component.borrowComponentLifecycleAdaptor();
68 component.returnComponentLifecycleAdaptor(lifecycleAdapter);
69 component.dispose();
70
71 assertEquals("disposed",
72 ((WaterMelon) lifecycleAdapter.componentObject).getState());
73 }
74
75 }