import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
import org.opendaylight.netconf.notifications.NetconfNotificationCollector;
+import org.opendaylight.netconf.notifications.NotificationRegistration;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.notification._1._0.rev080714.StreamNameType;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.Netconf;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.Streams;
private NotificationToMdsalWriter writer;
+ @Mock
+ private NotificationRegistration notificationRegistration;
+
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
final NetconfNotificationCollector notificationCollector = mock(NetconfNotificationCollector.class);
final BindingAwareBroker.ProviderContext session = mock(BindingAwareBroker.ProviderContext.class);
- doReturn(null).when(notificationCollector).registerStreamListener(any(
+
+ doReturn(notificationRegistration).when(notificationCollector).registerStreamListener(any(
NetconfNotificationCollector.NetconfNotificationStreamListener.class));
doReturn(dataBroker).when(session).getSALService(DataBroker.class);
verify(dataBroker.newWriteOnlyTransaction()).delete(LogicalDatastoreType.OPERATIONAL, streamIdentifier);
}
+
+ @Test
+ public void testClose(){
+ doNothing().when(notificationRegistration).close();
+
+ final InstanceIdentifier streamIdentifier = InstanceIdentifier.create(Netconf.class);
+
+ writer.close();
+
+ verify(dataBroker.newWriteOnlyTransaction()).delete(LogicalDatastoreType.OPERATIONAL, streamIdentifier);
+ verify(notificationRegistration).close();
+ }
+
}
--- /dev/null
+/*
+ * Copyright (c) 2016 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.config.yang.netconf.mdsal.notification;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.verify;
+
+import java.util.Collection;
+import javax.annotation.Nonnull;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public class OperationalDatastoreListenerTest {
+
+ @Mock
+ private DataBroker dataBroker;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testDataStoreListener(){
+ final InstanceIdentifier<DataObject> instanceIdentifier = InstanceIdentifier.create(DataObject.class);
+ final DataTreeIdentifier<DataObject> testId =
+ new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL, instanceIdentifier);
+
+ final OperationalDatastoreListener<DataObject> op = new OperationalDatastoreListener<DataObject>(instanceIdentifier) {
+ @Override
+ public void onDataTreeChanged(@Nonnull Collection collection) {
+ }
+ };
+ doReturn(null).when(dataBroker).registerDataTreeChangeListener(any(), any());
+
+ ArgumentCaptor<DataTreeIdentifier> argumentId = ArgumentCaptor.forClass(DataTreeIdentifier.class);
+ op.registerOnChanges(dataBroker);
+ verify(dataBroker).registerDataTreeChangeListener(argumentId.capture(), any());
+
+ assertEquals(testId, argumentId.getValue());
+
+ }
+
+}