Merge "Custom mailbox that is bounded and instrumented."
[controller.git] / opendaylight / config / config-manager / src / test / java / org / opendaylight / controller / config / manager / impl / util / OsgiRegistrationUtilTest.java
1 package org.opendaylight.controller.config.manager.impl.util;
2
3 import static org.mockito.Mockito.doNothing;
4 import static org.mockito.Mockito.doReturn;
5 import static org.mockito.Mockito.mock;
6 import static org.mockito.Mockito.verify;
7
8 import org.junit.Test;
9 import org.mockito.InOrder;
10 import org.mockito.Mockito;
11 import org.osgi.framework.BundleContext;
12 import org.osgi.framework.ServiceRegistration;
13 import org.osgi.util.tracker.BundleTracker;
14 import org.osgi.util.tracker.ServiceTracker;
15
16 public class OsgiRegistrationUtilTest {
17
18     @Test
19     public void testRegisterService() throws Exception {
20         final BundleContext bundleContext = mock(BundleContext.class);
21         ServiceRegistration<?> registration = mockServiceRegistration();
22         doReturn(registration).when(bundleContext).registerService(String.class, "string", null);
23         ServiceRegistration<?> registration2 = mockServiceRegistration();
24         doReturn(registration2).when(bundleContext).registerService(Object.class, "string", null);
25
26         AutoCloseable aggregatedRegister = OsgiRegistrationUtil.registerService(bundleContext, "string", String.class, Object.class);
27         aggregatedRegister.close();
28
29         InOrder inOrder = Mockito.inOrder(registration, registration2);
30         inOrder.verify(registration2).unregister();
31         inOrder.verify(registration).unregister();
32     }
33
34     @Test
35     public void testWrap() throws Exception {
36         final ServiceRegistration<?> serviceReg = mockServiceRegistration();
37         OsgiRegistrationUtil.wrap(serviceReg).close();
38         verify(serviceReg).unregister();
39
40         final BundleTracker tracker = mock(BundleTracker.class);
41         doNothing().when(tracker).close();
42         OsgiRegistrationUtil.wrap(tracker).close();
43         verify(tracker).close();
44
45         final ServiceTracker<?, ?> sTracker = mock(ServiceTracker.class);
46         doNothing().when(sTracker).close();
47         OsgiRegistrationUtil.wrap(sTracker).close();
48         verify(sTracker).close();
49     }
50
51     private ServiceRegistration<?> mockServiceRegistration() {
52         ServiceRegistration mock = mock(ServiceRegistration.class);
53         doNothing().when(mock).unregister();
54         return mock;
55     }
56
57     @Test
58     public void testAggregate() throws Exception {
59
60     }
61 }