1 package org.opendaylight.controller.config.manager.impl.util;
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;
8 import org.mockito.InOrder;
9 import org.mockito.Mockito;
10 import org.osgi.framework.BundleContext;
11 import org.osgi.framework.ServiceRegistration;
12 import org.osgi.util.tracker.BundleTracker;
13 import org.osgi.util.tracker.ServiceTracker;
15 public class OsgiRegistrationUtilTest {
18 public void testRegisterService() throws Exception {
19 final BundleContext bundleContext = mock(BundleContext.class);
20 ServiceRegistration<?> registration = mockServiceRegistration();
21 doReturn(registration).when(bundleContext).registerService(String.class, "string", null);
22 ServiceRegistration<?> registration2 = mockServiceRegistration();
23 doReturn(registration2).when(bundleContext).registerService(Object.class, "string", null);
25 AutoCloseable aggregatedRegister = OsgiRegistrationUtil.registerService(bundleContext, "string", String.class, Object.class);
26 aggregatedRegister.close();
28 InOrder inOrder = Mockito.inOrder(registration, registration2);
29 inOrder.verify(registration2).unregister();
30 inOrder.verify(registration).unregister();
34 public void testWrap() throws Exception {
35 final ServiceRegistration<?> serviceReg = mockServiceRegistration();
36 OsgiRegistrationUtil.wrap(serviceReg).close();
37 verify(serviceReg).unregister();
39 final BundleTracker<?> tracker = mock(BundleTracker.class);
40 doNothing().when(tracker).close();
41 OsgiRegistrationUtil.wrap(tracker).close();
42 verify(tracker).close();
44 final ServiceTracker<?, ?> sTracker = mock(ServiceTracker.class);
45 doNothing().when(sTracker).close();
46 OsgiRegistrationUtil.wrap(sTracker).close();
47 verify(sTracker).close();
50 private ServiceRegistration<?> mockServiceRegistration() {
51 ServiceRegistration<?> mock = mock(ServiceRegistration.class);
52 doNothing().when(mock).unregister();
57 public void testAggregate() throws Exception {