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=876dd22c4750e10120b2adc97096c77658b1ccba;hpb=4c0c091813aea131d32dc70c5121a450eb9b7291;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 876dd22c47..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.sal.binding.generator.impl.ModuleInfoBackedContext; 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 { @@ -61,33 +66,42 @@ public class NetconfDeviceRpcTest { schema = getSchema(); NetconfMessageTransformer transformer = new NetconfMessageTransformer(schema, true); final NetconfMessage reply = new NetconfMessage(XmlUtil.readXmlToDocument( - "\n" + - "\n" + - "\n" + - "\n" + - "")); + "\n" + + "\n" + + "\n" + + "\n" + + "")); RpcResult result = RpcResultBuilder.success(reply).build(); - doReturn(Futures.immediateFuture(result)).when(communicator).sendRequest(any(NetconfMessage.class), any(QName.class)); + doReturn(Futures.immediateFuture(result)) + .when(communicator).sendRequest(any(NetconfMessage.class), any(QName.class)); rpc = new NetconfDeviceRpc(schema, communicator, transformer); - path = SchemaPath.create(true, QName.create("urn:ietf:params:xml:ns:netconf:base:1.0", "2011-06-01", "get-config")); + path = SchemaPath + .create(true, QName.create("urn:ietf:params:xml:ns:netconf:base:1.0", "2011-06-01", "get-config")); expectedReply = transformer.toRpcResult(reply, path); } @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(); @@ -95,13 +109,12 @@ 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) { - return Builders.containerBuilder() - .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(QName.create(namespace, date, localName))).build(); + 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(); } private static SchemaContext getSchema() { @@ -109,4 +122,4 @@ public class NetconfDeviceRpcTest { moduleInfoBackedContext.addModuleInfos(Collections.singleton($YangModuleInfoImpl.getInstance())); return moduleInfoBackedContext.tryToCreateSchemaContext().get(); } -} \ No newline at end of file +}