/* * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.controller.netconf.persist.impl; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyObject; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import javax.management.MBeanServerConnection; import javax.management.NotificationFilter; import javax.management.NotificationListener; import javax.management.ObjectName; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.opendaylight.controller.config.persist.api.Persister; public class ConfigPersisterNotificationHandlerTest { @Mock private MBeanServerConnection mBeanServer; @Mock private Persister notificationListener; @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); doNothing().when(mBeanServer).addNotificationListener(any(ObjectName.class), any(NotificationListener.class), any(NotificationFilter.class), anyObject()); } @Test public void testNotificationHandler() throws Exception { doReturn(true).when(mBeanServer).isRegistered(any(ObjectName.class)); doThrow(Exception.class).when(mBeanServer).removeNotificationListener(any(ObjectName.class), any(NotificationListener.class)); final ConfigPersisterNotificationHandler testedHandler = new ConfigPersisterNotificationHandler(mBeanServer, notificationListener); verify(mBeanServer).addNotificationListener(any(ObjectName.class), any(NotificationListener.class), any(NotificationFilter.class), anyObject()); testedHandler.close(); verify(mBeanServer).removeNotificationListener(any(ObjectName.class), any(NotificationListener.class)); } @Test public void testNotificationHandlerCloseNotRegistered() throws Exception { doReturn(false).when(mBeanServer).isRegistered(any(ObjectName.class)); final ConfigPersisterNotificationHandler testedHandler = new ConfigPersisterNotificationHandler(mBeanServer, notificationListener); testedHandler.close(); verify(mBeanServer, times(0)).removeNotificationListener(any(ObjectName.class), any(NotificationListener.class)); } }