ONOS-2740,ONOS-2741,from ONOS-3032 - to ONOS 3071 , OSPF Protocol Implementation Unit Tests
Change-Id: I18972a0712fbd63798f92da7b4c48381b4a38519
diff --git a/protocols/ospf/ctl/src/test/java/org/onosproject/ospf/controller/impl/TopologyForDeviceAndLinkImplTest.java b/protocols/ospf/ctl/src/test/java/org/onosproject/ospf/controller/impl/TopologyForDeviceAndLinkImplTest.java
new file mode 100755
index 0000000..e924297
--- /dev/null
+++ b/protocols/ospf/ctl/src/test/java/org/onosproject/ospf/controller/impl/TopologyForDeviceAndLinkImplTest.java
@@ -0,0 +1,265 @@
+/*
+* Copyright 2016 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.ospf.controller.impl;
+
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.buffer.ChannelBuffers;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onlab.packet.Ip4Address;
+import org.onosproject.ospf.controller.DeviceInformation;
+import org.onosproject.ospf.controller.OspfLinkTed;
+import org.onosproject.ospf.controller.OspfLsa;
+import org.onosproject.ospf.controller.area.OspfAreaImpl;
+import org.onosproject.ospf.controller.area.OspfInterfaceImpl;
+import org.onosproject.ospf.protocol.lsa.OpaqueLsaHeader;
+import org.onosproject.ospf.protocol.lsa.TlvHeader;
+import org.onosproject.ospf.protocol.lsa.subtypes.OspfLsaLink;
+import org.onosproject.ospf.protocol.lsa.tlvtypes.LinkTlv;
+import org.onosproject.ospf.protocol.lsa.types.OpaqueLsa10;
+import org.onosproject.ospf.protocol.lsa.types.RouterLsa;
+
+import java.util.List;
+import java.util.Map;
+
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.notNullValue;
+
+/**
+ * Unit test class for TopologyForDeviceAndLinkImpl.
+ */
+public class TopologyForDeviceAndLinkImplTest {
+ private final byte[] packet = {0, 9, 0, 4, 0, 0, 0, 1,
+ 0, 9, 0, 4, 0, 0, 0, 1,
+ 0, 1, 0, 4, 0, 0, 0, 1,
+ 0, 2, 0, 4, 0, 0, 0, 1,
+ 0, 3, 0, 4, 0, 0, 0, 1,
+ 0, 4, 0, 4, 0, 0, 0, 1,
+ 0, 6, 0, 4, 0, 0, 0, 1,
+ 0, 7, 0, 4, 0, 0, 0, 1,
+ 0, 8, 0, 4, 0, 0, 0, 1,
+ };
+ private TopologyForDeviceAndLinkImpl topologyForDeviceAndLink;
+ private Map result;
+ private LinkTlv linkTlv;
+ private TlvHeader header;
+ private ChannelBuffer channelBuffer;
+
+ @Before
+ public void setUp() throws Exception {
+ topologyForDeviceAndLink = new TopologyForDeviceAndLinkImpl();
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ topologyForDeviceAndLink = null;
+ }
+
+ /**
+ * Tests deviceInformationMap() method.
+ */
+ @Test
+ public void testDeviceInformationMap() throws Exception {
+ result = topologyForDeviceAndLink.deviceInformationMap();
+ assertThat(result.size(), is(0));
+ }
+
+ /**
+ * Tests setDeviceInformationMap() method.
+ */
+ @Test
+ public void testSetDeviceInformationMap() throws Exception {
+ topologyForDeviceAndLink.setDeviceInformationMap("1.1.1.1", new DeviceInformationImpl());
+ result = topologyForDeviceAndLink.deviceInformationMap();
+ assertThat(result.size(), is(1));
+ }
+
+ /**
+ * Tests deviceInformation() method.
+ */
+ @Test
+ public void testDeviceInformation() throws Exception {
+ topologyForDeviceAndLink.setDeviceInformationMap("1.1.1.1", new DeviceInformationImpl());
+ DeviceInformation deviceInformation = topologyForDeviceAndLink.deviceInformation("1.1.1.1");
+ assertThat(deviceInformation, is(notNullValue()));
+ }
+
+ /**
+ * Tests removeDeviceInformationMap() method.
+ */
+ @Test
+ public void testRemoveDeviceInformationMap() throws Exception {
+ topologyForDeviceAndLink.setDeviceInformationMap("1.1.1.1", new DeviceInformationImpl());
+ topologyForDeviceAndLink.deviceInformation("1.1.1.1");
+ result = topologyForDeviceAndLink.deviceInformationMap();
+ topologyForDeviceAndLink.removeDeviceInformationMap("1.1.1.1");
+ assertThat(result.size(), is(0));
+ }
+
+ /**
+ * Tests linkInformationMap() method.
+ */
+ @Test
+ public void testLinkInformationMap() throws Exception {
+ result = topologyForDeviceAndLink.linkInformationMap();
+ assertThat(result.size(), is(0));
+ }
+
+ /**
+ * Tests setLinkInformationMap() method.
+ */
+ @Test
+ public void testSetLinkInformationMap() throws Exception {
+ topologyForDeviceAndLink.setLinkInformationMap("1.1.1.1", new LinkInformationImpl());
+ result = topologyForDeviceAndLink.linkInformationMap();
+ assertThat(result.size(), is(1));
+ }
+
+ /**
+ * Tests removeLinkInformationMap() method.
+ */
+ @Test
+ public void testRemoveLinkInformationMap() throws Exception {
+ topologyForDeviceAndLink.setLinkInformationMap("1.1.1.1", new LinkInformationImpl());
+ topologyForDeviceAndLink.removeLinkInformationMap("1.1.1.1");
+ result = topologyForDeviceAndLink.linkInformationMap();
+ assertThat(result.size(), is(0));
+ }
+
+ /**
+ * Tests getOspfLinkTedHashMap() method.
+ */
+ @Test
+ public void testGetOspfLinkTedHashMap() throws Exception {
+ OspfLinkTed ospfLinkTed = topologyForDeviceAndLink.getOspfLinkTedHashMap("1.1.1.1");
+ assertThat(ospfLinkTed, is(nullValue()));
+ }
+
+ /**
+ * Tests addLocalDevice() method.
+ */
+ @Test
+ public void testAddLocalDevice() throws Exception {
+ OspfAreaImpl ospfArea = new OspfAreaImpl();
+ ospfArea.setRouterId(Ip4Address.valueOf("5.5.5.5"));
+ topologyForDeviceAndLink.addLocalDevice(createOspfLsa(), new OspfInterfaceImpl(), ospfArea);
+ topologyForDeviceAndLink.addLocalDevice(createOspfLsa1(), new OspfInterfaceImpl(), ospfArea);
+ assertThat(topologyForDeviceAndLink, is(notNullValue()));
+ }
+
+ /**
+ * Tests addLocalLink() method.
+ */
+ @Test
+ public void testAddLocalLink() throws Exception {
+ Ip4Address linkData = Ip4Address.valueOf("1.1.1.1");
+ Ip4Address linkSrc = Ip4Address.valueOf("2.2.2.2");
+ Ip4Address linkDest = Ip4Address.valueOf("3.3.3.3");
+ boolean opaqueEnabled = true;
+ boolean linkSrcIdNotRouterId = true;
+ topologyForDeviceAndLink.addLocalLink("10.10.10.10", linkData, linkSrc,
+ linkDest, opaqueEnabled, linkSrcIdNotRouterId);
+ assertThat(topologyForDeviceAndLink, is(notNullValue()));
+ }
+
+ /**
+ * Tests removeLinks() method.
+ */
+ @Test
+ public void testRemoveLinks() throws Exception {
+ Ip4Address linkData = Ip4Address.valueOf("1.1.1.1");
+ Ip4Address linkSrc = Ip4Address.valueOf("2.2.2.2");
+ Ip4Address linkDest = Ip4Address.valueOf("3.3.3.3");
+ boolean opaqueEnabled = true;
+ boolean linkSrcIdNotRouterId = true;
+ topologyForDeviceAndLink.addLocalLink("10.10.10.10", linkData, linkSrc,
+ linkDest, opaqueEnabled, linkSrcIdNotRouterId);
+ topologyForDeviceAndLink.removeLinks(Ip4Address.valueOf("10.10.10.10"));
+ assertThat(topologyForDeviceAndLink, is(notNullValue()));
+ }
+
+ /**
+ * Tests updateLinkInformation() method.
+ */
+ @Test
+ public void testUpdateLinkInformation() throws Exception {
+ OspfAreaImpl ospfArea = new OspfAreaImpl();
+ ospfArea.setRouterId(Ip4Address.valueOf("5.5.5.5"));
+ topologyForDeviceAndLink.updateLinkInformation(createOspfLsa(), ospfArea);
+ assertThat(topologyForDeviceAndLink, is(notNullValue()));
+ }
+
+ /**
+ * Tests getDeleteRouterInformation() method.
+ */
+ @Test
+ public void testGetDeleteRouterInformation() throws Exception {
+ OspfAreaImpl ospfArea = new OspfAreaImpl();
+ ospfArea.setRouterId(Ip4Address.valueOf("5.5.5.5"));
+ topologyForDeviceAndLink.updateLinkInformation(createOspfLsa(), ospfArea);
+ List list = topologyForDeviceAndLink.getDeleteRouterInformation(createOspfLsa(), ospfArea);
+ assertThat(list, is(notNullValue()));
+ }
+
+ /**
+ * Utility for test methods.
+ */
+ private OspfLsa createOspfLsa() {
+ RouterLsa routerLsa = new RouterLsa();
+ routerLsa.setLsType(1);
+ routerLsa.setAdvertisingRouter(Ip4Address.valueOf("6.6.6.6"));
+ OspfLsaLink ospfLsaLink = new OspfLsaLink();
+ ospfLsaLink.setLinkData("192.168.7.77");
+ ospfLsaLink.setLinkId("9.9.9.9");
+ ospfLsaLink.setLinkType(1);
+ OspfLsaLink ospfLsaLink0 = new OspfLsaLink();
+ ospfLsaLink0.setLinkData("7.7.7.7");
+ ospfLsaLink0.setLinkId("7.7.7.7");
+ ospfLsaLink0.setLinkType(2);
+ OspfLsaLink ospfLsaLink120 = new OspfLsaLink();
+ ospfLsaLink120.setLinkData("192.168.7.77");
+ ospfLsaLink120.setLinkId("1.1.1.1");
+ ospfLsaLink120.setLinkType(1);
+ OspfLsaLink lsaLink = new OspfLsaLink();
+ lsaLink.setLinkData("192.168.7.77");
+ lsaLink.setLinkId("14.14.14.14");
+ lsaLink.setLinkType(2);
+ routerLsa.addRouterLink(lsaLink);
+ routerLsa.addRouterLink(ospfLsaLink);
+ routerLsa.addRouterLink(ospfLsaLink0);
+ routerLsa.addRouterLink(ospfLsaLink120);
+ return routerLsa;
+ }
+
+ /**
+ * Utility for test methods.
+ */
+ private OspfLsa createOspfLsa1() throws Exception {
+ OpaqueLsa10 opaqueLsa10 = new OpaqueLsa10(new OpaqueLsaHeader());
+ opaqueLsa10.setLsType(10);
+ header = new TlvHeader();
+ header.setTlvLength(8);
+ header.setTlvType(9);
+ linkTlv = new LinkTlv(header);
+ channelBuffer = ChannelBuffers.copiedBuffer(packet);
+ linkTlv.readFrom(channelBuffer);
+ opaqueLsa10.addValue(linkTlv);
+ return opaqueLsa10;
+ }
+}