X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fmessagebus-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmessagebus%2Fapp%2Fimpl%2FNetconfEventSourceTest.java;h=5e1a07062d38596724225bf22b1edf33b084df2d;hb=bd7617c472e0326c56e46036580d187a450c5b80;hp=73117c12bae74c25e51475ea6e03c5b121be4adb;hpb=1e884647502a8d91f8a57bde8193c60b9bbcce0d;p=controller.git diff --git a/opendaylight/md-sal/messagebus-impl/src/test/java/org/opendaylight/controller/messagebus/app/impl/NetconfEventSourceTest.java b/opendaylight/md-sal/messagebus-impl/src/test/java/org/opendaylight/controller/messagebus/app/impl/NetconfEventSourceTest.java index 73117c12ba..5e1a07062d 100644 --- a/opendaylight/md-sal/messagebus-impl/src/test/java/org/opendaylight/controller/messagebus/app/impl/NetconfEventSourceTest.java +++ b/opendaylight/md-sal/messagebus-impl/src/test/java/org/opendaylight/controller/messagebus/app/impl/NetconfEventSourceTest.java @@ -7,22 +7,33 @@ */ package org.opendaylight.controller.messagebus.app.impl; -import com.google.common.base.Optional; -import com.google.common.util.concurrent.CheckedFuture; +//import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + +import java.net.URI; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import org.opendaylight.controller.md.sal.binding.api.BindingService; -import org.opendaylight.controller.md.sal.binding.api.MountPoint; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.controller.md.sal.dom.api.DOMMountPoint; -import org.opendaylight.controller.md.sal.dom.api.DOMNotification; import org.opendaylight.controller.md.sal.dom.api.DOMNotificationPublishService; import org.opendaylight.controller.md.sal.dom.api.DOMNotificationService; -import org.opendaylight.controller.md.sal.dom.api.DOMService; import org.opendaylight.controller.md.sal.dom.api.DOMRpcService; +import org.opendaylight.controller.md.sal.dom.api.DOMService; +import org.opendaylight.controller.messagebus.eventsources.netconf.NetconfEventSource; import org.opendaylight.controller.sal.binding.api.RpcConsumerRegistry; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventaggregator.rev141202.NotificationPattern; +import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventaggregator.rev141202.TopicId; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventsource.rev141202.JoinTopicInput; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.notification._1._0.rev080714.NotificationsService; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; @@ -33,28 +44,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.inventory.rev1 import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.model.api.NotificationDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaPath; -import org.opendaylight.yangtools.yang.common.QName; - -import java.lang.reflect.Field; -import java.net.URI; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.times; +import com.google.common.base.Optional; +import com.google.common.util.concurrent.CheckedFuture; public class NetconfEventSourceTest { @@ -62,31 +59,39 @@ public class NetconfEventSourceTest { DOMMountPoint domMountPointMock; JoinTopicInput joinTopicInputMock; - @BeforeClass - public static void initTestClass() throws IllegalAccessException, InstantiationException { - } - @Before public void setUp() throws Exception { Map streamMap = new HashMap<>(); - streamMap.put("string1", "string2"); + streamMap.put("uriStr1", "string2"); domMountPointMock = mock(DOMMountPoint.class); DOMNotificationPublishService domNotificationPublishServiceMock = mock(DOMNotificationPublishService.class); - MountPoint mountPointMock = mock(MountPoint.class); RpcConsumerRegistry rpcConsumerRegistryMock = mock(RpcConsumerRegistry.class); Optional onlyOptionalMock = (Optional) mock(Optional.class); NotificationsService notificationsServiceMock = mock(NotificationsService.class); - doReturn(onlyOptionalMock).when(mountPointMock).getService(RpcConsumerRegistry.class); - doReturn(rpcConsumerRegistryMock).when(onlyOptionalMock).get(); doReturn(notificationsServiceMock).when(rpcConsumerRegistryMock).getRpcService(NotificationsService.class); - netconfEventSource = new NetconfEventSource("nodeId1", streamMap, domMountPointMock, domNotificationPublishServiceMock, mountPointMock); + org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node node + = mock(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node.class); + org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId nodeId + = new org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId("NodeId1"); + doReturn(nodeId).when(node).getNodeId(); + netconfEventSource = new NetconfEventSource(node, streamMap, domMountPointMock, domNotificationPublishServiceMock); } @Test - public void constructorTest() { - assertNotNull("Instance has not been created correctly.", netconfEventSource); + public void onDataChangedTest(){ + InstanceIdentifier brmIdent = InstanceIdentifier.create(Nodes.class) + .child(Node.class, new NodeKey(new NodeId("brm"))).augmentation(NetconfNode.class); + AsyncDataChangeEvent asyncDataChangeEventMock = mock(AsyncDataChangeEvent.class); + NetconfNode dataObjectMock = mock(NetconfNode.class); + Map dataChangeMap = new HashMap<>(); + dataChangeMap.put(brmIdent, dataObjectMock); + doReturn(dataChangeMap).when(asyncDataChangeEventMock).getOriginalData(); + doReturn(dataChangeMap).when(asyncDataChangeEventMock).getUpdatedData(); + doReturn(true).when(dataObjectMock).isConnected(); + netconfEventSource.onDataChanged(asyncDataChangeEventMock); + verify(dataObjectMock, times(2)).isConnected(); } @Test @@ -97,9 +102,11 @@ public class NetconfEventSourceTest { private void joinTopicTestHelper() throws Exception{ joinTopicInputMock = mock(JoinTopicInput.class); + TopicId topicId = new TopicId("topicID007"); + doReturn(topicId).when(joinTopicInputMock).getTopicId(); NotificationPattern notificationPatternMock = mock(NotificationPattern.class); doReturn(notificationPatternMock).when(joinTopicInputMock).getNotificationPattern(); - doReturn("regexString1").when(notificationPatternMock).getValue(); + doReturn("uriStr1").when(notificationPatternMock).getValue(); SchemaContext schemaContextMock = mock(SchemaContext.class); doReturn(schemaContextMock).when(domMountPointMock).getSchemaContext(); @@ -119,50 +126,8 @@ public class NetconfEventSourceTest { DOMNotificationService domNotificationServiceMock = mock(DOMNotificationService.class); doReturn(domNotificationServiceMock).when(domNotificationServiceOptionalMock).get(); - ListenerRegistration listenerRegistrationMock = mock(ListenerRegistration.class); - doReturn(listenerRegistrationMock).when(domNotificationServiceMock).registerNotificationListener(any(NetconfEventSource.class), any(List.class)); - } - - @Test (expected=NullPointerException.class) - public void onNotificationTest() { - DOMNotification domNotificationMock = mock(DOMNotification.class); - ContainerNode containerNodeMock = mock(ContainerNode.class); - SchemaContext schemaContextMock = mock(SchemaContext.class); - SchemaPath schemaPathMock = mock(SchemaPath.class); - doReturn(schemaContextMock).when(domMountPointMock).getSchemaContext(); - doReturn(schemaPathMock).when(domNotificationMock).getType(); - doReturn(containerNodeMock).when(domNotificationMock).getBody(); - netconfEventSource.onNotification(domNotificationMock); - } - - @Test - public void onDataChangedTest() { - InstanceIdentifier brmIdent = InstanceIdentifier.create(Nodes.class) - .child(Node.class, new NodeKey(new NodeId("brm"))).augmentation(NetconfNode.class); - AsyncDataChangeEvent asyncDataChangeEventMock = mock(AsyncDataChangeEvent.class); - NetconfNode dataObjectMock = mock(NetconfNode.class); - Map dataChangeMap = new HashMap<>(); - dataChangeMap.put(brmIdent, dataObjectMock); - doReturn(dataChangeMap).when(asyncDataChangeEventMock).getOriginalData(); - doReturn(dataChangeMap).when(asyncDataChangeEventMock).getUpdatedData(); - - netconfEventSource.onDataChanged(asyncDataChangeEventMock); - verify(dataObjectMock, times(2)).isConnected(); - } - - @Test - public void onDataChangedResubscribeTest() throws Exception{ - InstanceIdentifier brmIdent = InstanceIdentifier.create(Nodes.class) - .child(Node.class, new NodeKey(new NodeId("brm"))).augmentation(NetconfNode.class); - AsyncDataChangeEvent asyncDataChangeEventMock = mock(AsyncDataChangeEvent.class); - NetconfNode dataObjectMock = mock(NetconfNode.class); - Map dataChangeMap = new HashMap<>(); - dataChangeMap.put(brmIdent, dataObjectMock); - doReturn(dataChangeMap).when(asyncDataChangeEventMock).getUpdatedData(); - doReturn(true).when(dataObjectMock).isConnected(); - - Set localSet = getActiveStreams(); - localSet.add("activeStream1"); + ListenerRegistration listenerRegistrationMock = (ListenerRegistration)mock(ListenerRegistration.class); + doReturn(listenerRegistrationMock).when(domNotificationServiceMock).registerNotificationListener(any(NetconfEventSource.class), any(SchemaPath.class)); Optional optionalMock = (Optional) mock(Optional.class); doReturn(optionalMock).when(domMountPointMock).getService(DOMRpcService.class); @@ -170,16 +135,6 @@ public class NetconfEventSourceTest { doReturn(domRpcServiceMock).when(optionalMock).get(); CheckedFuture checkedFutureMock = mock(CheckedFuture.class); doReturn(checkedFutureMock).when(domRpcServiceMock).invokeRpc(any(SchemaPath.class), any(ContainerNode.class)); - - netconfEventSource.onDataChanged(asyncDataChangeEventMock); - verify(dataObjectMock, times(1)).isConnected(); - assertEquals("Size of set has not been set correctly.", 1, getActiveStreams().size()); - } - - private Set getActiveStreams() throws Exception{ - Field nesField = NetconfEventSource.class.getDeclaredField("activeStreams"); - nesField.setAccessible(true); - return (Set) nesField.get(netconfEventSource); } -} +} \ No newline at end of file