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