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;
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;
16 public class OsgiRegistrationUtilTest {
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);
26 AutoCloseable aggregatedRegister = OsgiRegistrationUtil.registerService(bundleContext, "string", String.class, Object.class);
27 aggregatedRegister.close();
29 InOrder inOrder = Mockito.inOrder(registration, registration2);
30 inOrder.verify(registration2).unregister();
31 inOrder.verify(registration).unregister();
35 public void testWrap() throws Exception {
36 final ServiceRegistration<?> serviceReg = mockServiceRegistration();
37 OsgiRegistrationUtil.wrap(serviceReg).close();
38 verify(serviceReg).unregister();
40 final BundleTracker<?> tracker = mock(BundleTracker.class);
41 doNothing().when(tracker).close();
42 OsgiRegistrationUtil.wrap(tracker).close();
43 verify(tracker).close();
45 final ServiceTracker<?, ?> sTracker = mock(ServiceTracker.class);
46 doNothing().when(sTracker).close();
47 OsgiRegistrationUtil.wrap(sTracker).close();
48 verify(sTracker).close();
51 private ServiceRegistration<?> mockServiceRegistration() {
52 ServiceRegistration<?> mock = mock(ServiceRegistration.class);
53 doNothing().when(mock).unregister();
58 public void testAggregate() throws Exception {