aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/drivers/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/drivers/src/test')
-rw-r--r--framework/src/onos/drivers/src/test/java/org/onosproject/driver/netconf/XmlConfigParserTest.java80
-rw-r--r--framework/src/onos/drivers/src/test/resources/org/onosproject/driver/netconf/testConfig.xml60
2 files changed, 140 insertions, 0 deletions
diff --git a/framework/src/onos/drivers/src/test/java/org/onosproject/driver/netconf/XmlConfigParserTest.java b/framework/src/onos/drivers/src/test/java/org/onosproject/driver/netconf/XmlConfigParserTest.java
new file mode 100644
index 00000000..d8b695c3
--- /dev/null
+++ b/framework/src/onos/drivers/src/test/java/org/onosproject/driver/netconf/XmlConfigParserTest.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.driver.netconf;
+
+import org.junit.Test;
+import org.onlab.packet.IpAddress;
+import org.onosproject.net.behaviour.ControllerInfo;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import static org.junit.Assert.assertTrue;
+import static org.onosproject.driver.netconf.XmlConfigParser.*;
+
+//import static org.junit.Assert.*;
+
+/**
+ * Test the XML document Parsing for netconf configuration.
+ */
+public class XmlConfigParserTest {
+
+
+ @Test
+ public void basics() throws IOException {
+ InputStream stream = getClass().getResourceAsStream("testConfig.xml");
+ List<ControllerInfo> controllers = parseStreamControllers(loadXml(stream));
+ assertTrue(controllers.get(0).equals(new ControllerInfo(
+ IpAddress.valueOf("10.128.12.1"), 6653, "tcp")));
+ assertTrue(controllers.get(1).equals(new ControllerInfo(
+ IpAddress.valueOf("10.128.12.2"), 6654, "tcp")));
+
+ }
+
+ @Test
+ public void switchId() {
+ InputStream stream = getClass().getResourceAsStream("testConfig.xml");
+ String switchId = parseSwitchId(loadXml(stream));
+ assertTrue(switchId.equals("ofc-bridge"));
+ }
+
+ @Test
+ public void capableSwitchId() {
+ InputStream stream = getClass().getResourceAsStream("testConfig.xml");
+ String capableSwitchId = parseCapableSwitchId(loadXml(stream));
+ assertTrue(capableSwitchId.equals("openvswitch"));
+ }
+
+ @Test
+ public void controllersConfig() {
+ InputStream streamOrig = getClass().getResourceAsStream("testConfig.xml");
+ InputStream streamCFG = XmlConfigParser.class
+ .getResourceAsStream("controllers.xml");
+ String config = createControllersConfig(loadXml(streamCFG),
+ loadXml(streamOrig), "running", "merge",
+ "create", new ArrayList<>(Arrays.asList(
+ new ControllerInfo(IpAddress.valueOf("192.168.1.1"),
+ 5000, "tcp"))));
+ assertTrue(config.contains("192.168.1.1"));
+ assertTrue(config.contains("tcp"));
+ assertTrue(config.contains("5000"));
+
+ }
+} \ No newline at end of file
diff --git a/framework/src/onos/drivers/src/test/resources/org/onosproject/driver/netconf/testConfig.xml b/framework/src/onos/drivers/src/test/resources/org/onosproject/driver/netconf/testConfig.xml
new file mode 100644
index 00000000..88d1a3a3
--- /dev/null
+++ b/framework/src/onos/drivers/src/test/resources/org/onosproject/driver/netconf/testConfig.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2015 Open Networking Laboratory
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="7">
+ <data>
+ <capable-switch xmlns="urn:onf:config:yang">
+ <id>openvswitch</id>
+ <resources>
+ <port>
+ <name>ofc-bridge</name>
+ <requested-number>666</requested-number>
+ <configuration>
+ <admin-state>down</admin-state>
+ <no-receive>false</no-receive>
+ <no-forward>false</no-forward>
+ <no-packet-in>false</no-packet-in>
+ </configuration>
+ </port>
+ </resources>
+ <logical-switches>
+ <switch>
+ <id>ofc-bridge</id>
+ <datapath-id>00:01:02:03:04:05:06:07</datapath-id>
+ <lost-connection-behavior>failSecureMode</lost-connection-behavior>
+ <controllers>
+ <controller>
+ <id>(null)</id>
+ <ip-address>10.128.12.1</ip-address>
+ <port>6653</port>
+ <protocol>tcp</protocol>
+ </controller>
+ <controller>
+ <id>(null)</id>
+ <ip-address>10.128.12.2</ip-address>
+ <port>6654</port>
+ <protocol>tcp</protocol>
+ </controller>
+ </controllers>
+ <resources>
+ <port>ofc-bridge</port>
+ </resources>
+ </switch>
+ </logical-switches>
+ </capable-switch>
+ </data>
+</rpc-reply> \ No newline at end of file