Specialize RemoteDevice to NetconfMessage
[netconf.git] / netconf / sal-netconf-connector / src / test / java / org / opendaylight / netconf / sal / connect / netconf / sal / SchemalessNetconfDeviceRpcTest.java
index 237021930a9a28457315bee4f05dfe3ace3a2215..3445d9232372353522f30a682e9d54bbddbf8716 100644 (file)
@@ -1,6 +1,13 @@
+/*
+ * 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.netconf.sal.connect.netconf.sal;
 
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.verify;
 
@@ -10,12 +17,14 @@ import java.net.InetSocketAddress;
 import javax.xml.transform.dom.DOMSource;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.controller.config.util.xml.XmlUtil;
+import org.mockito.junit.MockitoJUnitRunner;
 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.AbstractBaseSchemasTest;
 import org.opendaylight.netconf.sal.connect.netconf.schema.mapping.BaseRpcSchemalessTransformer;
 import org.opendaylight.netconf.sal.connect.netconf.schema.mapping.SchemalessMessageTransformer;
 import org.opendaylight.netconf.sal.connect.util.MessageCounter;
@@ -23,54 +32,55 @@ import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.schema.AnyxmlNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-public class SchemalessNetconfDeviceRpcTest {
+@RunWith(MockitoJUnitRunner.StrictStubs.class)
+public class SchemalessNetconfDeviceRpcTest extends AbstractBaseSchemasTest {
+    private static final Logger LOG = LoggerFactory.getLogger(SchemalessNetconfDeviceRpcTest.class);
 
     @Mock
-    private RemoteDeviceCommunicator<NetconfMessage> listener;
+    private RemoteDeviceCommunicator listener;
 
     private SchemalessNetconfDeviceRpc deviceRpc;
 
     @Before
     public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
         RpcResult<NetconfMessage> msg = null;
         ListenableFuture<RpcResult<NetconfMessage>> future = Futures.immediateFuture(msg);
         doReturn(future).when(listener).sendRequest(any(), any());
         final MessageCounter counter = new MessageCounter();
         deviceRpc = new SchemalessNetconfDeviceRpc(
                 new RemoteDeviceId("device1", InetSocketAddress.createUnresolved("0.0.0.0", 17830)), listener,
-                new BaseRpcSchemalessTransformer(counter), new SchemalessMessageTransformer(counter));
+                new BaseRpcSchemalessTransformer(BASE_SCHEMAS, counter), new SchemalessMessageTransformer(counter));
 
     }
 
     @Test
     public void testInvokeRpc() throws Exception {
         final QName qName = QName.create("urn:ietf:params:xml:ns:netconf:base:1.0", "2011-06-01", "get-config");
-        SchemaPath type = SchemaPath.create(true, qName);
-        DOMSource src = new DOMSource(XmlUtil.readXmlToDocument("<get-config xmlns=\"dd\">\n" +
-                "    <source>\n" +
-                "      <running/>\n" +
-                "    </source>\n" +
-                "    <filter type=\"subtree\">\n" +
-                "      <mainroot xmlns=\"urn:dummy:mod-0\">\n" +
-                "        <maincontent/>\n" +
-                "<choiceList></choiceList>\n" +
-                "      </mainroot>\n" +
-                "    </filter>\n" +
-                "  </get-config>"));
-        NormalizedNode<?, ?> input = Builders.anyXmlBuilder()
+        DOMSource src = new DOMSource(XmlUtil.readXmlToDocument("<get-config xmlns=\"dd\">\n"
+                + "    <source>\n"
+                + "      <running/>\n"
+                + "    </source>\n"
+                + "    <filter type=\"subtree\">\n"
+                + "      <mainroot xmlns=\"urn:dummy:mod-0\">\n"
+                + "        <maincontent/>\n"
+                + "<choiceList></choiceList>\n"
+                + "      </mainroot>\n"
+                + "    </filter>\n"
+                + "  </get-config>"));
+        AnyxmlNode<?> input = Builders.anyXmlBuilder()
                 .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(qName))
                 .withValue(src)
                 .build();
 
-        deviceRpc.invokeRpc(type, input);
+        deviceRpc.invokeRpc(qName, input);
         ArgumentCaptor<NetconfMessage> msgCaptor = ArgumentCaptor.forClass(NetconfMessage.class);
-        ArgumentCaptor<QName> qNameCaptor = ArgumentCaptor.forClass(QName.class);
-        verify(listener).sendRequest(msgCaptor.capture(), qNameCaptor.capture());
-        System.out.println(XmlUtil.toString(msgCaptor.getValue().getDocument()));
+        ArgumentCaptor<QName> qnameCaptor = ArgumentCaptor.forClass(QName.class);
+        verify(listener).sendRequest(msgCaptor.capture(), qnameCaptor.capture());
+        LOG.info(XmlUtil.toString(msgCaptor.getValue().getDocument()));
     }
-}
\ No newline at end of file
+}