X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Fsal-netconf-connector%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fsal%2Fconnect%2Fnetconf%2Fsal%2FNetconfDeviceRpcTest.java;h=556babe10ead457b633a2bfb9b3d4b362dc52acd;hb=b8f5ebd2f817de1d613d84cf41f3516728767eba;hp=f81440f4adbc85ea48a412ab2329e4bf776cb950;hpb=6d7e12bf3ef64e5004703a1d540e7e26f30a9595;p=netconf.git diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpcTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpcTest.java index f81440f4ad..556babe10e 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpcTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpcTest.java @@ -7,11 +7,11 @@ */ package org.opendaylight.netconf.sal.connect.netconf.sal; -import static org.mockito.Matchers.any; +import static org.junit.Assert.assertNotNull; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; -import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; import java.util.Collection; import java.util.Collections; @@ -22,26 +22,31 @@ import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.config.util.xml.XmlUtil; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcAvailabilityListener; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcException; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcIdentifier; -import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult; import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext; +import org.opendaylight.mdsal.dom.api.DOMRpcAvailabilityListener; +import org.opendaylight.mdsal.dom.api.DOMRpcIdentifier; +import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceCommunicator; import org.opendaylight.netconf.sal.connect.netconf.schema.mapping.NetconfMessageTransformer; +import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.$YangModuleInfoImpl; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; +import org.opendaylight.yangtools.yang.data.api.schema.AnyXmlNode; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; +import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaPath; +import org.w3c.dom.Node; public class NetconfDeviceRpcTest { @@ -79,17 +84,24 @@ public class NetconfDeviceRpcTest { @Test public void testInvokeRpc() throws Exception { NormalizedNode input = createNode("urn:ietf:params:xml:ns:netconf:base:1.0", "2011-06-01", "filter"); - final CheckedFuture future = rpc.invokeRpc(path, input); - final DOMRpcResult result = future.checkedGet(); - Assert.assertEquals(expectedReply, result); + final DOMRpcResult result = rpc.invokeRpc(path, input).get(); + Assert.assertEquals(expectedReply.getResult().getIdentifier(), result.getResult().getIdentifier()); + Assert.assertEquals(resolveNode(expectedReply), resolveNode(result)); + + } + + private Node resolveNode(final DOMRpcResult result) { + DataContainerChild value = ((ContainerNode) result.getResult()) + .getChild(NodeIdentifier.create(NetconfMessageTransformUtil.NETCONF_DATA_QNAME)).get(); + Node node = ((AnyXmlNode)value).getValue().getNode(); + assertNotNull(node); + return node; } @Test - public void testRegisterRpcListener() throws Exception { + public void testRegisterRpcListener() { ArgumentCaptor argument = ArgumentCaptor.forClass(Collection.class); - rpc.registerRpcListener(listener); - verify(listener).onRpcAvailable(argument.capture()); final Collection argValue = argument.getValue(); final Set operations = schema.getOperations(); @@ -97,11 +109,10 @@ public class NetconfDeviceRpcTest { for (RpcDefinition operation : operations) { final DOMRpcIdentifier domRpcIdentifier = DOMRpcIdentifier.create(operation.getPath()); Assert.assertTrue(argValue.contains(domRpcIdentifier)); - } } - private static ContainerNode createNode(String namespace, String date, String localName) { + private static ContainerNode createNode(final String namespace, final String date, final String localName) { return Builders.containerBuilder().withNodeIdentifier( new YangInstanceIdentifier.NodeIdentifier(QName.create(namespace, date, localName))).build(); }