Delete netconf
[controller.git] / opendaylight / netconf / netconf-it / src / test / java / org / opendaylight / controller / netconf / it / NetconfITTest.java
diff --git a/opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/NetconfITTest.java b/opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/NetconfITTest.java
deleted file mode 100644 (file)
index 866fe1a..0000000
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
- * Copyright (c) 2013 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.netconf.it;
-
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
-import static org.mockito.Mockito.doReturn;
-
-import com.google.common.base.Function;
-import com.google.common.base.Throwables;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeoutException;
-import javax.management.ObjectName;
-import javax.xml.parsers.ParserConfigurationException;
-import org.junit.Before;
-import org.junit.Test;
-import org.opendaylight.controller.config.api.jmx.ObjectNameUtil;
-import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
-import org.opendaylight.controller.config.util.xml.DocumentedException;
-import org.opendaylight.controller.config.util.xml.XmlElement;
-import org.opendaylight.controller.config.util.xml.XmlUtil;
-import org.opendaylight.controller.config.yang.test.impl.DepTestImplModuleFactory;
-import org.opendaylight.controller.config.yang.test.impl.MultipleDependenciesModuleFactory;
-import org.opendaylight.controller.config.yang.test.impl.MultipleDependenciesModuleMXBean;
-import org.opendaylight.controller.config.yang.test.impl.NetconfTestImplModuleFactory;
-import org.opendaylight.controller.config.yang.test.impl.NetconfTestImplModuleMXBean;
-import org.opendaylight.controller.netconf.api.NetconfMessage;
-import org.opendaylight.controller.netconf.client.NetconfClientDispatcher;
-import org.opendaylight.controller.netconf.client.TestingNetconfClient;
-import org.opendaylight.controller.netconf.util.test.XmlFileLoader;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.test.types.rev131127.TestIdentity1;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.test.types.rev131127.TestIdentity2;
-import org.opendaylight.yangtools.sal.binding.generator.util.BindingRuntimeContext;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.xml.sax.SAXException;
-
-public class NetconfITTest extends AbstractNetconfConfigTest {
-
-    public static final int PORT = 12023;
-    public static final InetSocketAddress TCP_ADDRESS = new InetSocketAddress(LOOPBACK_ADDRESS, PORT);
-
-    private NetconfMessage getConfigCandidate, editConfig, closeSession;
-    private NetconfClientDispatcher clientDispatcher;
-
-    @Before
-    public void setUp() throws Exception {
-        loadMessages();
-        clientDispatcher = getClientDispatcher();
-    }
-
-    @Override
-    protected InetSocketAddress getTcpServerAddress() {
-        return TCP_ADDRESS;
-    }
-
-    private void loadMessages() throws IOException, SAXException, ParserConfigurationException {
-        this.editConfig = XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/edit_config.xml");
-        this.getConfigCandidate = XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/getConfig_candidate.xml");
-        this.closeSession = XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/closeSession.xml");
-    }
-
-    @Test
-    public void testNetconfClientDemonstration() throws Exception {
-        try (TestingNetconfClient netconfClient = new TestingNetconfClient("client", clientDispatcher, getClientConfiguration(TCP_ADDRESS, 4000))) {
-
-            final Set<String> capabilitiesFromNetconfServer = netconfClient.getCapabilities();
-            final long sessionId = netconfClient.getSessionId();
-
-            // NetconfMessage can be created :
-            // new NetconfMessage(XmlUtil.readXmlToDocument("<xml/>"));
-
-            final NetconfMessage response = netconfClient.sendMessage(getGetConfig());
-            response.getDocument();
-        }
-    }
-
-    @Test
-    public void testTwoSessions() throws Exception {
-        try (TestingNetconfClient netconfClient = new TestingNetconfClient("1", clientDispatcher, getClientConfiguration(TCP_ADDRESS, 10000)))  {
-            try (TestingNetconfClient netconfClient2 = new TestingNetconfClient("2", clientDispatcher, getClientConfiguration(TCP_ADDRESS, 10000))) {
-                assertNotNull(netconfClient2.getCapabilities());
-            }
-        }
-    }
-
-    @Test
-    public void rpcReplyContainsAllAttributesTest() throws Exception {
-        try (TestingNetconfClient netconfClient = createSession(TCP_ADDRESS, "1")) {
-            final String rpc = "<rpc message-id=\"5\" a=\"a\" b=\"44\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><get/>" + "</rpc>";
-            final Document doc = XmlUtil.readXmlToDocument(rpc);
-            final NetconfMessage message = netconfClient.sendMessage(new NetconfMessage(doc));
-            assertNotNull(message);
-            final NamedNodeMap expectedAttributes = doc.getDocumentElement().getAttributes();
-            final NamedNodeMap returnedAttributes = message.getDocument().getDocumentElement().getAttributes();
-
-            assertSameAttributes(expectedAttributes, returnedAttributes);
-        }
-    }
-
-    private void assertSameAttributes(final NamedNodeMap expectedAttributes, final NamedNodeMap returnedAttributes) {
-        assertNotNull("Expecting 4 attributes", returnedAttributes);
-        assertEquals(expectedAttributes.getLength(), returnedAttributes.getLength());
-
-        for (int i = 0; i < expectedAttributes.getLength(); i++) {
-            final Node expAttr = expectedAttributes.item(i);
-            final Node attr = returnedAttributes.item(i);
-            assertEquals(expAttr.getNodeName(), attr.getNodeName());
-            assertEquals(expAttr.getNamespaceURI(), attr.getNamespaceURI());
-            assertEquals(expAttr.getTextContent(), attr.getTextContent());
-        }
-    }
-
-    @Test
-    public void rpcReplyErrorContainsAllAttributesTest() throws Exception {
-        try (TestingNetconfClient netconfClient = createSession(TCP_ADDRESS, "1")) {
-            final String rpc = "<rpc message-id=\"1\" a=\"adada\" b=\"4\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"><commit/>" + "</rpc>";
-            final Document doc = XmlUtil.readXmlToDocument(rpc);
-            final NetconfMessage message = netconfClient.sendMessage(new NetconfMessage(doc));
-            final NamedNodeMap expectedAttributes = doc.getDocumentElement().getAttributes();
-            final NamedNodeMap returnedAttributes = message.getDocument().getDocumentElement().getAttributes();
-
-            assertSameAttributes(expectedAttributes, returnedAttributes);
-        }
-    }
-
-    @Test
-    public void rpcOutputContainsCorrectNamespace() throws Exception {
-        final ConfigTransactionJMXClient transaction = this.configRegistryClient.createTransaction();
-        final ObjectName dep = transaction.createModule(DepTestImplModuleFactory.NAME, "instanceD");
-        final ObjectName impl = transaction.createModule(NetconfTestImplModuleFactory.NAME, "instance");
-        final NetconfTestImplModuleMXBean proxy = configRegistryClient
-                .newMXBeanProxy(impl, NetconfTestImplModuleMXBean.class);
-        proxy.setTestingDep(dep);
-        proxy.setSimpleShort((short) 0);
-
-        transaction.commit();
-
-        try (TestingNetconfClient netconfClient = createSession(TCP_ADDRESS, "1")) {
-            final String expectedNamespace = "urn:opendaylight:params:xml:ns:yang:controller:test:impl";
-
-            final String rpc = "<rpc message-id=\"5\" xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">"
-                    + "<no-arg xmlns=\""
-                    + expectedNamespace
-                    + "\">    "
-                    + "<context-instance>/modules/module[type='impl-netconf'][name='instance']</context-instance>"
-                    + "<arg1>argument1</arg1>" + "</no-arg>" + "</rpc>";
-            final Document doc = XmlUtil.readXmlToDocument(rpc);
-            final NetconfMessage message = netconfClient.sendMessage(new NetconfMessage(doc));
-
-            final Element rpcReply = message.getDocument().getDocumentElement();
-            final XmlElement resultElement = XmlElement.fromDomElement(rpcReply).getOnlyChildElement();
-            assertEquals("result", resultElement.getName());
-
-            final String namespace = resultElement.getNamespaceAttribute();
-            assertEquals(expectedNamespace, namespace);
-        }
-    }
-
-    @Test
-    public void testCloseSession() throws Exception {
-        try (TestingNetconfClient netconfClient = createSession(TCP_ADDRESS, "1")) {
-
-            // edit config
-            Document rpcReply = netconfClient.sendMessage(this.editConfig)
-                    .getDocument();
-            assertIsOK(rpcReply);
-
-            rpcReply = netconfClient.sendMessage(this.closeSession)
-                    .getDocument();
-
-            assertIsOK(rpcReply);
-        }
-    }
-
-    @Test
-    public void testEditConfig() throws Exception {
-        try (TestingNetconfClient netconfClient = createSession(TCP_ADDRESS, "1")) {
-            // send edit_config.xml
-            final Document rpcReply = netconfClient.sendMessage(this.editConfig).getDocument();
-            assertIsOK(rpcReply);
-        }
-    }
-
-    @Test
-    public void testValidate() throws Exception {
-        try (TestingNetconfClient netconfClient = createSession(TCP_ADDRESS, "1")) {
-            // begin transaction
-            Document rpcReply = netconfClient.sendMessage(getConfigCandidate).getDocument();
-            assertEquals("data", XmlElement.fromDomDocument(rpcReply).getOnlyChildElement().getName());
-
-            // operations empty
-            rpcReply = netconfClient.sendMessage(XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/validate.xml"))
-                    .getDocument();
-            assertIsOK(rpcReply);
-        }
-    }
-
-    private void assertIsOK(final Document rpcReply) throws DocumentedException {
-        assertEquals("rpc-reply", rpcReply.getDocumentElement().getLocalName());
-        assertEquals("ok", XmlElement.fromDomDocument(rpcReply).getOnlyChildElement().getName());
-    }
-
-    private Document assertGetConfigWorks(final TestingNetconfClient netconfClient) throws InterruptedException, ExecutionException, TimeoutException, DocumentedException {
-        return assertGetConfigWorks(netconfClient, getGetConfig());
-    }
-
-    private Document assertGetConfigWorks(final TestingNetconfClient netconfClient, final NetconfMessage getConfigMessage)
-            throws InterruptedException, ExecutionException, TimeoutException, DocumentedException {
-        final NetconfMessage rpcReply = netconfClient.sendMessage(getConfigMessage);
-        assertNotNull(rpcReply);
-        assertEquals("data", XmlElement.fromDomDocument(rpcReply.getDocument()).getOnlyChildElement().getName());
-        return rpcReply.getDocument();
-    }
-
-    @Test
-    public void testGetConfig() throws Exception {
-        try (TestingNetconfClient netconfClient = createSession(TCP_ADDRESS, "1")) {
-            assertGetConfigWorks(netconfClient);
-        }
-    }
-
-    @Test
-    public void createYangTestBasedOnYuma() throws Exception {
-        try (TestingNetconfClient netconfClient = createSession(TCP_ADDRESS, "1")) {
-            Document rpcReply = netconfClient.sendMessage(
-                    XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/editConfig_merge_yang-test.xml"))
-                    .getDocument();
-            assertEquals("rpc-reply", rpcReply.getDocumentElement().getTagName());
-            assertIsOK(rpcReply);
-            assertGetConfigWorks(netconfClient, this.getConfigCandidate);
-            rpcReply = netconfClient.sendMessage(XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/commit.xml"))
-                    .getDocument();
-            assertIsOK(rpcReply);
-
-            final ObjectName on = new ObjectName(
-                    "org.opendaylight.controller:instanceName=impl-dep-instance,type=Module,moduleFactoryName=impl-dep");
-            final Set<ObjectName> cfgBeans = configRegistryClient.lookupConfigBeans();
-            assertEquals(cfgBeans, Sets.newHashSet(on));
-        }
-    }
-
-    private TestingNetconfClient createSession(final InetSocketAddress address, final String expected) throws Exception {
-        final TestingNetconfClient netconfClient = new TestingNetconfClient("test " + address.toString(), clientDispatcher, getClientConfiguration(address, 5000));
-        assertEquals(expected, Long.toString(netconfClient.getSessionId()));
-        return netconfClient;
-    }
-
-    @Test
-    public void testIdRef() throws Exception {
-        final NetconfMessage editId = XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/editConfig_identities.xml");
-        final NetconfMessage commit = XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/commit.xml");
-
-        try (TestingNetconfClient netconfClient = createSession(TCP_ADDRESS, "1")) {
-            assertIsOK(netconfClient.sendMessage(editId).getDocument());
-            assertIsOK(netconfClient.sendMessage(commit).getDocument());
-
-            final NetconfMessage response = netconfClient.sendMessage(getGetConfig());
-
-            assertThat(XmlUtil.toString(response.getDocument()), containsString("<afi xmlns:prefix=\"urn:opendaylight:params:xml:ns:yang:controller:config:test:types\">prefix:test-identity1</afi>"));
-            assertThat(XmlUtil.toString(response.getDocument()), containsString("<afi xmlns:prefix=\"urn:opendaylight:params:xml:ns:yang:controller:config:test:types\">prefix:test-identity2</afi>"));
-            assertThat(XmlUtil.toString(response.getDocument()), containsString("<safi xmlns:prefix=\"urn:opendaylight:params:xml:ns:yang:controller:config:test:types\">prefix:test-identity2</safi>"));
-            assertThat(XmlUtil.toString(response.getDocument()), containsString("<safi xmlns:prefix=\"urn:opendaylight:params:xml:ns:yang:controller:config:test:types\">prefix:test-identity1</safi>"));
-
-        } catch (final Exception e) {
-            fail(Throwables.getStackTraceAsString(e));
-        }
-    }
-
-    @Override
-    protected BindingRuntimeContext getBindingRuntimeContext() {
-        final BindingRuntimeContext ret = super.getBindingRuntimeContext();
-        doReturn(TestIdentity1.class).when(ret).getIdentityClass(TestIdentity1.QNAME);
-        doReturn(TestIdentity2.class).when(ret).getIdentityClass(TestIdentity2.QNAME);
-        return ret;
-    }
-
-    @Test
-    public void testMultipleDependencies() throws Exception {
-        // push first xml, should add parent and d1,d2 dependencies
-        try (TestingNetconfClient netconfClient = createSession(TCP_ADDRESS, "1")) {
-            final Document rpcReply = netconfClient.sendMessage(
-                    XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/editConfig_merge_multiple-deps1.xml"))
-                    .getDocument();
-            assertIsOK(rpcReply);
-            commit(netconfClient);
-        }
-        // verify that parent.getTestingDeps == d1,d2
-        final MultipleDependenciesModuleMXBean parentProxy = configRegistryClient.newMXBeanProxy(
-                configRegistryClient.lookupConfigBean(MultipleDependenciesModuleFactory.NAME, "parent"),
-                MultipleDependenciesModuleMXBean.class);
-        {
-            final List<ObjectName> testingDeps = parentProxy.getTestingDeps();
-            assertEquals(2, testingDeps.size());
-            final Set<String> actualRefs = getServiceReferences(testingDeps);
-            assertEquals(Sets.newHashSet("ref_d1", "ref_d2"), actualRefs);
-        }
-
-        // push second xml, should add d3 to parent's dependencies
-        mergeD3(parentProxy);
-        // push second xml again, to test that d3 is not added again
-        mergeD3(parentProxy);
-    }
-
-    public void mergeD3(final MultipleDependenciesModuleMXBean parentProxy) throws Exception {
-        try (TestingNetconfClient netconfClient = new TestingNetconfClient(
-                "test " + TCP_ADDRESS.toString(), clientDispatcher, getClientConfiguration(TCP_ADDRESS, 5000))) {
-
-            final Document rpcReply = netconfClient.sendMessage(
-                    XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/editConfig_merge_multiple-deps2.xml"))
-                    .getDocument();
-            assertIsOK(rpcReply);
-            commit(netconfClient);
-        }
-        {
-            final List<ObjectName> testingDeps = parentProxy.getTestingDeps();
-            assertEquals(3, testingDeps.size());
-            final Set<String> actualRefs = getServiceReferences(testingDeps);
-            assertEquals(Sets.newHashSet("ref_d1", "ref_d2", "ref_d3"), actualRefs);
-        }
-    }
-
-    public Set<String> getServiceReferences(final List<ObjectName> testingDeps) {
-        return new HashSet<>(Lists.transform(testingDeps, new Function<ObjectName, String>() {
-            @Override
-            public String apply(final ObjectName input) {
-                return ObjectNameUtil.getReferenceName(input);
-            }
-        }));
-    }
-
-    public void commit(final TestingNetconfClient netconfClient) throws Exception {
-        final Document rpcReply;
-        rpcReply = netconfClient.sendMessage(XmlFileLoader.xmlFileToNetconfMessage("netconfMessages/commit.xml"))
-                .getDocument();
-        assertIsOK(rpcReply);
-    }
-}