| /* |
| * Copyright 2016-present 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.area; |
| |
| import org.junit.After; |
| import org.junit.Before; |
| import org.junit.Test; |
| import org.onlab.packet.Ip4Address; |
| import org.onosproject.ospf.controller.OspfInterface; |
| import org.onosproject.ospf.controller.OspfNeighborState; |
| import org.onosproject.ospf.controller.TopologyForDeviceAndLink; |
| import org.onosproject.ospf.controller.impl.OspfNbrImpl; |
| import org.onosproject.ospf.controller.impl.TopologyForDeviceAndLinkImpl; |
| import org.onosproject.ospf.controller.lsdb.LsaWrapperImpl; |
| import org.onosproject.ospf.protocol.lsa.LsaHeader; |
| import org.onosproject.ospf.protocol.lsa.OpaqueLsaHeader; |
| import org.onosproject.ospf.protocol.lsa.types.NetworkLsa; |
| import org.onosproject.ospf.protocol.lsa.types.OpaqueLsa10; |
| import org.onosproject.ospf.protocol.lsa.types.RouterLsa; |
| import org.onosproject.ospf.protocol.util.OspfInterfaceState; |
| import org.onosproject.ospf.protocol.util.OspfParameters; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| import static org.hamcrest.MatcherAssert.assertThat; |
| import static org.hamcrest.Matchers.*; |
| |
| /** |
| * Unit test class for OspfAreaImpl. |
| */ |
| public class OspfAreaImplTest { |
| |
| private OspfAreaImpl ospfArea; |
| private int result; |
| private List<OspfInterface> ospfInterfaces = new ArrayList<>(); |
| private OspfInterfaceImpl ospfInterface1; |
| private OspfInterfaceImpl ospfInterface2; |
| private OspfInterfaceImpl ospfInterface3; |
| private OspfNbrImpl ospfNbr; |
| private OspfNbrImpl ospfNbr1; |
| private NetworkLsa networkLsa; |
| private LsaHeader lsaHeader; |
| private Ip4Address ip4Address = Ip4Address.valueOf("10.10.10.10"); |
| private Ip4Address ip4Address1 = Ip4Address.valueOf("11.11.11.11"); |
| private Ip4Address networkAddress = Ip4Address.valueOf("255.255.255.255"); |
| private TopologyForDeviceAndLink topologyForDeviceAndLink; |
| private RouterLsa routerLsa; |
| private OpaqueLsaHeader opaqueLsaHeader; |
| private OpaqueLsa10 opaqueLsa10; |
| |
| @Before |
| public void setUp() throws Exception { |
| lsaHeader = new LsaHeader(); |
| opaqueLsaHeader = new OpaqueLsaHeader(); |
| opaqueLsaHeader.setAdvertisingRouter(ip4Address); |
| lsaHeader.setAdvertisingRouter(ip4Address); |
| routerLsa = new RouterLsa(lsaHeader); |
| routerLsa.setAdvertisingRouter(ip4Address); |
| opaqueLsa10 = new OpaqueLsa10(opaqueLsaHeader); |
| ospfArea = new OspfAreaImpl(); |
| ospfInterface1 = new OspfInterfaceImpl(); |
| topologyForDeviceAndLink = new TopologyForDeviceAndLinkImpl(); |
| ospfNbr = new OspfNbrImpl(ospfArea, ospfInterface1, ip4Address, ip4Address1, |
| 2, topologyForDeviceAndLink); |
| ospfNbr.setState(OspfNeighborState.EXCHANGE); |
| ospfNbr1 = new OspfNbrImpl(ospfArea, ospfInterface1, ip4Address, ip4Address1, |
| 2, topologyForDeviceAndLink); |
| ospfNbr1.setState(OspfNeighborState.FULL); |
| ospfNbr1.setNeighborId(ip4Address); |
| ospfNbr.setNeighborId(ip4Address); |
| ospfNbr.setIsOpaqueCapable(true); |
| ospfInterface1.addNeighbouringRouter(ospfNbr); |
| ospfInterface1.addNeighbouringRouter(ospfNbr1); |
| ospfInterface2 = new OspfInterfaceImpl(); |
| ospfInterface2.setIpAddress(ip4Address); |
| ospfInterface2.setIpNetworkMask(networkAddress); |
| ospfInterface2.setState(OspfInterfaceState.LOOPBACK); |
| ospfInterface2.addNeighbouringRouter(ospfNbr); |
| ospfInterface2.addNeighbouringRouter(ospfNbr1); |
| ospfInterfaces.add(ospfInterface2); |
| } |
| |
| @After |
| public void tearDown() throws Exception { |
| ospfArea = null; |
| ospfInterfaces = null; |
| lsaHeader = null; |
| networkLsa = null; |
| ospfInterface1 = null; |
| ospfInterface2 = null; |
| ospfInterface3 = null; |
| |
| } |
| |
| |
| /** |
| * Tests hashCode() method. |
| */ |
| @Test |
| public void testHashCode() throws Exception { |
| result = ospfArea.hashCode(); |
| assertThat(result, is(notNullValue())); |
| } |
| |
| /** |
| * Tests routerId() getter method. |
| */ |
| @Test |
| public void testGetRouterId() throws Exception { |
| ospfArea.setRouterId(Ip4Address.valueOf("1.1.1.1")); |
| assertThat(ospfArea.routerId(), is(Ip4Address.valueOf("1.1.1.1"))); |
| } |
| |
| /** |
| * Tests routerId() setter method. |
| */ |
| @Test |
| public void testSetRouterId() throws Exception { |
| ospfArea.setRouterId(Ip4Address.valueOf("1.1.1.1")); |
| assertThat(ospfArea.routerId(), is(Ip4Address.valueOf("1.1.1.1"))); |
| } |
| |
| /** |
| * Tests isOpaqueEnabled() getter method. |
| */ |
| @Test |
| public void testSetisOpaqueEnabled() throws Exception { |
| ospfArea.setIsOpaqueEnabled(true); |
| assertThat(ospfArea.isOpaqueEnabled(), is(true)); |
| } |
| |
| /** |
| * Tests isOpaqueEnabled() setter method. |
| */ |
| @Test |
| public void testIsOpaqueEnabled() throws Exception { |
| ospfArea.setIsOpaqueEnabled(true); |
| assertThat(ospfArea.isOpaqueEnabled(), is(true)); |
| } |
| |
| /** |
| * Tests initializeDb() method. |
| */ |
| @Test |
| public void testInitializeDb() throws Exception { |
| ospfArea.initializeDb(); |
| assertThat(ospfArea, is(notNullValue())); |
| } |
| |
| |
| /** |
| * Tests buildNetworkLsa() method. |
| */ |
| @Test |
| public void testBuildNetworkLsa() throws Exception { |
| ospfInterfaces = new ArrayList(); |
| ospfInterface1 = new OspfInterfaceImpl(); |
| ospfInterface1.setIpAddress(Ip4Address.valueOf("1.1.1.1")); |
| ospfInterfaces.add(ospfInterface1); |
| ospfInterface2 = new OspfInterfaceImpl(); |
| ospfInterface2.setIpAddress(Ip4Address.valueOf("2.2.2.2")); |
| ospfInterfaces.add(ospfInterface2); |
| ospfInterface3 = new OspfInterfaceImpl(); |
| ospfInterface3.setIpAddress(Ip4Address.valueOf("3.3.3.3")); |
| ospfInterfaces.add(ospfInterface3); |
| ospfArea.setOspfInterfaceList(ospfInterfaces); |
| ospfArea.setRouterId(Ip4Address.valueOf("111.111.111.111")); |
| networkLsa = ospfArea.buildNetworkLsa(Ip4Address.valueOf("1.1.1.1"), |
| Ip4Address.valueOf("255.255.255.255")); |
| assertThat(ospfInterfaces.size(), is(3)); |
| assertThat(networkLsa, is(notNullValue())); |
| assertThat(ospfArea, is(notNullValue())); |
| } |
| |
| |
| /** |
| * Tests areaId() getter method. |
| */ |
| @Test |
| public void testGetAreaId() throws Exception { |
| ospfArea.setAreaId(Ip4Address.valueOf("1.1.1.1")); |
| assertThat(ospfArea.areaId(), is(Ip4Address.valueOf("1.1.1.1"))); |
| } |
| |
| /** |
| * Tests areaId() setter method. |
| */ |
| @Test |
| public void testSetAreaId() throws Exception { |
| ospfArea.setAreaId(Ip4Address.valueOf("1.1.1.1")); |
| assertThat(ospfArea.areaId(), is(Ip4Address.valueOf("1.1.1.1"))); |
| } |
| |
| |
| /** |
| * Tests isExternalRoutingCapability() getter method. |
| */ |
| @Test |
| public void testIsExternalRoutingCapability() throws Exception { |
| ospfArea.setExternalRoutingCapability(true); |
| assertThat(ospfArea.isExternalRoutingCapability(), is(true)); |
| } |
| |
| /** |
| * Tests isExternalRoutingCapability() setter method. |
| */ |
| @Test |
| public void testSetExternalRoutingCapability() throws Exception { |
| ospfArea.setExternalRoutingCapability(true); |
| assertThat(ospfArea.isExternalRoutingCapability(), is(true)); |
| } |
| |
| |
| /** |
| * Tests ospfInterfaceList() getter method. |
| */ |
| @Test |
| public void testGetInterfacesLst() throws Exception { |
| ospfInterfaces = new ArrayList(); |
| ospfInterface1 = new OspfInterfaceImpl(); |
| ospfInterface1.setIpAddress(Ip4Address.valueOf("1.1.1.1")); |
| ospfInterfaces.add(ospfInterface1); |
| ospfInterface2 = new OspfInterfaceImpl(); |
| ospfInterface2.setIpAddress(Ip4Address.valueOf("2.2.2.2")); |
| ospfInterfaces.add(ospfInterface2); |
| ospfInterface3 = new OspfInterfaceImpl(); |
| ospfInterface3.setIpAddress(Ip4Address.valueOf("3.3.3.3")); |
| ospfInterfaces.add(ospfInterface3); |
| ospfArea.setOspfInterfaceList(ospfInterfaces); |
| assertThat(ospfInterfaces.size(), is(3)); |
| assertThat(ospfArea.ospfInterfaceList(), is(notNullValue())); |
| } |
| |
| /** |
| * Tests setInterfacesLst() setter method. |
| */ |
| @Test |
| public void testSetInterfacesLst() throws Exception { |
| ospfInterfaces = new ArrayList(); |
| ospfInterface1 = new OspfInterfaceImpl(); |
| ospfInterface1.setIpAddress(Ip4Address.valueOf("1.1.1.1")); |
| ospfInterfaces.add(ospfInterface1); |
| ospfInterface2 = new OspfInterfaceImpl(); |
| ospfInterface2.setIpAddress(Ip4Address.valueOf("2.2.2.2")); |
| ospfInterfaces.add(ospfInterface2); |
| ospfInterface3 = new OspfInterfaceImpl(); |
| ospfInterface3.setIpAddress(Ip4Address.valueOf("3.3.3.3")); |
| ospfInterfaces.add(ospfInterface3); |
| ospfArea.setOspfInterfaceList(ospfInterfaces); |
| assertThat(ospfInterfaces.size(), is(3)); |
| assertThat(ospfArea.ospfInterfaceList(), is(notNullValue())); |
| } |
| |
| |
| /** |
| * Tests getLsaHeaders() method. |
| */ |
| @Test |
| public void testGetLsaHeaders() throws Exception { |
| assertThat(ospfArea.getLsaHeaders(true, true).size(), is(0)); |
| } |
| |
| /** |
| * Tests getLsa() method. |
| */ |
| @Test |
| public void testGetLsa() throws Exception { |
| assertThat(ospfArea.getLsa(1, "1.1.1.1", "1.1.1.1"), is(nullValue())); |
| assertThat(ospfArea.getLsa(10, "1.1.1.1", "1.1.1.1"), is(nullValue())); |
| } |
| |
| /** |
| * Tests lsaLookup() method. |
| */ |
| @Test |
| public void testLsaLookup() throws Exception { |
| assertThat(ospfArea.lsaLookup(new RouterLsa()), is(nullValue())); |
| } |
| |
| /** |
| * Tests isNewerOrSameLsa() method. |
| */ |
| @Test |
| public void testIsNewerOrSameLsa() throws Exception { |
| assertThat(ospfArea.isNewerOrSameLsa(new RouterLsa(), new RouterLsa()), is("same")); |
| } |
| |
| /** |
| * Tests addLsa() method. |
| */ |
| @Test |
| public void testAddLsa() throws Exception { |
| ospfArea.addLsa(new RouterLsa(), new OspfInterfaceImpl()); |
| assertThat(ospfArea, is(notNullValue())); |
| } |
| |
| /** |
| * Tests addLsa() method. |
| */ |
| @Test |
| public void testAddLsa1() throws Exception { |
| ospfArea.addLsa(new RouterLsa(), false, new OspfInterfaceImpl()); |
| assertThat(ospfArea, is(notNullValue())); |
| } |
| |
| /** |
| * Tests addLsaToMaxAgeBin() method. |
| */ |
| @Test |
| public void testAddLsaToMaxAgeBin() throws Exception { |
| ospfArea.addLsaToMaxAgeBin("111", new LsaWrapperImpl()); |
| assertThat(ospfArea, is(notNullValue())); |
| } |
| |
| /** |
| * Tests setDbRouterSequenceNumber() method. |
| */ |
| @Test |
| public void testSetDbRouterSequenceNumber() throws Exception { |
| ospfArea.setDbRouterSequenceNumber(123456); |
| assertThat(ospfArea, is(notNullValue())); |
| } |
| |
| /** |
| * Tests deleteLsa() method. |
| */ |
| @Test |
| public void testDeleteLsa() throws Exception { |
| ospfArea.deleteLsa(new LsaHeader()); |
| assertThat(ospfArea, is(notNullValue())); |
| } |
| |
| /** |
| * Tests removeLsaFromBin() method. |
| */ |
| @Test |
| public void testRemoveLsaFromBin() throws Exception { |
| ospfArea.removeLsaFromBin(new LsaWrapperImpl()); |
| assertThat(ospfArea, is(notNullValue())); |
| } |
| |
| /** |
| * Tests to string method. |
| */ |
| @Test |
| public void testToString() throws Exception { |
| assertThat(ospfArea.toString(), is(notNullValue())); |
| } |
| |
| |
| /** |
| * Tests getLsaKey() method. |
| */ |
| @Test |
| public void testGetLsaKey() throws Exception { |
| lsaHeader = new LsaHeader(); |
| lsaHeader.setAdvertisingRouter(Ip4Address.valueOf("1.1.1.1")); |
| assertThat(ospfArea.getLsaKey(lsaHeader), is(notNullValue())); |
| } |
| |
| |
| /** |
| * Tests options() getter method. |
| */ |
| @Test |
| public void testGetOptions() throws Exception { |
| ospfArea.setOptions(2); |
| assertThat(ospfArea.options(), is(2)); |
| } |
| |
| /** |
| * Tests options() setter method. |
| */ |
| @Test |
| public void testSetOptions() throws Exception { |
| ospfArea.setOptions(2); |
| assertThat(ospfArea.options(), is(2)); |
| } |
| |
| /** |
| * Tests isOpaqueEnabled() method. |
| */ |
| @Test |
| public void testGetOpaqueEnabledOptions() throws Exception { |
| ospfArea.setIsOpaqueEnabled(true); |
| assertThat(ospfArea.isOpaqueEnabled(), is(true)); |
| } |
| |
| /** |
| * Tests database() method. |
| */ |
| @Test |
| public void testGetDatabase() throws Exception { |
| assertThat(ospfArea.database(), is(notNullValue())); |
| } |
| |
| /** |
| * Tests opaqueEnabledOptions() method. |
| */ |
| @Test |
| public void testOpaqueEnabledOptionsa() throws Exception { |
| assertThat(ospfArea.opaqueEnabledOptions(), is(66)); |
| } |
| |
| /** |
| * Tests noNeighborInLsaExchangeProcess() method. |
| */ |
| @Test |
| public void testNoNeighborInLsaExchangeProcess() throws Exception { |
| ospfArea.setOspfInterfaceList(ospfInterfaces); |
| ospfArea.noNeighborInLsaExchangeProcess(); |
| assertThat(ospfArea, is(notNullValue())); |
| } |
| |
| /** |
| * Tests getNeighborsInFullState() method. |
| */ |
| @Test |
| public void testGetNeighborsInFullState() throws Exception { |
| ospfArea.getNeighborsInFullState(ospfInterface1); |
| assertThat(ospfArea, is(notNullValue())); |
| } |
| |
| /** |
| * Tests addToOtherNeighborLsaTxList() method. |
| */ |
| @Test |
| public void testAddToOtherNeighborLsaTxList() throws Exception { |
| ospfArea.setOspfInterfaceList(ospfInterfaces); |
| ospfArea.addToOtherNeighborLsaTxList(routerLsa); |
| assertThat(ospfArea, is(notNullValue())); |
| |
| opaqueLsa10.setLsType(OspfParameters.LINK_LOCAL_OPAQUE_LSA); |
| ospfArea.addToOtherNeighborLsaTxList(opaqueLsa10); |
| assertThat(ospfArea, is(notNullValue())); |
| } |
| |
| /** |
| * Tests buildRouterLsa() method. |
| */ |
| @Test |
| public void testBuildRouterLsa() throws Exception { |
| ospfArea.setRouterId(ip4Address); |
| ospfArea.setOspfInterfaceList(ospfInterfaces); |
| ospfInterface1.setState(OspfInterfaceState.POINT2POINT); |
| ospfInterface1.setIpAddress(ip4Address); |
| ospfInterface1.setIpNetworkMask(networkAddress); |
| ospfInterfaces.add(ospfInterface1); |
| ospfArea.buildRouterLsa(ospfInterface1); |
| ospfArea.setOspfInterfaceList(ospfInterfaces); |
| assertThat(ospfArea, is(notNullValue())); |
| |
| } |
| } |