Extensibility support (serialization part)
[openflowjava.git] / openflow-protocol-impl / src / test / java / org / opendaylight / openflowjava / protocol / impl / util / OF13ActionsSerializerTest.java
@@ -14,11 +14,14 @@ 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.MessageTypeKey;\r
+import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;\r
+import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;\r
+import org.opendaylight.openflowjava.protocol.impl.serialization.SerializerRegistryImpl;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.EthertypeAction;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.EthertypeActionBuilder;\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.GroupIdAction;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.GroupIdActionBuilder;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.MaxLengthAction;\r
@@ -39,7 +42,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev1
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.CopyTtlOut;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.DecMplsTtl;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.DecNwTtl;\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.Group;\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.PopMpls;\r
@@ -65,7 +67,21 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.
  * @author michal.polkorab\r
  * \r
  */\r
-public class ActionsSerializerTest {\r
+public class OF13ActionsSerializerTest {\r
+\r
+    private SerializerRegistry registry;\r
+    private OFSerializer<Action> actionSerializer;\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
+        actionSerializer = registry.getSerializer(\r
+                new MessageTypeKey<>(EncodeConstants.OF13_VERSION_ID, Action.class));\r
+    }\r
 \r
     /**\r
      * Testing correct serialization of actions\r
@@ -163,16 +179,9 @@ public class ActionsSerializerTest {
         actionBuilder = new ActionBuilder();\r
         actionBuilder.setType(PopPbb.class);\r
         actions.add(actionBuilder.build());\r
-        actionBuilder = new ActionBuilder();\r
-        actionBuilder.setType(Experimenter.class);\r
-        ExperimenterActionBuilder experimenter = new ExperimenterActionBuilder();\r
-        experimenter.setExperimenter(4L);\r
-        experimenter.setData(new byte[]{0, 1, 2, 3, 4, 5, 6, 7});\r
-        actionBuilder.addAugmentation(ExperimenterAction.class, experimenter.build());\r
-        actions.add(actionBuilder.build());\r
         \r
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
-        ActionsSerializer.encodeActions(actions, out);\r
+        CodingUtils.serializeList(actions, actionSerializer, out);\r
         \r
         Assert.assertEquals("Wrong action type", 0, out.readUnsignedShort());\r
         Assert.assertEquals("Wrong action length", 16, out.readUnsignedShort());\r
@@ -234,12 +243,6 @@ public class ActionsSerializerTest {
         Assert.assertEquals("Wrong action type", 27, out.readUnsignedShort());\r
         Assert.assertEquals("Wrong action length", 8, out.readUnsignedShort());\r
         out.skipBytes(4);\r
-        Assert.assertEquals("Wrong action type", 65535, out.readUnsignedShort());\r
-        Assert.assertEquals("Wrong action length", 16, out.readUnsignedShort());\r
-        Assert.assertEquals("Wrong experimenter", 4, out.readUnsignedInt());\r
-        byte[] data = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];\r
-        out.readBytes(data);\r
-        Assert.assertArrayEquals("Wrong data", new byte[]{0, 1, 2, 3, 4, 5, 6, 7}, data);\r
         Assert.assertTrue("Unread data", out.readableBytes() == 0);\r
     }\r
 \r