blob: c93f1323151778fbdcc453ae6e4cac61970bd196 [file] [log] [blame]
package net.onrc.onos.core.util;
import static org.junit.Assert.assertEquals;
import net.floodlightcontroller.util.MACAddress;
import net.onrc.onos.core.util.FlowEntryAction.ActionEnqueue;
import net.onrc.onos.core.util.FlowEntryAction.ActionOutput;
import net.onrc.onos.core.util.FlowEntryAction.ActionSetEthernetAddr;
import net.onrc.onos.core.util.FlowEntryAction.ActionSetIPv4Addr;
import net.onrc.onos.core.util.FlowEntryAction.ActionSetIpToS;
import net.onrc.onos.core.util.FlowEntryAction.ActionSetTcpUdpPort;
import net.onrc.onos.core.util.FlowEntryAction.ActionSetVlanId;
import net.onrc.onos.core.util.FlowEntryAction.ActionSetVlanPriority;
import net.onrc.onos.core.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 actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.toString());
}
@Test
public void testSetActionOutputPort() {
FlowEntryAction act = new FlowEntryAction();
act.setActionOutput(new Port((short) 42));
FlowEntryAction actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.toString());
}
@Test
public void testSetActionOutputToController() {
FlowEntryAction act = new FlowEntryAction();
act.setActionOutputToController((short) 0);
FlowEntryAction actCopy = new FlowEntryAction();
actCopy.setActionOutput(new Port(Port.PortValues.PORT_CONTROLLER));
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.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 actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.toString());
}
@Test
public void testSetActionSetVlanIdShort() {
FlowEntryAction act = new FlowEntryAction();
act.setActionSetVlanId((short) 42);
FlowEntryAction actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.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 actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.toString());
}
@Test
public void testSetActionSetVlanPriorityByte() {
FlowEntryAction act = new FlowEntryAction();
act.setActionSetVlanPriority((byte) 42);
FlowEntryAction actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.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 actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.toString());
}
@Test
public void testSetActionStripVlanBoolean() {
FlowEntryAction act = new FlowEntryAction();
act.setActionStripVlan(true);
FlowEntryAction actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.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 actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.toString());
}
@Test
public void testSetActionSetEthernetSrcAddrMACAddress() {
FlowEntryAction act = new FlowEntryAction();
byte[] mac = {1, 2, 3, 4, 5, 6};
act.setActionSetEthernetSrcAddr(new MACAddress(mac));
FlowEntryAction actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.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 actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.toString());
}
@Test
public void testSetActionSetEthernetDstAddrMACAddress() {
FlowEntryAction act = new FlowEntryAction();
byte[] mac = {1, 2, 3, 4, 5, 6};
act.setActionSetEthernetDstAddr(new MACAddress(mac));
FlowEntryAction actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.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 actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.toString());
}
@Test
public void testSetActionSetIPv4SrcAddrIPv4() {
FlowEntryAction act = new FlowEntryAction();
act.setActionSetIPv4SrcAddr(new IPv4("127.0.0.1"));
FlowEntryAction actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.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 actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.toString());
}
@Test
public void testSetActionSetIPv4DstAddrIPv4() {
FlowEntryAction act = new FlowEntryAction();
act.setActionSetIPv4DstAddr(new IPv4("127.0.0.1"));
FlowEntryAction actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.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 actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.toString());
}
@Test
public void testSetActionSetIpToSByte() {
FlowEntryAction act = new FlowEntryAction();
act.setActionSetIpToS((byte) 1);
FlowEntryAction actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.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 actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.toString());
}
@Test
public void testSetActionSetTcpUdpSrcPortShort() {
FlowEntryAction act = new FlowEntryAction();
act.setActionSetTcpUdpSrcPort((short) 1);
FlowEntryAction actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.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 actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.toString());
}
@Test
public void testSetActionSetTcpUdpDstPortShort() {
FlowEntryAction act = new FlowEntryAction();
act.setActionSetTcpUdpDstPort((short) 1);
FlowEntryAction actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.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 actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.toString());
}
@Test
public void testSetActionEnqueuePortInt() {
FlowEntryAction act = new FlowEntryAction();
act.setActionEnqueue(new Port((short) 42), 1);
FlowEntryAction actCopy = new FlowEntryAction(act);
FlowEntryAction actCopy2 = new FlowEntryAction(act.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy.toString());
assertEquals("toString must match between copies", act.toString(),
actCopy2.toString());
}
}