2 * Copyright (c) 2013, 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.controller.config.manager.impl.util;
11 import static org.mockito.Mockito.doNothing;
12 import static org.mockito.Mockito.doReturn;
13 import static org.mockito.Mockito.mock;
14 import static org.mockito.Mockito.verify;
16 import org.junit.Test;
17 import org.mockito.InOrder;
18 import org.mockito.Mockito;
19 import org.osgi.framework.BundleContext;
20 import org.osgi.framework.ServiceRegistration;
21 import org.osgi.util.tracker.BundleTracker;
22 import org.osgi.util.tracker.ServiceTracker;
24 public class OsgiRegistrationUtilTest {
27 public void testRegisterService() throws Exception {
28 final BundleContext bundleContext = mock(BundleContext.class);
29 ServiceRegistration<?> registration = mockServiceRegistration();
30 doReturn(registration).when(bundleContext).registerService(String.class, "string", null);
31 ServiceRegistration<?> registration2 = mockServiceRegistration();
32 doReturn(registration2).when(bundleContext).registerService(Object.class, "string", null);
34 AutoCloseable aggregatedRegister = OsgiRegistrationUtil.registerService(bundleContext, "string", String.class, Object.class);
35 aggregatedRegister.close();
37 InOrder inOrder = Mockito.inOrder(registration, registration2);
38 inOrder.verify(registration2).unregister();
39 inOrder.verify(registration).unregister();
43 public void testWrap() throws Exception {
44 final ServiceRegistration<?> serviceReg = mockServiceRegistration();
45 OsgiRegistrationUtil.wrap(serviceReg).close();
46 verify(serviceReg).unregister();
48 final BundleTracker<?> tracker = mock(BundleTracker.class);
49 doNothing().when(tracker).close();
50 OsgiRegistrationUtil.wrap(tracker).close();
51 verify(tracker).close();
53 final ServiceTracker<?, ?> sTracker = mock(ServiceTracker.class);
54 doNothing().when(sTracker).close();
55 OsgiRegistrationUtil.wrap(sTracker).close();
56 verify(sTracker).close();
59 private static ServiceRegistration<?> mockServiceRegistration() {
60 ServiceRegistration<?> mock = mock(ServiceRegistration.class);
61 doNothing().when(mock).unregister();
66 public void testAggregate() throws Exception {