Updated extension registration keys
[openflowjava.git] / openflow-protocol-impl / src / test / java / org / opendaylight / openflowjava / protocol / impl / deserialization / factories / MultipartReplyMessageFactoryTest.java
index b37d51b350c9150a8661965833b2e9ea7183e810..5e6017a9c07e8e05a348cb55892238bf47178cf9 100644 (file)
@@ -13,9 +13,15 @@ import io.netty.buffer.ByteBuf;
 import java.math.BigInteger;
 
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
+import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;
+import org.opendaylight.openflowjava.protocol.api.extensibility.MessageCodeKey;
+import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
+import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
+import org.opendaylight.openflowjava.protocol.impl.deserialization.DeserializerRegistryImpl;
 import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;
-import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;
+import org.opendaylight.openflowjava.util.ByteBufUtils;
 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.EthertypeAction;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.GroupIdAction;
@@ -94,6 +100,19 @@ import org.slf4j.LoggerFactory;
  */
 public class MultipartReplyMessageFactoryTest {
 
+    private OFDeserializer<MultipartReplyMessage> multipartFactory;
+
+    /**
+     * Initializes deserializer registry and lookups correct deserializer
+     */
+    @Before
+    public void startUp() {
+        DeserializerRegistry registry = new DeserializerRegistryImpl();
+        registry.init();
+        multipartFactory = registry.getDeserializer(
+                new MessageCodeKey(EncodeConstants.OF13_VERSION_ID, 19, MultipartReplyMessage.class));
+    }
+
     private static final Logger LOGGER = LoggerFactory
             .getLogger(MultipartReplyMessageFactoryTest.class);
     
@@ -136,7 +155,7 @@ public class MultipartReplyMessageFactoryTest {
         bb.writeBytes(dpDescBytes);
         ByteBufUtils.padBuffer((DESC_STR_LEN - dpDescBytes.length), bb);
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 0x00, builtByFactory.getType().getIntValue());
@@ -189,7 +208,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "00 01 00 08 06 00 00 00 "+
                                               "00 01 00 08 06 00 00 00");
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 0x01, builtByFactory.getType().getIntValue());
@@ -229,7 +248,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "00 00 00 00"//pad
                                               );
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 0x02, builtByFactory.getType().getIntValue());
@@ -260,7 +279,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "AF 01 01 01 01 01 01 01"//matchedCount
                                               );
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 0x03, builtByFactory.getType().getIntValue());
@@ -302,7 +321,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "00 00 00 04"//durationNsec
                                               );
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 0x04, builtByFactory.getType().getIntValue());
@@ -365,7 +384,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "00 00 00 04"//durationNsec
                                               );
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 0x05, builtByFactory.getType().getIntValue());
@@ -421,7 +440,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "FF 02 02 02 02 02 02 02"//byteCountBucket_2.2
                                               );
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 0x06, builtByFactory.getType().getIntValue());
@@ -489,7 +508,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "00 00"//pad
                                               );
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 11, builtByFactory.getType().getIntValue());
@@ -526,7 +545,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "FF 03 03 03 03 03 03 03"//byteBandCount_03
                                               );
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 9, builtByFactory.getType().getIntValue());
@@ -603,7 +622,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "FF 03 03 03 03 03 03 03"//byteBandCount_13
                                               );
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 9, builtByFactory.getType().getIntValue());
@@ -704,7 +723,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "00 00 00 04"//meterBandExperimenter.experimenter
                                               );
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 10, builtByFactory.getType().getIntValue());
@@ -774,7 +793,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "00 00 00"//meterBandDscp01.pad
                                               );
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 10, builtByFactory.getType().getIntValue());
@@ -832,7 +851,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "00 00 01 01 00 00 01 01"
                                               );
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 0xFFFF, builtByFactory.getType().getIntValue());
@@ -855,7 +874,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "00 01 02 03 "+ //portNo
                                               "00 00 00 00 "+ //padding01
                                               "08 00 27 00 B0 EB " + //mac address
