X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflow-protocol-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fopenflowjava%2Fprotocol%2Fimpl%2Futil%2FOF10ActionsSerializerTest.java;h=4a80e8c325f8c25ed9e4331953fc999d5c0d9a53;hb=60ad94454217d7d1f6f9e65f39f72ae111ecc845;hp=1f5ad76ac6f9398e0da973dc196fbb9dacf8049a;hpb=7ec08418c1c54142deaa0d3a15726447f86c36a0;p=openflowjava.git diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializerTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializerTest.java index 1f5ad76a..4a80e8c3 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializerTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/util/OF10ActionsSerializerTest.java @@ -14,13 +14,16 @@ import java.util.ArrayList; import java.util.List; import org.junit.Assert; +import org.junit.Before; import org.junit.Test; +import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry; +import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants; +import org.opendaylight.openflowjava.protocol.impl.serialization.SerializerRegistryImpl; +import org.opendaylight.openflowjava.util.ByteBufUtils; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.DlAddressAction; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.DlAddressActionBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterAction; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterActionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.IpAddressAction; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.IpAddressActionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.MaxLengthAction; @@ -36,7 +39,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.VlanVidAction; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.VlanVidActionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Enqueue; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Experimenter; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Output; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetDlDst; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetDlSrc; @@ -48,9 +50,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev1 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetVlanPcp; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetVlanVid; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.StripVlan; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsListBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.ActionBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber; /** @@ -59,13 +60,23 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13 */ public class OF10ActionsSerializerTest { + private SerializerRegistry registry; + + /** + * Initializes serializer table and stores correct factory in field + */ + @Before + public void startUp() { + registry = new SerializerRegistryImpl(); + registry.init(); + } + /** * Testing correct serialization of actions (OF v1.0) */ @Test public void test() { - List actions = new ArrayList<>(); - ActionsListBuilder listBuilder = new ActionsListBuilder(); + List actions = new ArrayList<>(); ActionBuilder actionBuilder = new ActionBuilder(); actionBuilder.setType(Output.class); PortActionBuilder portBuilder = new PortActionBuilder(); @@ -74,86 +85,64 @@ public class OF10ActionsSerializerTest { MaxLengthActionBuilder maxLen = new MaxLengthActionBuilder(); maxLen.setMaxLength(32); actionBuilder.addAugmentation(MaxLengthAction.class, maxLen.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetVlanVid.class); VlanVidActionBuilder vlanBuilder = new VlanVidActionBuilder(); vlanBuilder.setVlanVid(15); actionBuilder.addAugmentation(VlanVidAction.class, vlanBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetVlanPcp.class); VlanPcpActionBuilder pcpBuilder = new VlanPcpActionBuilder(); pcpBuilder.setVlanPcp((short) 16); actionBuilder.addAugmentation(VlanPcpAction.class, pcpBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(StripVlan.class); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetDlSrc.class); DlAddressActionBuilder dlBuilder = new DlAddressActionBuilder(); dlBuilder.setDlAddress(new MacAddress("00:00:00:02:03:04")); actionBuilder.addAugmentation(DlAddressAction.class, dlBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetDlDst.class); dlBuilder = new DlAddressActionBuilder(); dlBuilder.setDlAddress(new MacAddress("00:00:00:01:02:03")); actionBuilder.addAugmentation(DlAddressAction.class, dlBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetNwSrc.class); IpAddressActionBuilder ipBuilder = new IpAddressActionBuilder(); ipBuilder.setIpAddress(new Ipv4Address("10.0.0.1")); actionBuilder.addAugmentation(IpAddressAction.class, ipBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetNwDst.class); ipBuilder = new IpAddressActionBuilder(); ipBuilder.setIpAddress(new Ipv4Address("10.0.0.3")); actionBuilder.addAugmentation(IpAddressAction.class, ipBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetNwTos.class); NwTosActionBuilder tosBuilder = new NwTosActionBuilder(); tosBuilder.setNwTos((short) 204); actionBuilder.addAugmentation(NwTosAction.class, tosBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetTpSrc.class); portBuilder = new PortActionBuilder(); portBuilder.setPort(new PortNumber(6653L)); actionBuilder.addAugmentation(PortAction.class, portBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(SetTpDst.class); portBuilder = new PortActionBuilder(); portBuilder.setPort(new PortNumber(6633L)); actionBuilder.addAugmentation(PortAction.class, portBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); + actions.add(actionBuilder.build()); actionBuilder = new ActionBuilder(); actionBuilder.setType(Enqueue.class); portBuilder = new PortActionBuilder(); @@ -162,19 +151,11 @@ public class OF10ActionsSerializerTest { QueueIdActionBuilder queueBuilder = new QueueIdActionBuilder(); queueBuilder.setQueueId(400L); actionBuilder.addAugmentation(QueueIdAction.class, queueBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); - listBuilder = new ActionsListBuilder(); - actionBuilder = new ActionBuilder(); - actionBuilder.setType(Experimenter.class); - ExperimenterActionBuilder expBuilder = new ExperimenterActionBuilder(); - expBuilder.setExperimenter(500L); - actionBuilder.addAugmentation(ExperimenterAction.class, expBuilder.build()); - listBuilder.setAction(actionBuilder.build()); - actions.add(listBuilder.build()); + actions.add(actionBuilder.build()); ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer(); - OF10ActionsSerializer.encodeActionsV10(out, actions); + ListSerializer.serializeList(actions, TypeKeyMakerFactory + .createActionKeyMaker(EncodeConstants.OF10_VERSION_ID), registry, out); Assert.assertEquals("Wrong action type", 0, out.readUnsignedShort()); Assert.assertEquals("Wrong action length", 8, out.readUnsignedShort()); @@ -232,9 +213,6 @@ public class OF10ActionsSerializerTest { Assert.assertEquals("Wrong port", 6613, out.readUnsignedShort()); out.skipBytes(6); Assert.assertEquals("Wrong queue-id", 400, out.readUnsignedInt()); - Assert.assertEquals("Wrong action type", 65535, out.readUnsignedShort()); - Assert.assertEquals("Wrong action length", 8, out.readUnsignedShort()); - Assert.assertEquals("Wrong vendor-id", 500, out.readUnsignedInt()); Assert.assertTrue("Written more bytes than needed", out.readableBytes() == 0); }