blob: 438357bd8c91a55fff473053bc1672689571898f [file] [log] [blame]
/*
* 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.easymock.EasyMock;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.buffer.HeapChannelBufferFactory;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelConfig;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelStateEvent;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.onlab.packet.Ip4Address;
import org.onosproject.ospf.controller.OspfAreaAddressRange;
import org.onosproject.ospf.controller.OspfInterface;
import org.onosproject.ospf.controller.OspfLsaType;
import org.onosproject.ospf.controller.OspfMessage;
import org.onosproject.ospf.controller.OspfNbr;
import org.onosproject.ospf.controller.OspfNeighborState;
import org.onosproject.ospf.controller.OspfProcess;
import org.onosproject.ospf.controller.TopologyForDeviceAndLink;
import org.onosproject.ospf.controller.impl.Controller;
import org.onosproject.ospf.controller.impl.OspfInterfaceChannelHandler;
import org.onosproject.ospf.controller.impl.OspfLinkTedImpl;
import org.onosproject.ospf.controller.impl.OspfNbrImpl;
import org.onosproject.ospf.controller.impl.OspfRouterImpl;
import org.onosproject.ospf.controller.impl.TopologyForDeviceAndLinkImpl;
import org.onosproject.ospf.controller.util.OspfEligibleRouter;
import org.onosproject.ospf.controller.util.OspfInterfaceType;
import org.onosproject.ospf.exceptions.OspfParseException;
import org.onosproject.ospf.protocol.lsa.LsaHeader;
import org.onosproject.ospf.protocol.lsa.OpaqueLsaHeader;
import org.onosproject.ospf.protocol.lsa.TlvHeader;
import org.onosproject.ospf.protocol.lsa.tlvtypes.RouterTlv;
import org.onosproject.ospf.protocol.lsa.types.OpaqueLsa10;
import org.onosproject.ospf.protocol.lsa.types.RouterLsa;
import org.onosproject.ospf.protocol.ospfpacket.subtype.LsRequestPacket;
import org.onosproject.ospf.protocol.ospfpacket.types.DdPacket;
import org.onosproject.ospf.protocol.ospfpacket.types.HelloPacket;
import org.onosproject.ospf.protocol.ospfpacket.types.LsAcknowledge;
import org.onosproject.ospf.protocol.ospfpacket.types.LsRequest;
import org.onosproject.ospf.protocol.ospfpacket.types.LsUpdate;
import org.onosproject.ospf.protocol.util.ChecksumCalculator;
import org.onosproject.ospf.protocol.util.OspfInterfaceState;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;
/**
* Unit test class for OspfInterfaceImpl.
*/
public class OspfInterfaceImplTest {
private List<OspfAreaAddressRange> addressRanges = new ArrayList();
private List<OspfInterface> ospfInterfaces = new ArrayList();
private OspfInterfaceImpl ospfInterface;
private OspfNbrImpl ospfNbr;
private OpaqueLsaHeader opaqueLsaHeader;
private int result;
private OspfAreaImpl ospfArea;
private HashMap<String, OspfNbr> ospfNbrHashMap;
private TopologyForDeviceAndLink topologyForDeviceAndLink;
private Channel channel;
private ChannelHandlerContext channelHandlerContext;
private ChannelStateEvent channelStateEvent;
private HelloPacket helloPacket;
private DdPacket ddPacket;
private ChecksumCalculator checksumCalculator;
private byte[] byteArray;
private byte[] checkArray;
private OspfInterfaceChannelHandler ospfInterfaceChannelHandler;
private LsRequest lsRequest;
private ChannelBuffer buf;
private LsUpdate lsUpdate;
private LsAcknowledge lsAck;
private Controller controller;
private List<OspfProcess> ospfProcesses = new ArrayList();
private OspfProcess ospfProcess;
private OspfEligibleRouter ospfEligibleRouter;
@Before
public void setUp() throws Exception {
ospfProcess = new OspfProcessImpl();
ospfProcesses.add(ospfProcess);
ospfInterface = new OspfInterfaceImpl();
topologyForDeviceAndLink = new TopologyForDeviceAndLinkImpl();
channel = EasyMock.createMock(Channel.class);
ospfArea = createOspfArea();
ospfInterface = createOspfInterface();
ospfNbrHashMap = new HashMap();
topologyForDeviceAndLink = new TopologyForDeviceAndLinkImpl();
ospfNbr = new OspfNbrImpl(ospfArea, ospfInterface, Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("2.2.2.2"), 2,
topologyForDeviceAndLink);
ospfNbr.setNeighborId(Ip4Address.valueOf("10.10.10.10"));
ospfNbr.setRouterPriority(0);
ospfNbr.setNeighborDr(Ip4Address.valueOf("13.13.13.13"));
ospfInterface.addNeighbouringRouter(ospfNbr);
controller = new Controller();
ospfInterfaceChannelHandler = new OspfInterfaceChannelHandler(controller, ospfProcesses);
}
@After
public void tearDown() throws Exception {
ospfInterface = null;
ospfNbr = null;
opaqueLsaHeader = null;
ospfNbrHashMap = null;
}
/**
* Tests state() getter method.
*/
@Test
public void testGetState() throws Exception {
ospfInterface.setState(OspfInterfaceState.DROTHER);
assertThat(ospfInterface.state(), is(OspfInterfaceState.DROTHER));
}
/**
* Tests state() setter method.
*/
@Test
public void testSetState() throws Exception {
ospfInterface.setState(OspfInterfaceState.DROTHER);
assertThat(ospfInterface.state(), is(OspfInterfaceState.DROTHER));
}
/**
* Tests linkStateHeaders() method.
*/
@Test
public void testGetLinkStateHeaders() throws Exception {
assertThat(ospfInterface.linkStateHeaders().size(), is(0));
}
/**
* Tests ipNetworkMask() getter method.
*/
@Test
public void testGetIpNetworkMask() throws Exception {
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("1.1.1.1"));
assertThat(ospfInterface.ipNetworkMask(), is(Ip4Address.valueOf("1.1.1.1")));
}
/**
* Tests ipNetworkMask() setter method.
*/
@Test
public void testSetIpNetworkMask() throws Exception {
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("1.1.1.1"));
assertThat(ospfInterface.ipNetworkMask(), is(Ip4Address.valueOf("1.1.1.1")));
}
/**
* Tests addNeighbouringRouter() method.
*/
@Test
public void testAddNeighbouringRouter() throws Exception {
ospfNbr = new OspfNbrImpl(new OspfAreaImpl(), new OspfInterfaceImpl(),
Ip4Address.valueOf("1.1.1.1"), Ip4Address.valueOf("2.2.2.2"), 2,
topologyForDeviceAndLink);
ospfNbr.setNeighborId(Ip4Address.valueOf("111.111.111.111"));
ospfInterface.addNeighbouringRouter(ospfNbr);
assertThat(ospfInterface, is(notNullValue()));
}
/**
* Tests neighbouringRouter() method.
*/
@Test
public void testGetNeighbouringRouter() throws Exception {
ospfNbr = new OspfNbrImpl(new OspfAreaImpl(), new OspfInterfaceImpl(),
Ip4Address.valueOf("1.1.1.1"), Ip4Address.valueOf("2.2.2.2"), 2,
topologyForDeviceAndLink);
ospfNbr.setNeighborId(Ip4Address.valueOf("111.111.111.111"));
ospfInterface.addNeighbouringRouter(ospfNbr);
assertThat(ospfInterface.neighbouringRouter("111.111.111.111"), is(notNullValue()));
}
/**
* Tests addLsaHeaderForDelayAck() method.
*/
@Test
public void testAddLsaHeaderForDelayAck() throws Exception {
opaqueLsaHeader = new OpaqueLsaHeader();
opaqueLsaHeader.setLsType(10);
ospfInterface.addLsaHeaderForDelayAck(opaqueLsaHeader);
assertThat(ospfInterface, is(notNullValue()));
}
/**
* Tests removeLsaFromNeighborMap() method.
*/
@Test
public void testRemoveLsaFromNeighborMap() throws Exception {
ospfInterface.removeLsaFromNeighborMap("lsa10");
assertThat(ospfInterface, is(notNullValue()));
}
/**
* Tests isNeighborInList() method.
*/
@Test
public void testIsNeighborinList() throws Exception {
ospfNbr = new OspfNbrImpl(new OspfAreaImpl(), new OspfInterfaceImpl(),
Ip4Address.valueOf("1.1.1.1"), Ip4Address.valueOf("2.2.2.2"), 2,
topologyForDeviceAndLink);
ospfNbr.setNeighborId(Ip4Address.valueOf("111.111.111.111"));
ospfInterface.addNeighbouringRouter(ospfNbr);
assertThat(ospfInterface.isNeighborInList("111.111.111.111"), is(notNullValue()));
}
/**
* Tests listOfNeighbors() getter method.
*/
@Test
public void testGetListOfNeighbors() throws Exception {
ospfNbrHashMap = new HashMap();
ospfNbr = new OspfNbrImpl(new OspfAreaImpl(), new OspfInterfaceImpl(),
Ip4Address.valueOf("1.1.1.1"), Ip4Address.valueOf("2.2.2.2"), 2,
topologyForDeviceAndLink);
ospfNbr.setNeighborId(Ip4Address.valueOf("111.111.111.111"));
ospfNbrHashMap.put("111.111.111.111", ospfNbr);
ospfInterface.setListOfNeighbors(ospfNbrHashMap);
assertThat(ospfInterface.listOfNeighbors().size(), is(1));
}
/**
* Tests listOfNeighbors() setter method.
*/
@Test
public void testSetListOfNeighbors() throws Exception {
ospfNbrHashMap = new HashMap();
ospfNbr = new OspfNbrImpl(new OspfAreaImpl(), new OspfInterfaceImpl(),
Ip4Address.valueOf("1.1.1.1"), Ip4Address.valueOf("2.2.2.2"), 2,
topologyForDeviceAndLink);
ospfNbr.setNeighborId(Ip4Address.valueOf("111.111.111.111"));
ospfNbrHashMap.put("111.111.111.111", ospfNbr);
ospfInterface.setListOfNeighbors(ospfNbrHashMap);
assertThat(ospfInterface.listOfNeighbors().size(), is(1));
}
/**
* Tests ipAddress() getter method.
*/
@Test
public void testGetIpAddress() throws Exception {
ospfInterface.setIpAddress(Ip4Address.valueOf("1.1.1.1"));
assertThat(ospfInterface.ipAddress(), is(Ip4Address.valueOf("1.1.1.1")));
}
/**
* Tests ipAddress() getter method.
*/
@Test
public void testSetIpAddress() throws Exception {
ospfInterface.setIpAddress(Ip4Address.valueOf("1.1.1.1"));
assertThat(ospfInterface.ipAddress(), is(Ip4Address.valueOf("1.1.1.1")));
}
/**
* Tests routerPriority() getter method.
*/
@Test
public void testGetRouterPriority() throws Exception {
ospfInterface.setRouterPriority(1);
Assert.assertEquals(1, ospfInterface.routerPriority());
}
/**
* Tests routerPriority() setter method.
*/
@Test
public void testSetRouterPriority() throws Exception {
ospfInterface.setRouterPriority(1);
assertThat(ospfInterface.routerPriority(), is(1));
}
/**
* Tests helloIntervalTime() getter method.
*/
@Test
public void testGetHelloIntervalTime() throws Exception {
ospfInterface.setHelloIntervalTime(10);
assertThat(ospfInterface.helloIntervalTime(), is(10));
}
/**
* Tests helloIntervalTime() setter method.
*/
@Test
public void testSetHelloIntervalTime() throws Exception {
ospfInterface.setHelloIntervalTime(10);
assertThat(ospfInterface.helloIntervalTime(), is(10));
}
/**
* Tests routerDeadIntervalTime() getter method.
*/
@Test
public void testGetRouterDeadIntervalTime() throws Exception {
ospfInterface.setRouterDeadIntervalTime(10);
assertThat(ospfInterface.routerDeadIntervalTime(), is(10));
}
/**
* Tests routerDeadIntervalTime() setter method.
*/
@Test
public void testSetRouterDeadIntervalTime() throws Exception {
ospfInterface.setRouterDeadIntervalTime(10);
assertThat(ospfInterface.routerDeadIntervalTime(), is(10));
}
/**
* Tests interfaceType() getter method.
*/
@Test
public void testGetInterfaceType() throws Exception {
ospfInterface.setInterfaceType(1);
assertThat(ospfInterface.interfaceType(), is(1));
}
/**
* Tests interfaceType() setter method.
*/
@Test
public void testSetInterfaceType() throws Exception {
ospfInterface.setInterfaceType(1);
assertThat(ospfInterface.interfaceType(), is(1));
}
/**
* Tests mtu() getter method.
*/
@Test
public void testGetMtu() throws Exception {
ospfInterface.setMtu(100);
assertThat(ospfInterface.mtu(), is(100));
}
/**
* Tests mtu() setter method.
*/
@Test
public void testSetMtu() throws Exception {
ospfInterface.setMtu(100);
assertThat(ospfInterface.mtu(), is(100));
}
/**
* Tests reTransmitInterval() getter method.
*/
@Test
public void testGetReTransmitInterval() throws Exception {
ospfInterface.setReTransmitInterval(100);
assertThat(ospfInterface.reTransmitInterval(), is(100));
}
/**
* Tests reTransmitInterval() setter method.
*/
@Test
public void testSetReTransmitInterval() throws Exception {
ospfInterface.setReTransmitInterval(100);
assertThat(ospfInterface.reTransmitInterval(), is(100));
}
/**
* Tests dr() getter method.
*/
@Test
public void testGetDr() throws Exception {
ospfInterface.setDr(Ip4Address.valueOf("1.1.1.1"));
assertThat(ospfInterface.dr(), is(Ip4Address.valueOf("1.1.1.1")));
}
/**
* Tests dr() setter method.
*/
@Test
public void testSetDr() throws Exception {
ospfInterface.setDr(Ip4Address.valueOf("1.1.1.1"));
assertThat(ospfInterface.dr(), is(Ip4Address.valueOf("1.1.1.1")));
}
/**
* Tests bdr() getter method.
*/
@Test
public void testGetBdr() throws Exception {
ospfInterface.setBdr(Ip4Address.valueOf("1.1.1.1"));
assertThat(ospfInterface.bdr(), is(Ip4Address.valueOf("1.1.1.1")));
}
/**
* Tests bdr() setter method.
*/
@Test
public void testSetBdr() throws Exception {
ospfInterface.setBdr(Ip4Address.valueOf("1.1.1.1"));
assertThat(ospfInterface.bdr(), is(Ip4Address.valueOf("1.1.1.1")));
}
/**
* Tests equals() method.
*/
@Test
public void testEquals() throws Exception {
assertThat(ospfInterface.equals(new OspfInterfaceImpl()), is(false));
}
/**
* Tests hashCode() method.
*/
@Test
public void testHashCode() throws Exception {
result = ospfInterface.hashCode();
assertThat(result, is(notNullValue()));
}
/**
* Tests to string method.
*/
@Test
public void testToString() throws Exception {
assertThat(ospfInterface.toString(), is(notNullValue()));
}
/**
* Tests to interfaceUp() method.
*/
@Test(expected = Exception.class)
public void testInterfaceUp() throws Exception {
ospfInterface.setInterfaceType(OspfInterfaceType.POINT_TO_POINT.value());
ospfInterface.interfaceUp();
assertThat(ospfInterface, is(notNullValue()));
}
/**
* Tests to interfaceUp() method.
*/
@Test(expected = Exception.class)
public void testInterfaceUp1() throws Exception {
ospfInterface.setInterfaceType(OspfInterfaceType.BROADCAST.value());
ospfInterface.interfaceUp();
assertThat(ospfInterface, is(notNullValue()));
}
/**
* Tests to interfaceUp() method.
*/
@Test(expected = Exception.class)
public void testInterfaceUp2() throws Exception {
ospfInterface.setRouterPriority(1);
ospfInterface.setInterfaceType(OspfInterfaceType.BROADCAST.value());
ospfInterface.interfaceUp();
assertThat(ospfInterface, is(notNullValue()));
}
/**
* Tests to backupSeen() method.
*/
@Test
public void testBackupSeen() throws Exception {
ospfInterface.setOspfArea(ospfArea);
ospfInterface.setState(OspfInterfaceState.WAITING);
ospfInterface.backupSeen(channel);
assertThat(ospfInterface, is(notNullValue()));
}
/**
* Tests to waitTimer() method.
*/
@Test
public void testWaitTimer() throws Exception {
ospfInterface.setOspfArea(ospfArea);
ospfInterface.setState(OspfInterfaceState.WAITING);
ospfInterface.waitTimer(channel);
assertThat(ospfInterface, is(notNullValue()));
}
/**
* Tests to callDrElection() method.
*/
@Test
public void testCallDrElection() throws Exception {
ospfInterface.setOspfArea(ospfArea);
ospfInterface.setState(OspfInterfaceState.WAITING);
ospfInterface.callDrElection(channel);
assertThat(ospfInterface, is(notNullValue()));
}
/**
* Tests to neighborChange() method.
*/
@Test
public void testNeighborChange() throws Exception {
ospfInterface.setOspfArea(ospfArea);
ospfInterface.setState(OspfInterfaceState.DR);
ospfInterface.neighborChange();
assertThat(ospfInterface, is(notNullValue()));
}
/**
* Tests to interfaceDown() method.
*/
@Test(expected = Exception.class)
public void testInterfaceDown() throws Exception {
ospfInterface.interfaceDown();
assertThat(ospfInterface, is(notNullValue()));
}
/**
* Tests processOspfMessage() method.
*/
@Test
public void testProcessOspfMessage() throws Exception {
ospfInterface.setOspfArea(ospfArea);
ospfInterface.setInterfaceType(OspfInterfaceType.POINT_TO_POINT.value());
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("0.0.0.0"));
ospfInterface.setIpAddress(Ip4Address.valueOf("11.11.11.11"));
ospfInterface.setInterfaceType(2);
ospfArea.setAreaId(Ip4Address.valueOf("12.12.12.12"));
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
OspfMessage message;
helloPacket = new HelloPacket();
helloPacket.setSourceIp(Ip4Address.valueOf("1.1.0.1"));
helloPacket.setRouterId(Ip4Address.valueOf("10.10.10.10"));
helloPacket.setOspfVer(2);
helloPacket.setAreaId(Ip4Address.valueOf("12.12.12.12"));
helloPacket.setOptions(2);
helloPacket.setNetworkMask(Ip4Address.valueOf("3.3.3.3"));
helloPacket.setOspftype(1);
helloPacket.setAuthType(0);
helloPacket.setHelloInterval(60);
helloPacket.setRouterDeadInterval(60);
helloPacket.setAuthentication(0);
helloPacket.setNetworkMask(Ip4Address.valueOf("1.1.1.1"));
checksumCalculator = new ChecksumCalculator();
byteArray = helloPacket.asBytes();
helloPacket.setOspfPacLength(byteArray.length);
checkArray = checksumCalculator.calculateOspfCheckSum(byteArray, 12, 13);
checkArray[0] = -51;
checkArray[1] = 52;
buf = ChannelBuffers.copiedBuffer(checkArray);
helloPacket.setChecksum(buf.readUnsignedShort());
message = helloPacket;
ospfInterface.processOspfMessage(message, channelHandlerContext);
ddPacket = new DdPacket();
ddPacket.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
ddPacket.setRouterId(Ip4Address.valueOf("10.10.10.10"));
ddPacket.setOspfVer(2);
ddPacket.setAreaId(Ip4Address.valueOf("12.12.12.12"));
ddPacket.setOptions(2);
ddPacket.setOspftype(2);
ddPacket.setAuthType(0);
ddPacket.setAuthentication(0);
checksumCalculator = new ChecksumCalculator();
byteArray = ddPacket.asBytes();
ddPacket.setOspfPacLength(byteArray.length);
checkArray = checksumCalculator.calculateOspfCheckSum(byteArray, 12, 13);
checkArray[0] = -49;
checkArray[1] = -79;
buf = ChannelBuffers.copiedBuffer(checkArray);
ddPacket.setChecksum(buf.readUnsignedShort());
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
message = ddPacket;
ospfInterface.processOspfMessage(message, channelHandlerContext);
lsRequest = new LsRequest();
lsRequest.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
lsRequest.setRouterId(Ip4Address.valueOf("10.10.10.10"));
lsRequest.setOspfVer(2);
lsRequest.setAreaId(Ip4Address.valueOf("12.12.12.12"));
lsRequest.setOspftype(3);
lsRequest.setAuthType(0);
lsRequest.setAuthentication(0);
checksumCalculator = new ChecksumCalculator();
byteArray = lsRequest.asBytes();
lsRequest.setOspfPacLength(byteArray.length);
checkArray = checksumCalculator.calculateOspfCheckSum(byteArray, 12, 13);
checkArray[0] = -47;
checkArray[1] = -72;
buf = ChannelBuffers.copiedBuffer(checkArray);
lsRequest.setChecksum(buf.readUnsignedShort());
message = lsRequest;
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ospfInterface.processOspfMessage(message, channelHandlerContext);
lsUpdate = new LsUpdate();
lsUpdate.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
lsUpdate.setRouterId(Ip4Address.valueOf("10.10.10.10"));
lsUpdate.setOspfVer(2);
lsUpdate.setAreaId(Ip4Address.valueOf("12.12.12.12"));
lsUpdate.setOspftype(4);
lsUpdate.setAuthType(0);
lsUpdate.setAuthentication(0);
checksumCalculator = new ChecksumCalculator();
byteArray = lsUpdate.asBytes();
lsUpdate.setOspfPacLength(byteArray.length);
checkArray = checksumCalculator.calculateOspfCheckSum(byteArray, 12, 13);
checkArray[0] = -47;
checkArray[1] = -77;
buf = ChannelBuffers.copiedBuffer(checkArray);
lsUpdate.setChecksum(buf.readUnsignedShort());
message = lsUpdate;
ospfInterface.processOspfMessage(message, channelHandlerContext);
lsAck = new LsAcknowledge();
lsAck.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
lsAck.setRouterId(Ip4Address.valueOf("10.10.10.10"));
lsAck.setOspfVer(2);
lsAck.setAreaId(Ip4Address.valueOf("12.12.12.12"));
lsAck.setOspftype(5);
lsAck.setAuthType(0);
lsAck.setAuthentication(0);
checksumCalculator = new ChecksumCalculator();
byteArray = lsAck.asBytes();
lsAck.setOspfPacLength(byteArray.length);
checkArray = checksumCalculator.calculateOspfCheckSum(byteArray, 12, 13);
checkArray[0] = -47;
checkArray[1] = -74;
buf = ChannelBuffers.copiedBuffer(checkArray);
lsAck.setChecksum(buf.readUnsignedShort());
message = lsAck;
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ospfInterface.processOspfMessage(message, channelHandlerContext);
assertThat(ospfInterface, is(notNullValue()));
}
/**
* Tests processHelloMessage() method.
*/
@Test
public void testProcessHelloMessage() throws Exception {
ospfInterface.setIpAddress(Ip4Address.valueOf("11.11.11.11"));
ospfInterface.setInterfaceType(1);
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("244.244.244.244"));
ospfInterface.setHelloIntervalTime(10);
ospfInterface.setRouterDeadIntervalTime(10);
ospfArea.setAreaId(Ip4Address.valueOf("12.12.12.12"));
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
OspfMessage message;
helloPacket = new HelloPacket();
helloPacket.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
helloPacket.setOspfVer(2);
helloPacket.setAreaId(Ip4Address.valueOf("12.12.12.12"));
helloPacket.setNetworkMask(Ip4Address.valueOf("244.244.244.244"));
helloPacket.setHelloInterval(10);
helloPacket.setRouterDeadInterval(10);
helloPacket.setDr(Ip4Address.valueOf("10.10.10.10"));
helloPacket.setBdr(Ip4Address.valueOf("11.11.11.11"));
helloPacket.setRouterId(Ip4Address.valueOf("111.111.111.111"));
message = helloPacket;
ospfInterface.processHelloMessage(message, channelHandlerContext);
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
/**
* Tests processHelloMessage() method.
*/
@Test
public void testProcessHelloMessage1() throws Exception {
ospfInterface.setOspfArea(ospfArea);
ospfInterface.setInterfaceType(2);
ospfInterface.setRouterPriority(1);
ospfInterface.interfaceUp();
ospfInterface.setIpAddress(Ip4Address.valueOf("11.11.11.11"));
ospfInterface.setState(OspfInterfaceState.WAITING);
ospfInterface.setInterfaceType(2);
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("244.244.244.244"));
ospfInterface.setHelloIntervalTime(10);
ospfInterface.setRouterDeadIntervalTime(10);
ospfArea.setAreaId(Ip4Address.valueOf("12.12.12.12"));
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
OspfMessage message;
helloPacket = new HelloPacket();
helloPacket.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
helloPacket.setOspfVer(2);
helloPacket.setAreaId(Ip4Address.valueOf("12.12.12.12"));
helloPacket.setNetworkMask(Ip4Address.valueOf("244.244.244.244"));
helloPacket.setHelloInterval(10);
helloPacket.setRouterDeadInterval(10);
helloPacket.setDr(Ip4Address.valueOf("10.10.10.10"));
helloPacket.setBdr(Ip4Address.valueOf("11.11.11.11"));
helloPacket.setRouterId(Ip4Address.valueOf("2.2.2.2"));
message = helloPacket;
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ospfInterface.processHelloMessage(message, channelHandlerContext);
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
ospfNbrHashMap = new HashMap();
ospfNbr = new OspfNbrImpl(ospfArea, ospfInterface, Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("2.2.2.2"), 2,
topologyForDeviceAndLink);
ospfNbr.setNeighborId(Ip4Address.valueOf("2.2.2.2"));
ospfNbr.setRouterPriority(0);
ospfNbr.setNeighborDr(Ip4Address.valueOf("13.13.13.13"));
ospfInterface.addNeighbouringRouter(ospfNbr);
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ospfInterface.processHelloMessage(message, channelHandlerContext);
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
/**
* Tests processDdMessage() method.
*/
@Test
public void testProcessDdMessage() throws Exception {
ospfInterface.setOspfArea(ospfArea);
ospfInterface.setIpAddress(Ip4Address.valueOf("11.11.11.11"));
ospfInterface.setInterfaceType(2);
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("255.255.255.255"));
ospfInterface.setHelloIntervalTime(10);
ospfInterface.setRouterDeadIntervalTime(10);
ospfArea.setAreaId(Ip4Address.valueOf("12.12.12.12"));
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
OspfMessage message;
ddPacket = new DdPacket();
ddPacket.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
ddPacket.setOspfVer(2);
ddPacket.setAreaId(Ip4Address.valueOf("12.12.12.12"));
ddPacket.setRouterId(Ip4Address.valueOf("2.2.2.2"));
ddPacket.setIsOpaqueCapable(true);
ddPacket.setIsMore(1);
ddPacket.setIsInitialize(1);
ddPacket.setIsMaster(1);
ddPacket.setSequenceNo(123);
message = ddPacket;
ospfNbrHashMap = new HashMap();
ospfNbr = new OspfNbrImpl(ospfArea, ospfInterface, Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("2.2.2.2"), 2,
topologyForDeviceAndLink);
ospfNbr.setLastDdPacket(createDdPacket());
ospfNbr.setNeighborId(Ip4Address.valueOf("2.2.2.2"));
ospfNbr.setState(OspfNeighborState.EXSTART);
ospfNbr.setRouterPriority(0);
ospfNbr.setNeighborDr(Ip4Address.valueOf("13.13.13.13"));
ospfNbr.setDdSeqNum(123);
ospfInterface.addNeighbouringRouter(ospfNbr);
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ospfInterface.processDdMessage(message, channelHandlerContext);
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
/**
* Tests processDdMessage() method.
*/
@Test(expected = Exception.class)
public void testProcessDdMessage3() throws Exception {
ospfInterface.setIpAddress(Ip4Address.valueOf("11.11.11.11"));
ospfInterface.setInterfaceType(2);
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("255.255.255.255"));
ospfInterface.setHelloIntervalTime(10);
ospfInterface.setRouterDeadIntervalTime(10);
ospfArea.setAreaId(Ip4Address.valueOf("12.12.12.12"));
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
OspfMessage message;
ddPacket = new DdPacket();
ddPacket.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
ddPacket.setOspfVer(2);
ddPacket.setAreaId(Ip4Address.valueOf("12.12.12.12"));
ddPacket.setRouterId(Ip4Address.valueOf("2.2.2.2"));
ddPacket.setIsOpaqueCapable(true);
ddPacket.setIsMore(1);
ddPacket.setIsInitialize(1);
ddPacket.setIsMaster(1);
ddPacket.setSequenceNo(123);
message = ddPacket;
ospfNbrHashMap = new HashMap();
ospfNbr = new OspfNbrImpl(ospfArea, ospfInterface, Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("2.2.2.2"), 2,
topologyForDeviceAndLink);
ospfNbr.setLastDdPacket(createDdPacket());
ospfNbr.setNeighborId(Ip4Address.valueOf("2.2.2.2"));
ospfNbr.setState(OspfNeighborState.EXSTART);
ospfNbr.setRouterPriority(0);
ospfNbr.setNeighborDr(Ip4Address.valueOf("13.13.13.13"));
ospfNbr.setDdSeqNum(123);
ospfInterface.addNeighbouringRouter(ospfNbr);
ddPacket.setIsMore(1);
ddPacket.setIsInitialize(0);
ddPacket.setIsMaster(0);
ddPacket.setSequenceNo(123);
ospfInterface.addNeighbouringRouter(ospfNbr);
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ospfInterface.processDdMessage(message, channelHandlerContext);
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
/**
* Tests processDdMessage() method.
*/
@Test(expected = Exception.class)
public void testProcessDdMessage1() throws Exception {
ospfInterface.setIpAddress(Ip4Address.valueOf("11.11.11.11"));
ospfInterface.setInterfaceType(2);
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("255.255.255.255"));
ospfInterface.setHelloIntervalTime(10);
ospfInterface.setRouterDeadIntervalTime(10);
ospfArea.setAreaId(Ip4Address.valueOf("12.12.12.12"));
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
OspfMessage message;
ddPacket = new DdPacket();
ddPacket.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
ddPacket.setOspfVer(2);
ddPacket.setAreaId(Ip4Address.valueOf("12.12.12.12"));
ddPacket.setRouterId(Ip4Address.valueOf("2.2.2.2"));
ddPacket.setIsOpaqueCapable(true);
ddPacket.setIsMore(1);
ddPacket.setIsInitialize(1);
ddPacket.setIsMaster(1);
ddPacket.setSequenceNo(123);
message = ddPacket;
ospfNbrHashMap = new HashMap();
ospfNbr = new OspfNbrImpl(ospfArea, ospfInterface, Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("2.2.2.2"), 2,
topologyForDeviceAndLink);
ospfNbr.setLastDdPacket(createDdPacket());
ospfNbr.setNeighborId(Ip4Address.valueOf("2.2.2.2"));
ospfNbr.setState(OspfNeighborState.EXCHANGE);
ospfNbr.setRouterPriority(0);
ospfNbr.setNeighborDr(Ip4Address.valueOf("13.13.13.13"));
ospfNbr.setDdSeqNum(123);
ospfInterface.addNeighbouringRouter(ospfNbr);
ddPacket.setIsMore(1);
ddPacket.setIsInitialize(0);
ddPacket.setIsMaster(0);
ddPacket.setSequenceNo(123);
ospfInterface.addNeighbouringRouter(ospfNbr);
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ospfInterface.processDdMessage(message, channelHandlerContext);
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
/**
* Tests processDdMessage() method.
*/
@Test(expected = Exception.class)
public void testProcessDdMessage2() throws Exception {
ospfInterface.setIpAddress(Ip4Address.valueOf("11.11.11.11"));
ospfInterface.setInterfaceType(2);
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("255.255.255.255"));
ospfInterface.setHelloIntervalTime(10);
ospfInterface.setRouterDeadIntervalTime(10);
ospfArea.setAreaId(Ip4Address.valueOf("12.12.12.12"));
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
OspfMessage message;
ddPacket = new DdPacket();
ddPacket.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
ddPacket.setOspfVer(2);
ddPacket.setAreaId(Ip4Address.valueOf("12.12.12.12"));
ddPacket.setRouterId(Ip4Address.valueOf("2.2.2.2"));
ddPacket.setIsOpaqueCapable(true);
ddPacket.setIsMore(1);
ddPacket.setIsInitialize(1);
ddPacket.setIsMaster(1);
ddPacket.setSequenceNo(123);
message = ddPacket;
ospfNbrHashMap = new HashMap();
ospfNbr = new OspfNbrImpl(ospfArea, ospfInterface, Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("2.2.2.2"), 2,
topologyForDeviceAndLink);
ospfNbr.setLastDdPacket(createDdPacket());
ospfNbr.setNeighborId(Ip4Address.valueOf("2.2.2.2"));
ospfNbr.setState(OspfNeighborState.LOADING);
ospfNbr.setRouterPriority(0);
ospfNbr.setNeighborDr(Ip4Address.valueOf("13.13.13.13"));
ospfNbr.setDdSeqNum(123);
ospfInterface.addNeighbouringRouter(ospfNbr);
ospfInterface.setState(OspfInterfaceState.POINT2POINT);
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ospfInterface.processDdMessage(message, channelHandlerContext);
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
/**
* Tests processDdMessage() method.
*/
@Test(expected = Exception.class)
public void testProcessDdMessage4() throws Exception {
ospfInterface.setIpAddress(Ip4Address.valueOf("11.11.11.11"));
ospfInterface.setInterfaceType(2);
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("255.255.255.255"));
ospfInterface.setHelloIntervalTime(10);
ospfInterface.setRouterDeadIntervalTime(10);
ospfArea.setAreaId(Ip4Address.valueOf("12.12.12.12"));
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
OspfMessage message;
ddPacket = new DdPacket();
ddPacket.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
ddPacket.setOspfVer(2);
ddPacket.setAreaId(Ip4Address.valueOf("12.12.12.12"));
ddPacket.setRouterId(Ip4Address.valueOf("2.2.2.2"));
ddPacket.setIsOpaqueCapable(true);
ddPacket.setIsMore(1);
ddPacket.setIsInitialize(1);
ddPacket.setIsMaster(1);
ddPacket.setSequenceNo(123);
message = ddPacket;
ospfNbrHashMap = new HashMap();
ospfNbr = new OspfNbrImpl(ospfArea, ospfInterface, Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("2.2.2.2"), 2,
topologyForDeviceAndLink);
ospfNbr.setLastDdPacket(createDdPacket());
ospfNbr.setNeighborId(Ip4Address.valueOf("2.2.2.2"));
ospfNbr.setState(OspfNeighborState.EXCHANGE);
ospfNbr.setRouterPriority(0);
ospfNbr.setNeighborDr(Ip4Address.valueOf("13.13.13.13"));
ospfNbr.setDdSeqNum(123);
ospfInterface.addNeighbouringRouter(ospfNbr);
ospfInterface.setState(OspfInterfaceState.POINT2POINT);
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ddPacket.setIsMore(1);
ddPacket.setIsInitialize(0);
ddPacket.setIsMaster(1);
ddPacket.setSequenceNo(123);
ospfInterface.addNeighbouringRouter(ospfNbr);
ospfNbr.setState(OspfNeighborState.EXCHANGE);
ospfInterface.addNeighbouringRouter(ospfNbr);
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ospfInterface.processDdMessage(message, channelHandlerContext);
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
/**
* Tests processDdMessage() method.
*/
@Test(expected = Exception.class)
public void testProcessDdMessage5() throws Exception {
ospfInterface.setIpAddress(Ip4Address.valueOf("11.11.11.11"));
ospfInterface.setInterfaceType(2);
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("255.255.255.255"));
ospfInterface.setHelloIntervalTime(10);
ospfInterface.setRouterDeadIntervalTime(10);
ospfArea.setAreaId(Ip4Address.valueOf("12.12.12.12"));
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
OspfMessage message;
ddPacket = new DdPacket();
ddPacket.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
ddPacket.setOspfVer(2);
ddPacket.setAreaId(Ip4Address.valueOf("12.12.12.12"));
ddPacket.setRouterId(Ip4Address.valueOf("2.2.2.2"));
ddPacket.setIsOpaqueCapable(true);
ddPacket.setIsMore(1);
ddPacket.setIsInitialize(1);
ddPacket.setIsMaster(1);
ddPacket.setSequenceNo(123);
message = ddPacket;
ospfNbrHashMap = new HashMap();
ospfNbr = new OspfNbrImpl(ospfArea, ospfInterface, Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("2.2.2.2"), 2,
topologyForDeviceAndLink);
ospfNbr.setLastDdPacket(createDdPacket());
ospfNbr.setNeighborId(Ip4Address.valueOf("2.2.2.2"));
ospfNbr.setState(OspfNeighborState.EXCHANGE);
ospfNbr.setRouterPriority(0);
ospfNbr.setNeighborDr(Ip4Address.valueOf("13.13.13.13"));
ospfNbr.setDdSeqNum(123);
ospfInterface.addNeighbouringRouter(ospfNbr);
ospfInterface.setState(OspfInterfaceState.POINT2POINT);
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ddPacket.setIsMore(1);
ddPacket.setIsInitialize(1);
ddPacket.setIsMaster(0);
ddPacket.setSequenceNo(123);
ospfInterface.addNeighbouringRouter(ospfNbr);
ospfNbr.setState(OspfNeighborState.EXCHANGE);
ospfInterface.addNeighbouringRouter(ospfNbr);
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ospfInterface.processDdMessage(message, channelHandlerContext);
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
/**
* Tests processDdMessage() method.
*/
@Test(expected = Exception.class)
public void testProcessDdMessage6() throws Exception {
ospfInterface.setIpAddress(Ip4Address.valueOf("11.11.11.11"));
ospfInterface.setInterfaceType(2);
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("255.255.255.255"));
ospfInterface.setHelloIntervalTime(10);
ospfInterface.setRouterDeadIntervalTime(10);
ospfArea.setAreaId(Ip4Address.valueOf("12.12.12.12"));
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
OspfMessage message;
ddPacket = new DdPacket();
ddPacket.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
ddPacket.setOspfVer(2);
ddPacket.setAreaId(Ip4Address.valueOf("12.12.12.12"));
ddPacket.setRouterId(Ip4Address.valueOf("2.2.2.2"));
ddPacket.setIsOpaqueCapable(true);
ddPacket.setIsMore(1);
ddPacket.setIsInitialize(1);
ddPacket.setIsMaster(1);
ddPacket.setSequenceNo(123);
message = ddPacket;
ospfNbrHashMap = new HashMap();
ospfNbr = new OspfNbrImpl(ospfArea, ospfInterface, Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("2.2.2.2"), 2,
topologyForDeviceAndLink);
ospfNbr.setLastDdPacket(createDdPacket());
ospfNbr.setNeighborId(Ip4Address.valueOf("2.2.2.2"));
ospfNbr.setState(OspfNeighborState.FULL);
ospfNbr.setRouterPriority(0);
ospfNbr.setNeighborDr(Ip4Address.valueOf("13.13.13.13"));
ospfNbr.setDdSeqNum(123);
ospfInterface.addNeighbouringRouter(ospfNbr);
ospfInterface.setState(OspfInterfaceState.POINT2POINT);
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ddPacket.setIsMore(1);
ddPacket.setIsInitialize(1);
ddPacket.setIsMaster(0);
ddPacket.setSequenceNo(123);
ospfInterface.addNeighbouringRouter(ospfNbr);
ospfNbr.setState(OspfNeighborState.FULL);
ospfInterface.addNeighbouringRouter(ospfNbr);
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ospfInterface.processDdMessage(message, channelHandlerContext);
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
/**
* Tests processLsRequestMessage() method.
*/
@Test(expected = Exception.class)
public void testProcessLSRequestMessage() throws Exception {
ospfArea.setRouterId(Ip4Address.valueOf("11.11.11.11"));
ospfArea.setAreaId(Ip4Address.valueOf("12.12.12.12"));
ospfInterface.setOspfArea(ospfArea);
ospfInterface.setIpAddress(Ip4Address.valueOf("11.11.11.11"));
ospfInterface.setInterfaceType(2);
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("255.255.255.255"));
ospfInterface.setHelloIntervalTime(10);
ospfInterface.setRouterDeadIntervalTime(10);
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
OspfMessage message;
lsRequest = new LsRequest();
lsRequest.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
lsRequest.setOspfVer(2);
lsRequest.setAreaId(Ip4Address.valueOf("12.12.12.12"));
lsRequest.setRouterId(Ip4Address.valueOf("10.226.165.100"));
List<LsRequestPacket> lsRequests = new ArrayList();
LsRequestPacket lsRequestPacket = new LsRequestPacket();
lsRequestPacket.setLsType(OspfLsaType.AREA_LOCAL_OPAQUE_LSA.value());
lsRequestPacket.setLinkStateId("2.2.2.2");
lsRequestPacket.setOwnRouterId("10.226.165.100");
lsRequests.add(lsRequestPacket);
lsRequests.add(lsRequestPacket);
lsRequest.addLinkStateRequests(lsRequestPacket);
message = lsRequest;
ospfNbrHashMap = new HashMap();
ospfNbr.setState(OspfNeighborState.EXCHANGE);
ospfNbr = new OspfNbrImpl(ospfArea, createOspfInterface(), Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("10.226.165.100"), 2,
topologyForDeviceAndLink);
ospfNbr.setLastDdPacket(createDdPacket());
ospfNbr.setNeighborId(Ip4Address.valueOf("10.226.165.100"));
ospfNbr.setState(OspfNeighborState.FULL);
ospfNbr.setRouterPriority(0);
ospfNbr.setNeighborDr(Ip4Address.valueOf("13.13.13.13"));
ospfNbr.setDdSeqNum(123);
ospfInterface.addNeighbouringRouter(ospfNbr);
OpaqueLsaHeader lsaHeader = new OpaqueLsaHeader();
lsaHeader.setLsType(OspfLsaType.AREA_LOCAL_OPAQUE_LSA.value());
lsaHeader.setLinkStateId("2.2.2.2");
lsaHeader.setAdvertisingRouter(Ip4Address.valueOf("10.226.165.100"));
OpaqueLsa10 opaqueLsa10 = new OpaqueLsa10(lsaHeader);
ospfArea.addLsa(opaqueLsa10, false, ospfInterface);
ospfInterface.setOspfArea(ospfArea);
ospfInterface.processLsRequestMessage(message, channelHandlerContext);
assertThat(ospfInterface, is(notNullValue()));
}
/**
* Tests processLsUpdateMessage() method.
*/
@Test
public void testProcessLSUpdateMessage() throws Exception {
ospfInterface.setIpAddress(Ip4Address.valueOf("11.11.11.11"));
ospfInterface.setInterfaceType(2);
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("255.255.255.255"));
ospfInterface.setHelloIntervalTime(10);
ospfInterface.setRouterDeadIntervalTime(10);
ospfArea.setAreaId(Ip4Address.valueOf("12.12.12.12"));
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
OspfMessage message;
lsUpdate = new LsUpdate();
lsUpdate.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
lsUpdate.setOspfVer(2);
lsUpdate.setAreaId(Ip4Address.valueOf("12.12.12.12"));
lsUpdate.setRouterId(Ip4Address.valueOf("10.226.165.100"));
RouterLsa routerLsa = new RouterLsa();
lsUpdate.addLsa(routerLsa);
lsUpdate.setNumberOfLsa(1);
message = lsUpdate;
ospfNbrHashMap = new HashMap();
ospfNbr.setState(OspfNeighborState.FULL);
ospfNbr = new OspfNbrImpl(ospfArea, createOspfInterface(), Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("10.226.165.100"), 2,
topologyForDeviceAndLink);
ospfNbr.setLastDdPacket(createDdPacket());
ospfNbr.setNeighborId(Ip4Address.valueOf("2.2.2.2"));
ospfNbr.setState(OspfNeighborState.FULL);
ospfNbr.setRouterPriority(0);
ospfNbr.setNeighborDr(Ip4Address.valueOf("13.13.13.13"));
ospfNbr.setDdSeqNum(123);
ospfInterface.addNeighbouringRouter(ospfNbr);
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ospfInterface.processLsUpdateMessage(message, channelHandlerContext);
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
@Test(expected = Exception.class)
public void testProcessLSAckMessage() throws Exception {
ospfInterface.setIpAddress(Ip4Address.valueOf("11.11.11.11"));
ospfInterface.setInterfaceType(2);
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("255.255.255.255"));
ospfInterface.setHelloIntervalTime(10);
ospfInterface.setRouterDeadIntervalTime(10);
ospfArea.setAreaId(Ip4Address.valueOf("12.12.12.12"));
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
OspfMessage message;
lsAck = new LsAcknowledge();
lsAck.setSourceIp(Ip4Address.valueOf("1.1.1.1"));
lsAck.setOspfVer(2);
lsAck.setAreaId(Ip4Address.valueOf("12.12.12.12"));
LsaHeader lsaHeader = new LsaHeader();
lsAck.addLinkStateHeader(lsaHeader);
message = lsAck;
ospfNbr = new OspfNbrImpl(ospfArea, createOspfInterface(), Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("10.226.165.100"), 2,
topologyForDeviceAndLink);
ospfNbr.setLastDdPacket(createDdPacket());
ospfNbr.setNeighborId(Ip4Address.valueOf("2.2.2.2"));
ospfNbr.setState(OspfNeighborState.FULL);
ospfNbr.setRouterPriority(0);
ospfNbr.setNeighborDr(Ip4Address.valueOf("13.13.13.13"));
ospfNbr.setDdSeqNum(123);
channelHandlerContext = null;
channelHandlerContext = EasyMock.createMock(ChannelHandlerContext.class);
ospfInterface.processLsAckMessage(message, channelHandlerContext);
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
/**
* Tests electRouter() method.
*/
@Test
public void testElectRouter() throws Exception {
ospfInterface.setOspfArea(ospfArea);
ospfInterface.setDr(Ip4Address.valueOf("3.3.3.3"));
ospfInterface.setBdr(Ip4Address.valueOf("3.3.3.3"));
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("255.255.255.255"));
ChannelConfig channelConfig = EasyMock.createMock(ChannelConfig.class);
EasyMock.expect(channelConfig.getBufferFactory()).andReturn(new HeapChannelBufferFactory());
Channel channel = EasyMock.createMock(Channel.class);
ospfInterface.electRouter(channel);
assertThat(ospfInterface.dr(), is(notNullValue()));
}
/**
* Tests electBdr() method.
*/
@Test
public void testElectBdr() throws Exception {
ospfEligibleRouter = new OspfEligibleRouter();
ospfEligibleRouter.setIpAddress(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsDr(true);
ospfEligibleRouter.setRouterPriority(10);
ospfEligibleRouter.setRouterId(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsBdr(false);
OspfEligibleRouter ospfEligibleRouter1 = new OspfEligibleRouter();
ospfEligibleRouter.setIpAddress(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsDr(true);
ospfEligibleRouter.setRouterPriority(10);
ospfEligibleRouter.setRouterId(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsBdr(false);
OspfEligibleRouter ospfEligibleRouter2 = new OspfEligibleRouter();
ospfEligibleRouter.setIpAddress(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsDr(true);
ospfEligibleRouter.setRouterPriority(10);
ospfEligibleRouter.setRouterId(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsBdr(false);
List<OspfEligibleRouter> ospfEligibleRouters = new ArrayList<>();
ospfEligibleRouters.add(ospfEligibleRouter);
ospfEligibleRouters.add(ospfEligibleRouter1);
ospfEligibleRouters.add(ospfEligibleRouter2);
OspfEligibleRouter eligibleRouter = ospfInterface.electBdr(ospfEligibleRouters);
assertThat(ospfEligibleRouters.size(), is(3));
assertThat(eligibleRouter, is(notNullValue()));
}
/**
* Tests electDr() method.
*/
@Test
public void testElectDR() throws Exception {
ospfEligibleRouter = new OspfEligibleRouter();
ospfEligibleRouter.setIpAddress(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsDr(true);
ospfEligibleRouter.setRouterPriority(10);
ospfEligibleRouter.setRouterId(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsBdr(false);
OspfEligibleRouter ospfEligibleRouter1 = new OspfEligibleRouter();
ospfEligibleRouter.setIpAddress(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsDr(true);
ospfEligibleRouter.setRouterPriority(10);
ospfEligibleRouter.setRouterId(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsBdr(false);
OspfEligibleRouter ospfEligibleRouter2 = new OspfEligibleRouter();
ospfEligibleRouter.setIpAddress(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsDr(true);
ospfEligibleRouter.setRouterPriority(10);
ospfEligibleRouter.setRouterId(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsBdr(false);
List<OspfEligibleRouter> ospfEligibleRouters = new ArrayList<>();
ospfEligibleRouters.add(ospfEligibleRouter);
ospfEligibleRouters.add(ospfEligibleRouter1);
ospfEligibleRouters.add(ospfEligibleRouter2);
OspfEligibleRouter eligibleRouter = ospfInterface.electDr(ospfEligibleRouters,
ospfEligibleRouter);
assertThat(ospfEligibleRouters.size(), is(3));
assertThat(eligibleRouter, is(notNullValue()));
}
/**
* Tests selectRouterBasedOnPriority() method.
*/
@Test
public void testSelectRouterBasedOnPriority() throws Exception {
ospfEligibleRouter = new OspfEligibleRouter();
ospfEligibleRouter.setIpAddress(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsDr(true);
ospfEligibleRouter.setRouterPriority(10);
ospfEligibleRouter.setRouterId(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsBdr(false);
OspfEligibleRouter ospfEligibleRouter1 = new OspfEligibleRouter();
ospfEligibleRouter.setIpAddress(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsDr(true);
ospfEligibleRouter.setRouterPriority(11);
ospfEligibleRouter.setRouterId(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsBdr(false);
OspfEligibleRouter ospfEligibleRouter2 = new OspfEligibleRouter();
ospfEligibleRouter.setIpAddress(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsDr(true);
ospfEligibleRouter.setRouterPriority(12);
ospfEligibleRouter.setRouterId(Ip4Address.valueOf("1.1.1.1"));
ospfEligibleRouter.setIsBdr(false);
List<OspfEligibleRouter> ospfEligibleRouters = new ArrayList<>();
ospfEligibleRouters.add(ospfEligibleRouter);
ospfEligibleRouters.add(ospfEligibleRouter1);
ospfEligibleRouters.add(ospfEligibleRouter2);
OspfEligibleRouter eligibleRouter = ospfInterface.selectRouterBasedOnPriority(
ospfEligibleRouters);
assertThat(eligibleRouter, is(notNullValue()));
}
/**
* Tests addDeviceInformation() method.
*/
@Test(expected = Exception.class)
public void testAddDeviceInformation() throws Exception {
ospfNbr = new OspfNbrImpl(ospfArea, createOspfInterface(), Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("10.226.165.100"), 2,
topologyForDeviceAndLink);
ospfInterface.addDeviceInformation(new OspfRouterImpl());
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
/**
* Tests removeDeviceInformation() method.
*/
@Test(expected = Exception.class)
public void testRemoveDeviceInformation() throws Exception {
ospfNbr = new OspfNbrImpl(ospfArea, createOspfInterface(), Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("10.226.165.100"), 2,
topologyForDeviceAndLink);
ospfInterface.removeDeviceInformation(new OspfRouterImpl());
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
/**
* Tests addLinkInformation() method.
*/
@Test(expected = Exception.class)
public void testaddLinkInformation() throws Exception {
ospfNbr = new OspfNbrImpl(ospfArea, createOspfInterface(), Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("10.226.165.100"), 2,
topologyForDeviceAndLink);
List topTlv = new ArrayList();
topTlv.add(new RouterTlv(new TlvHeader()));
ospfInterface.addLinkInformation(new OspfRouterImpl(), new OspfLinkTedImpl());
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
/**
* Tests removeLinkInformation() method.
*/
@Test(expected = Exception.class)
public void testRemoveLinkInformation() throws Exception {
ospfNbr = new OspfNbrImpl(ospfArea, createOspfInterface(), Ip4Address.valueOf("10.10.10.10"),
Ip4Address.valueOf("10.226.165.100"), 2,
topologyForDeviceAndLink);
ospfInterface.removeLinkInformation(new OspfRouterImpl(), new OspfLinkTedImpl());
assertThat(ospfInterfaceChannelHandler, is(notNullValue()));
}
/**
* Utility for test method.
*/
private DdPacket createDdPacket() throws OspfParseException {
byte[] ddPacket = {2, 2, 0, 32, -64, -88, -86, 8, 0, 0, 0, 1, -96, 82,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, -36, 2, 7, 65, 119, -87, 126};
DdPacket ddPacket1 = new DdPacket();
ChannelBuffer buf = ChannelBuffers.buffer(ddPacket.length);
buf.writeBytes(ddPacket);
ddPacket1.readFrom(buf);
return ddPacket1;
}
/**
* Utility for test method.
*/
private OspfInterfaceImpl createOspfInterface() throws UnknownHostException {
ospfInterface = new OspfInterfaceImpl();
OspfAreaImpl ospfArea = new OspfAreaImpl();
OspfInterfaceChannelHandler ospfInterfaceChannelHandler = EasyMock.createMock(
OspfInterfaceChannelHandler.class);
ospfNbr = new OspfNbrImpl(ospfArea, ospfInterface, Ip4Address.valueOf("10.226.165.164"),
Ip4Address.valueOf("1.1.1.1"), 2,
topologyForDeviceAndLink);
ospfNbr.setState(OspfNeighborState.EXSTART);
ospfNbr.setNeighborId(Ip4Address.valueOf("10.226.165.100"));
this.ospfInterface = new OspfInterfaceImpl();
this.ospfInterface.setIpAddress(Ip4Address.valueOf("10.226.165.164"));
this.ospfInterface.setIpNetworkMask(Ip4Address.valueOf("255.255.255.255"));
this.ospfInterface.setBdr(Ip4Address.valueOf("111.111.111.111"));
this.ospfInterface.setDr(Ip4Address.valueOf("111.111.111.111"));
this.ospfInterface.setHelloIntervalTime(20);
this.ospfInterface.setInterfaceType(2);
this.ospfInterface.setReTransmitInterval(2000);
this.ospfInterface.setMtu(6500);
this.ospfInterface.setRouterDeadIntervalTime(1000);
this.ospfInterface.setRouterPriority(1);
this.ospfInterface.setInterfaceType(1);
this.ospfInterface.addNeighbouringRouter(ospfNbr);
return this.ospfInterface;
}
/**
* Utility for test method.
*/
private OspfInterfaceImpl createOspfInterface1() throws UnknownHostException {
ospfInterface = new OspfInterfaceImpl();
OspfAreaImpl ospfArea = new OspfAreaImpl();
OspfInterfaceChannelHandler ospfInterfaceChannelHandler = EasyMock.createMock(
OspfInterfaceChannelHandler.class);
ospfNbr = new OspfNbrImpl(ospfArea, ospfInterface, Ip4Address.valueOf("10.226.165.164"),
Ip4Address.valueOf("1.1.1.1"), 2,
topologyForDeviceAndLink);
ospfNbr.setState(OspfNeighborState.FULL);
ospfNbr.setNeighborId(Ip4Address.valueOf("10.226.165.100"));
ospfInterface = new OspfInterfaceImpl();
ospfInterface.setIpAddress(Ip4Address.valueOf("10.226.165.164"));
ospfInterface.setIpNetworkMask(Ip4Address.valueOf("255.255.255.255"));
ospfInterface.setBdr(Ip4Address.valueOf("111.111.111.111"));
ospfInterface.setDr(Ip4Address.valueOf("111.111.111.111"));
ospfInterface.setHelloIntervalTime(20);
ospfInterface.setInterfaceType(2);
ospfInterface.setReTransmitInterval(2000);
ospfInterface.setMtu(6500);
ospfInterface.setRouterDeadIntervalTime(1000);
ospfInterface.setRouterPriority(1);
ospfInterface.setInterfaceType(1);
ospfInterface.addNeighbouringRouter(ospfNbr);
return ospfInterface;
}
/**
* Utility for test method.
*/
private OspfAreaImpl createOspfArea() throws UnknownHostException {
OspfAreaAddressRangeImpl ospfAreaAddressRange;
ospfAreaAddressRange = createOspfAreaAddressRange();
addressRanges.add(ospfAreaAddressRange);
OspfAreaImpl ospfArea = new OspfAreaImpl();
ospfArea.setAreaId(Ip4Address.valueOf("10.226.165.164"));
ospfArea.setExternalRoutingCapability(true);
OspfInterfaceImpl ospfInterface = createOspfInterface();
ospfInterfaces.add(ospfInterface);
ospfArea.setOspfInterfaceList(ospfInterfaces);
RouterLsa routerLsa = new RouterLsa();
routerLsa.setLsType(1);
routerLsa.setLinkStateId("2.2.2.2");
routerLsa.setAdvertisingRouter(Ip4Address.valueOf("2.2.2.2"));
try {
ospfArea.addLsa(routerLsa, false, ospfInterface);
} catch (Exception e) {
System.out.println("ospfAreaImpl createOspfArea");
}
ospfArea.setRouterId(Ip4Address.valueOf("111.111.111.111"));
return ospfArea;
}
/**
* Utility for test method.
*/
private OspfAreaAddressRangeImpl createOspfAreaAddressRange() {
OspfAreaAddressRangeImpl ospfAreaAddressRange = new OspfAreaAddressRangeImpl();
ospfAreaAddressRange.setIpAddress(Ip4Address.valueOf("10.226.165.164"));
ospfAreaAddressRange.setAdvertise(true);
ospfAreaAddressRange.setMask("mask");
return ospfAreaAddressRange;
}
}