blob: d816517e3d5201bef9eaf4730330a7079954fdd0 [file] [log] [blame]
package net.onrc.onos.ofcontroller.util;
import static org.junit.Assert.assertEquals;
import net.floodlightcontroller.util.MACAddress;
import net.onrc.onos.ofcontroller.util.FlowEntryAction.ActionEnqueue;
import net.onrc.onos.ofcontroller.util.FlowEntryAction.ActionOutput;
import net.onrc.onos.ofcontroller.util.FlowEntryAction.ActionSetEthernetAddr;
import net.onrc.onos.ofcontroller.util.FlowEntryAction.ActionSetIPv4Addr;
import net.onrc.onos.ofcontroller.util.FlowEntryAction.ActionSetIpToS;
import net.onrc.onos.ofcontroller.util.FlowEntryAction.ActionSetTcpUdpPort;
import net.onrc.onos.ofcontroller.util.FlowEntryAction.ActionSetVlanId;
import net.onrc.onos.ofcontroller.util.FlowEntryAction.ActionSetVlanPriority;
import net.onrc.onos.ofcontroller.util.FlowEntryAction.ActionStripVlan;
import org.junit.Test;
public class FlowEntryActionTest {
@Test
public void testSetActionOutputActionOutput(){
FlowEntryAction act = new FlowEntryAction();
ActionOutput actout = new FlowEntryAction.ActionOutput(new Port((short)42));
act.setActionOutput(actout);
assertEquals("action output",FlowEntryAction.ActionValues.ACTION_OUTPUT , act.actionType());
assertEquals("actionOutput port should be the same", actout.port(), act.actionOutput().port());
assertEquals("actionOutput maxlen should be the same", actout.maxLen(), act.actionOutput().maxLen());
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionOutputPort(){
FlowEntryAction act = new FlowEntryAction();
act.setActionOutput(new Port((short)42));
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionOutputToController(){
FlowEntryAction act = new FlowEntryAction();
act.setActionOutputToController((short)0);
FlowEntryAction act_copy = new FlowEntryAction();
act_copy.setActionOutput(new Port(Port.PortValues.PORT_CONTROLLER));
;
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetVlanIdActionSetVlanId(){
FlowEntryAction act = new FlowEntryAction();
ActionSetVlanId actVlan = new FlowEntryAction.ActionSetVlanId((short)42);
act.setActionSetVlanId(actVlan);
assertEquals("action type",FlowEntryAction.ActionValues.ACTION_SET_VLAN_VID , act.actionType());
assertEquals("vlanid should be the same", actVlan.vlanId(), act.actionSetVlanId().vlanId());
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetVlanIdShort(){
FlowEntryAction act = new FlowEntryAction();
act.setActionSetVlanId((short)42);
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetVlanPriorityActionSetVlanPriority(){
FlowEntryAction act = new FlowEntryAction();
ActionSetVlanPriority actVlan = new FlowEntryAction.ActionSetVlanPriority((byte)42);
act.setActionSetVlanPriority(actVlan);
assertEquals("action type",FlowEntryAction.ActionValues.ACTION_SET_VLAN_PCP , act.actionType());
assertEquals("vlan priority should be the same", actVlan.vlanPriority(), act.actionSetVlanPriority().vlanPriority());
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetVlanPriorityByte(){
FlowEntryAction act = new FlowEntryAction();
act.setActionSetVlanPriority((byte)42);
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionStripVlanActionStripVlan(){
FlowEntryAction act = new FlowEntryAction();
ActionStripVlan actVlan = new FlowEntryAction.ActionStripVlan();
act.setActionStripVlan(actVlan);
assertEquals("action type",FlowEntryAction.ActionValues.ACTION_STRIP_VLAN , act.actionType());
assertEquals("vlanid should be the same", actVlan.stripVlan(), act.actionStripVlan().stripVlan());
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionStripVlanBoolean(){
FlowEntryAction act = new FlowEntryAction();
act.setActionStripVlan(true);
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetEthernetSrcAddrActionSetEthernetAddr(){
FlowEntryAction act = new FlowEntryAction();
byte[] mac = { 1, 2, 3, 4, 5, 6 };
ActionSetEthernetAddr setEth = new FlowEntryAction.ActionSetEthernetAddr(new MACAddress(mac));
act.setActionSetEthernetSrcAddr( setEth );
assertEquals("action type",FlowEntryAction.ActionValues.ACTION_SET_DL_SRC , act.actionType());
assertEquals("addr should be the same", setEth.addr(), act.actionSetEthernetSrcAddr().addr());
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetEthernetSrcAddrMACAddress(){
FlowEntryAction act = new FlowEntryAction();
byte[] mac = { 1, 2, 3, 4, 5, 6 };
act.setActionSetEthernetSrcAddr(new MACAddress(mac));
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetEthernetDstAddrActionSetEthernetAddr(){
FlowEntryAction act = new FlowEntryAction();
byte[] mac = { 1, 2, 3, 4, 5, 6 };
ActionSetEthernetAddr setEth = new FlowEntryAction.ActionSetEthernetAddr(new MACAddress(mac));
act.setActionSetEthernetDstAddr( setEth );
assertEquals("action type",FlowEntryAction.ActionValues.ACTION_SET_DL_DST , act.actionType());
assertEquals("addr should be the same", setEth.addr(), act.actionSetEthernetDstAddr().addr());
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetEthernetDstAddrMACAddress(){
FlowEntryAction act = new FlowEntryAction();
byte[] mac = { 1, 2, 3, 4, 5, 6 };
act.setActionSetEthernetDstAddr(new MACAddress(mac));
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetIPv4SrcAddrActionSetIPv4Addr(){
FlowEntryAction act = new FlowEntryAction();
ActionSetIPv4Addr setIp = new FlowEntryAction.ActionSetIPv4Addr(new IPv4("127.0.0.1"));
act.setActionSetIPv4SrcAddr( setIp );
assertEquals("action type",FlowEntryAction.ActionValues.ACTION_SET_NW_SRC , act.actionType());
assertEquals("addr should be the same", setIp.addr(), act.actionSetIPv4SrcAddr().addr());
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetIPv4SrcAddrIPv4(){
FlowEntryAction act = new FlowEntryAction();
act.setActionSetIPv4SrcAddr(new IPv4("127.0.0.1"));
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetIPv4DstAddrActionSetIPv4Addr(){
FlowEntryAction act = new FlowEntryAction();
ActionSetIPv4Addr setIp = new FlowEntryAction.ActionSetIPv4Addr(new IPv4("127.0.0.1"));
act.setActionSetIPv4DstAddr( setIp );
assertEquals("action type",FlowEntryAction.ActionValues.ACTION_SET_NW_DST , act.actionType());
assertEquals("addr should be the same", setIp.addr(), act.actionSetIPv4DstAddr().addr());
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetIPv4DstAddrIPv4(){
FlowEntryAction act = new FlowEntryAction();
act.setActionSetIPv4DstAddr(new IPv4("127.0.0.1"));
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetIpToSActionSetIpToS(){
FlowEntryAction act = new FlowEntryAction();
ActionSetIpToS setIpTos = new FlowEntryAction.ActionSetIpToS((byte)42);
act.setActionSetIpToS( setIpTos );
assertEquals("action type",FlowEntryAction.ActionValues.ACTION_SET_NW_TOS , act.actionType());
assertEquals("tos should be the same", setIpTos.ipToS(), act.actionSetIpToS().ipToS());
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetIpToSByte(){
FlowEntryAction act = new FlowEntryAction();
act.setActionSetIpToS((byte)1);
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetTcpUdpSrcPortActionSetTcpUdpPort(){
FlowEntryAction act = new FlowEntryAction();
ActionSetTcpUdpPort setPorts = new FlowEntryAction.ActionSetTcpUdpPort((short)42);
act.setActionSetTcpUdpSrcPort( setPorts );
assertEquals("action type",FlowEntryAction.ActionValues.ACTION_SET_TP_SRC , act.actionType());
assertEquals("port should be the same", setPorts.port(), act.actionSetTcpUdpSrcPort().port());
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetTcpUdpSrcPortShort(){
FlowEntryAction act = new FlowEntryAction();
act.setActionSetTcpUdpSrcPort((short)1);
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetTcpUdpDstPortActionSetTcpUdpPort(){
FlowEntryAction act = new FlowEntryAction();
ActionSetTcpUdpPort setPorts = new FlowEntryAction.ActionSetTcpUdpPort((short)42);
act.setActionSetTcpUdpDstPort( setPorts );
assertEquals("action type",FlowEntryAction.ActionValues.ACTION_SET_TP_DST , act.actionType());
assertEquals("port should be the same", setPorts.port(), act.actionSetTcpUdpDstPort().port());
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionSetTcpUdpDstPortShort(){
FlowEntryAction act = new FlowEntryAction();
act.setActionSetTcpUdpDstPort((short)1);
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionEnqueueActionEnqueue(){
FlowEntryAction act = new FlowEntryAction();
ActionEnqueue enq = new FlowEntryAction.ActionEnqueue(new Port((short)42), 1);
act.setActionEnqueue( enq );
assertEquals("action type",FlowEntryAction.ActionValues.ACTION_ENQUEUE , act.actionType());
assertEquals("port should be the same", enq.port(), act.actionEnqueue().port());
assertEquals("queue id should be the same", enq.queueId(), act.actionEnqueue().queueId());
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
@Test
public void testSetActionEnqueuePortInt(){
FlowEntryAction act = new FlowEntryAction();
act.setActionEnqueue(new Port((short)42), 1);
FlowEntryAction act_copy = new FlowEntryAction(act);
FlowEntryAction act_copy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy.toString());
assertEquals("toString must match between copies", act.toString(),
act_copy2.toString());
}
}