1
2
3
4
5
6
7
8
9
10
11 package org.mule.service;
12
13 import org.mule.api.endpoint.InboundEndpoint;
14 import org.mule.api.model.Model;
15 import org.mule.api.registry.MuleRegistry;
16 import org.mule.api.service.Service;
17 import org.mule.api.source.CompositeMessageSource;
18 import org.mule.api.transport.Connector;
19 import org.mule.config.QueueProfile;
20 import org.mule.model.seda.SedaModel;
21 import org.mule.model.seda.SedaService;
22 import org.mule.tck.AbstractMuleTestCase;
23 import org.mule.tck.testmodels.mule.TestConnector;
24 import org.mule.transport.AbstractConnector;
25
26 public class ServiceTestCase extends AbstractMuleTestCase
27 {
28 private Connector testConnector;
29 private Service service;
30
31 @Override
32 protected void doSetUp() throws Exception
33 {
34 super.doSetUp();
35
36 testConnector = new TestConnector(muleContext);
37 testConnector.setName("customTestConnector");
38 muleContext.getRegistry().registerConnector(testConnector);
39
40 InboundEndpoint inboundEndpoint1 = muleContext.getEndpointFactory().getInboundEndpoint(
41 "test://test1?connector=customTestConnector");
42 InboundEndpoint inboundEndpoint2 = muleContext.getEndpointFactory().getInboundEndpoint(
43 "test://test2?connector=customTestConnector");
44
45 service = new SedaService(muleContext);
46 service.setName("testService");
47 ((CompositeMessageSource) service.getMessageSource()).addSource(inboundEndpoint1);
48 ((CompositeMessageSource) service.getMessageSource()).addSource(inboundEndpoint2);
49 Model model = new SedaModel();
50 model.setMuleContext(muleContext);
51 model.initialise();
52 service.setModel(model);
53 ((SedaService) service).setQueueProfile(new QueueProfile());
54 muleContext.getRegistry().registerService(service);
55
56 }
57
58 @Override
59 protected void doTearDown() throws Exception
60 {
61 muleContext.getRegistry().unregisterObject(service.getName(), MuleRegistry.LIFECYCLE_BYPASS_FLAG);
62 }
63
64 public void testUnregisterListenersOnServiceDisposal() throws Exception
65 {
66
67 muleContext.start();
68
69
70 assertEquals(2, ((AbstractConnector) testConnector).getReceivers().size());
71
72 service.stop();
73 service.dispose();
74
75
76 assertEquals(0, ((AbstractConnector) testConnector).getReceivers().size());
77 }
78
79 public void testUnregisterListenersOnServiceStop() throws Exception
80 {
81
82
83 muleContext.start();
84
85
86 assertEquals(2, ((AbstractConnector) testConnector).getReceivers().size());
87
88 service.stop();
89
90
91 assertEquals(0, ((AbstractConnector) testConnector).getReceivers().size());
92 }
93 }