-                                              "00 00 "); //padding02
+                                              "00 00"); //padding02
         //port name
         String portName = "SampleText";
         byte[] portNameBytes = new byte[MAX_PORT_NAME_LEN];
@@ -874,7 +893,7 @@ public class MultipartReplyMessageFactoryTest {
                                                 );
         bb.writeBytes(bb2.copy(4, bb2.readableBytes()-4));//excluding version and xid
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 13, builtByFactory.getType().getIntValue());
@@ -945,7 +964,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "00 08 "+//copyTTLIntLen
                                               "00 00 00 00"//copyTTLInPad
                                               );
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 7, builtByFactory.getType().getIntValue());
@@ -965,26 +984,26 @@ public class MultipartReplyMessageFactoryTest {
                 message.getGroupDesc().get(0).getBucketsList().get(0).getWatchGroup().intValue());
         
         Assert.assertEquals("Wrong outputType", Output.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0)
+                .getType());
         
         Assert.assertEquals("Wrong outputPort", 4351, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0).
-                getAction().getAugmentation(PortAction.class).
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0)
+                .getAugmentation(PortAction.class).
                 getPort().getValue().intValue());
         
         Assert.assertEquals("Wrong outputMaxLen", 65535, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0).
-                getAction().getAugmentation(MaxLengthAction.class).
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0)
+                .getAugmentation(MaxLengthAction.class).
                 getMaxLength().intValue());
         
         Assert.assertEquals("Wrong copyTtlOutType", CopyTtlOut.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(1).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(1)
+                .getType());
         
         Assert.assertEquals("Wrong copyTtlInType", CopyTtlIn.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(2).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(2)
+                .getType());
     }
     
     /**
@@ -1024,7 +1043,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "00 00"//pushPbbPad
                                               );
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 7, builtByFactory.getType().getIntValue());
@@ -1042,35 +1061,35 @@ public class MultipartReplyMessageFactoryTest {
         Assert.assertEquals("Wrong bucketWatchGroup", 4, 
                 message.getGroupDesc().get(0).getBucketsList().get(0).getWatchGroup().intValue());
         Assert.assertEquals("Wrong setMplsTtlType", SetMplsTtl.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0)
+                .getType());
         Assert.assertEquals("Wrong setMplsTtlMPLS_TTL", 9, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0).
-                getAction().getAugmentation(MplsTtlAction.class).
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0)
+                .getAugmentation(MplsTtlAction.class).
                 getMplsTtl().intValue());
         Assert.assertEquals("Wrong decMplsTtlType", DecMplsTtl.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(1).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(1)
+                .getType());
         Assert.assertEquals("Wrong pushVlanType", PushVlan.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(2).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(2)
+                .getType());
         Assert.assertEquals("Wrong pushVlanEthertype", 32, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(2).
-                getAction().getAugmentation(EthertypeAction.class).
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(2)
+                .getAugmentation(EthertypeAction.class).
                 getEthertype().getValue().intValue());
         Assert.assertEquals("Wrong pushMplsType", PushMpls.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(3).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(3)
+                .getType());
         Assert.assertEquals("Wrong pushMplsEthertype", 255, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(3).
-                getAction().getAugmentation(EthertypeAction.class).
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(3).
+                getAugmentation(EthertypeAction.class).
                 getEthertype().getValue().intValue());
         Assert.assertEquals("Wrong pushPbbType", PushPbb.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(4).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(4)
+                .getType());
         Assert.assertEquals("Wrong pushPbbEthertype", 4095, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(4).
-                getAction().getAugmentation(EthertypeAction.class).
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(4)
+                .getAugmentation(EthertypeAction.class).
                 getEthertype().getValue().intValue());
     }
     
@@ -1111,7 +1130,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "00 00 00 00"//decNwTtlPad
                                               );
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 7, builtByFactory.getType().getIntValue());
@@ -1127,35 +1146,35 @@ public class MultipartReplyMessageFactoryTest {
         Assert.assertEquals("Wrong bucketWatchGroup", 4, 
                 message.getGroupDesc().get(0).getBucketsList().get(0).getWatchGroup().intValue());
         Assert.assertEquals("Wrong popVlanType", PopVlan.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0)
+                .getType());
         Assert.assertEquals("Wrong popPbbType", PopPbb.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(1).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(1)
+                .getType());
         Assert.assertEquals("Wrong popMplsType", PopMpls.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(2).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(2)
+                .getType());
         Assert.assertEquals("Wrong popMplsEthertype", 207, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(2).
-                getAction().getAugmentation(EthertypeAction.class).
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(2)
+                .getAugmentation(EthertypeAction.class).
                 getEthertype().getValue().intValue());
         Assert.assertEquals("Wrong setQueueType", SetQueue.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(3).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(3)
+                .getType());
         Assert.assertEquals("Wrong setQueueQueueId", 13565952, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(3).
-                getAction().getAugmentation(QueueIdAction.class).
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(3)
+                .getAugmentation(QueueIdAction.class).
                 getQueueId().intValue());
         Assert.assertEquals("Wrong groupType", Group.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(4).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(4)
+                .getType());
         Assert.assertEquals("Wrong groupGroupId", 13565952, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(4).
-                getAction().getAugmentation(GroupIdAction.class).
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(4)
+                .getAugmentation(GroupIdAction.class).
                 getGroupId().intValue());
         Assert.assertEquals("Wrong decNwTtlType", DecNwTtl.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(5).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(5)
+                .getType());
     }
     
     /**
@@ -1187,7 +1206,7 @@ public class MultipartReplyMessageFactoryTest {
                                               "00 00 00 00"
                 );
         
-        MultipartReplyMessage builtByFactory = BufferHelper.decodeV13(MultipartReplyMessageFactory.getInstance(), bb);
+        MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong type", 7, builtByFactory.getType().getIntValue());
@@ -1207,28 +1226,28 @@ public class MultipartReplyMessageFactoryTest {
                 message.getGroupDesc().get(0).getBucketsList().get(0).getWatchGroup().intValue());
         
         Assert.assertEquals("Wrong nwTTlType", SetNwTtl.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0)
+                .getType());
         
         Assert.assertEquals("Wrong nwTTlnwTTL", 14, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(0).
-                getAction().getAugmentation(NwTtlAction.class).getNwTtl().intValue());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(0)
+                .getAugmentation(NwTtlAction.class).getNwTtl().intValue());
         
         Assert.assertEquals("Wrong setFieldType", SetField.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(1).
-                getAction().getType());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(1)
+                .getType());
         
         Assert.assertEquals("Wrong setFieldOXMClass", OpenflowBasicClass.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(1).
-                getAction().getAugmentation(OxmFieldsAction.class).getMatchEntries().get(0).getOxmClass());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(1)
+                .getAugmentation(OxmFieldsAction.class).getMatchEntries().get(0).getOxmClass());
         
         Assert.assertEquals("Wrong setFieldOXMField", InPort.class, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(1).
-                getAction().getAugmentation(OxmFieldsAction.class).getMatchEntries().get(0).getOxmMatchField());
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(1)
+                .getAugmentation(OxmFieldsAction.class).getMatchEntries().get(0).getOxmMatchField());
         
         Assert.assertEquals("Wrong setFieldOXMValue", 255, 
-                message.getGroupDesc().get(0).getBucketsList().get(0).getActionsList().get(1).
-                getAction().getAugmentation(OxmFieldsAction.class).getMatchEntries().get(0).
+                message.getGroupDesc().get(0).getBucketsList().get(0).getAction().get(1)
+                .getAugmentation(OxmFieldsAction.class).getMatchEntries().get(0).
                 getAugmentation(PortNumberMatchEntry.class).getPortNumber().getValue().intValue());
     }
 }