1
2
3
4
5
6
7 package org.mule.service;
8
9 import org.mule.api.endpoint.InboundEndpoint;
10 import org.mule.api.model.Model;
11 import org.mule.api.registry.MuleRegistry;
12 import org.mule.api.service.Service;
13 import org.mule.api.source.CompositeMessageSource;
14 import org.mule.api.transport.Connector;
15 import org.mule.config.QueueProfile;
16 import org.mule.model.seda.SedaModel;
17 import org.mule.model.seda.SedaService;
18 import org.mule.tck.junit4.AbstractMuleContextTestCase;
19 import org.mule.tck.testmodels.mule.TestConnector;
20 import org.mule.transport.AbstractConnector;
21
22 import org.junit.Test;
23
24 import static org.junit.Assert.assertEquals;
25
26 public class ServiceTestCase extends AbstractMuleContextTestCase
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 @Override
58 protected void doTearDown() throws Exception
59 {
60 muleContext.getRegistry().unregisterObject(service.getName(), MuleRegistry.LIFECYCLE_BYPASS_FLAG);
61 }
62
63 @Test
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 @Test
80 public void testUnregisterListenersOnServiceStop() throws Exception
81 {
82
83
84 muleContext.start();
85
86
87 assertEquals(2, ((AbstractConnector) testConnector).getReceivers().size());
88
89 service.stop();
90
91
92 assertEquals(0, ((AbstractConnector) testConnector).getReceivers().size());
93 }
94 }