blob: 6ad8bc45b38712e3b75e3c12689f6722e3ae9e2a [file] [log] [blame]
package net.onrc.onos.ofcontroller.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import net.floodlightcontroller.util.MACAddress;
import org.junit.Before;
import org.junit.Test;
public class FlowEntryMatchTest {
FlowEntryMatch match;
Port inport = new Port((short)1);
byte[] byte1 = { 1, 2, 3, 4, 5, 6 };
byte[] byte2 = { 6, 5, 4, 3, 2, 1 };
MACAddress mac1 = new MACAddress(byte1);
MACAddress mac2 = new MACAddress(byte2);
Short ether = Short.valueOf((short)2);
Short vlanid = Short.valueOf((short)3);
Byte vlanprio = Byte.valueOf((byte)4);
IPv4Net ip1 = new IPv4Net("127.0.0.1/32");
IPv4Net ip2 = new IPv4Net("127.0.0.2/32");
Byte ipproto = Byte.valueOf((byte)5);
Byte ipToS = Byte.valueOf((byte)6);
Short tport1 = Short.valueOf((short)7);
Short tport2 = Short.valueOf((short)8);
@Before
public void setUp() throws Exception{
match = new FlowEntryMatch();
match.enableInPort( inport);
match.enableSrcMac( mac1 );
match.enableDstMac( mac2 );
match.enableEthernetFrameType( ether );
match.enableVlanId( vlanid );
match.enableVlanPriority( vlanprio );
match.enableSrcIPv4Net( ip1 );
match.enableDstIPv4Net( ip2 );
match.enableIpProto( ipproto );
match.enableIpToS( ipToS );
match.enableSrcTcpUdpPort( tport1 );
match.enableDstTcpUdpPort( tport2 );
}
@Test
public void testFlowEntryMatch(){
FlowEntryMatch def = new FlowEntryMatch();
assertEquals("default null", null, def.inPort() );
assertEquals("default null", null, def.srcMac() );
assertEquals("default null", null, def.dstMac() );
assertEquals("default null", null, def.ethernetFrameType() );
assertEquals("default null", null, def.vlanId() );
assertEquals("default null", null, def.vlanPriority() );
assertEquals("default null", null, def.srcIPv4Net() );
assertEquals("default null", null, def.dstIPv4Net() );
assertEquals("default null", null, def.ipToS() );
assertEquals("default null", null, def.srcTcpUdpPort() );
assertEquals("default null", null, def.dstTcpUdpPort() );
}
@Test
public void testFlowEntryMatchFlowEntryMatch(){
FlowEntryMatch def_base = new FlowEntryMatch();
FlowEntryMatch def = new FlowEntryMatch(def_base);
assertEquals("default null", null, def.inPort() );
assertEquals("default null", null, def.srcMac() );
assertEquals("default null", null, def.dstMac() );
assertEquals("default null", null, def.ethernetFrameType() );
assertEquals("default null", null, def.vlanId() );
assertEquals("default null", null, def.vlanPriority() );
assertEquals("default null", null, def.srcIPv4Net() );
assertEquals("default null", null, def.dstIPv4Net() );
assertEquals("default null", null, def.ipProto() );
assertEquals("default null", null, def.ipToS() );
assertEquals("default null", null, def.srcTcpUdpPort() );
assertEquals("default null", null, def.dstTcpUdpPort() );
FlowEntryMatch copy = new FlowEntryMatch( match );
assertEquals("inport", inport, copy.inPort() );
assertEquals("mac1", mac1, copy.srcMac() );
assertEquals("mac2", mac2, copy.dstMac() );
assertEquals("ether", ether, copy.ethernetFrameType() );
assertEquals("vlan id", vlanid, copy.vlanId() );
assertEquals("vlan prio", vlanprio, copy.vlanPriority() );
assertEquals("ip1", ip1, copy.srcIPv4Net() );
assertEquals("ip2", ip2, copy.dstIPv4Net() );
assertEquals("ip proto", ipproto, copy.ipProto() );
assertEquals("tos", ipToS, copy.ipToS() );
assertEquals("src port", tport1, copy.srcTcpUdpPort() );
assertEquals("dst port", tport2, copy.dstTcpUdpPort() );
}
@Test
public void testInPort(){
assertEquals("inport", inport, match.inPort() );
}
@Test
public void testDisableInPort(){
match.disableInPort();
assertEquals("inport", null, match.inPort() );
assertFalse( match.matchInPort() );
}
@Test
public void testMatchInPort(){
assertTrue( match.matchInPort() );
}
@Test
public void testSrcMac(){
assertEquals("mac1", mac1, match.srcMac() );
}
@Test
public void testDisableSrcMac(){
match.disableSrcMac();
assertEquals("srcMac", null, match.srcMac() );
assertFalse( match.matchSrcMac() );
}
@Test
public void testMatchSrcMac(){
assertTrue( match.matchSrcMac() );
}
@Test
public void testDstMac(){
assertEquals("mac2", mac2, match.dstMac() );
}
@Test
public void testDisableDstMac(){
match.disableDstMac();
assertEquals("dstMac", null, match.dstMac() );
assertFalse( match.matchDstMac() );
}
@Test
public void testMatchDstMac(){
assertTrue( match.matchDstMac() );
}
@Test
public void testEthernetFrameType(){
assertEquals("ether", ether, match.ethernetFrameType() );
}
@Test
public void testDisableEthernetFrameType(){
match.disableEthernetFrameType();
assertEquals("ethernetFrameType", null, match.ethernetFrameType() );
assertFalse( match.matchEthernetFrameType() );
}
@Test
public void testMatchEthernetFrameType(){
assertTrue( match.matchEthernetFrameType() );
}
@Test
public void testVlanId(){
assertEquals("vlan id", vlanid, match.vlanId() );
}
@Test
public void testDisableVlanId(){
match.disableVlanId();
assertEquals("vlanId", null, match.vlanId() );
assertFalse( match.matchVlanId() );
}
@Test
public void testMatchVlanId(){
assertTrue( match.matchVlanId() );
}
@Test
public void testVlanPriority(){
assertEquals("vlan prio", vlanprio, match.vlanPriority() );
}
@Test
public void testDisableVlanPriority(){
match.disableVlanPriority();
assertEquals("vlanPriority", null, match.vlanPriority() );
assertFalse( match.matchVlanPriority() );
}
@Test
public void testMatchVlanPriority(){
assertTrue( match.matchVlanPriority() );
}
@Test
public void testSrcIPv4Net(){
assertEquals("ip1", ip1, match.srcIPv4Net() );
}
@Test
public void testDisableSrcIPv4Net(){
match.disableSrcIPv4Net();
assertEquals("srcIPv4Net", null, match.srcIPv4Net() );
assertFalse( match.matchSrcIPv4Net() );
}
@Test
public void testMatchSrcIPv4Net(){
assertTrue( match.matchSrcIPv4Net() );
}
@Test
public void testDstIPv4Net(){
assertEquals("ip2", ip2, match.dstIPv4Net() );
}
@Test
public void testDisableDstIPv4Net(){
match.disableDstIPv4Net();
assertEquals("dstIPv4Net", null, match.dstIPv4Net() );
assertFalse( match.matchDstIPv4Net() );
}
@Test
public void testMatchDstIPv4Net(){
assertTrue( match.matchDstIPv4Net() );
}
@Test
public void testIpProto(){
assertEquals("ip proto", ipproto, match.ipProto() );
}
@Test
public void testDisableIpProto(){
match.disableIpProto();
assertEquals("ipProto", null, match.ipProto() );
assertFalse( match.matchIpProto() );
}
@Test
public void testMatchIpProto(){
assertTrue( match.matchIpProto() );
}
@Test
public void testIpToS(){
assertEquals("tos", ipToS, match.ipToS() );
}
@Test
public void testDisableIpToS(){
match.disableIpToS();
assertEquals("ipToS", null, match.ipToS() );
assertFalse( match.matchIpToS() );
}
@Test
public void testMatchIpToS(){
assertTrue( match.matchIpToS() );
}
@Test
public void testSrcTcpUdpPort(){
assertEquals("src port", tport1, match.srcTcpUdpPort() );
}
@Test
public void testDisableSrcTcpUdpPort(){
match.disableSrcTcpUdpPort();
assertEquals("srcTcpUdpPort", null, match.srcTcpUdpPort() );
assertFalse( match.matchSrcTcpUdpPort() );
}
@Test
public void testMatchSrcTcpUdpPort(){
assertTrue( match.matchSrcTcpUdpPort() );
}
@Test
public void testDstTcpUdpPort(){
assertEquals("dst port", tport2, match.dstTcpUdpPort() );
}
@Test
public void testDisableDstTcpUdpPort(){
match.disableDstTcpUdpPort();
assertEquals("dstTcpUdpPort", null, match.dstTcpUdpPort() );
assertFalse( match.matchDstTcpUdpPort() );
}
@Test
public void testMatchDstTcpUdpPort(){
assertTrue( match.matchDstTcpUdpPort() );
}
@Test
public void testToString(){
FlowEntryMatch def = new FlowEntryMatch();
assertEquals("match default", def.toString(), "[]");
assertEquals("match set", match.toString(), "[inPort=1 srcMac=01:02:03:04:05:06 dstMac=06:05:04:03:02:01 ethernetFrameType=2 vlanId=3 vlanPriority=4 srcIPv4Net=127.0.0.1/32 dstIPv4Net=127.0.0.2/32 ipProto=5 ipToS=6 srcTcpUdpPort=7 dstTcpUdpPort=8]");
}
}