Bug 1277 - Move ByteBuffUtils to separate bundle
[openflowjava.git] / openflow-protocol-impl / src / test / java / org / opendaylight / openflowjava / protocol / impl / deserialization / factories / PortStatusMessageFactoryTest.java
index 9d427381250ec19a6f6095159b619a8e65842abe..b538e856f21430aaa974d9e9a5cf32874363c9f9 100644 (file)
@@ -12,8 +12,14 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;
 import io.netty.buffer.ByteBuf;
 
 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.impl.deserialization.DeserializerRegistryImpl;
 import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;
+import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
 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.common.types.rev130731.PortConfig;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortFeatures;
@@ -26,6 +32,19 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  */
 public class PortStatusMessageFactoryTest {
 
+    private OFDeserializer<PortStatusMessage> statusFactory;
+
+    /**
+     * Initializes deserializer registry and lookups correct deserializer
+     */
+    @Before
+    public void startUp() {
+        DeserializerRegistry registry = new DeserializerRegistryImpl();
+        registry.init();
+        statusFactory = registry.getDeserializer(
+                new MessageCodeKey(EncodeConstants.OF13_VERSION_ID, 12, PortStatusMessage.class));
+    }
+
     /**
      * Testing {@link PortStatusMessageFactory} for correct translation into POJO
      */
@@ -37,36 +56,38 @@ public class PortStatusMessageFactoryTest {
                                               "00 00 00 00 " + //padding in ofp_port1
                                               "08 00 27 00 B0 EB " + //mac address
                                               "00 00 " + //padding in ofp_port2
+                                              "73 31 2d 65 74 68 31 00 00 00 00 00 00 00 00 00 " + // port name, String "s1-eth1"
                                               "00 00 00 41 " + //port config
                                               "00 00 00 05 " + //port state
                                               "00 00 00 81 " + //current features
-                                              "00 00 00 81 " + //advertised features
-                                              "00 00 00 81 " + //supported features
+                                              "00 00 00 A1 " + //advertised features
+                                              "00 00 00 B1 " + //supported features
                                               "00 00 00 81 " + //peer features
                                               "00 00 00 81 " + //curr speed
                                               "00 00 00 80" //max speed
                                               );
         
-        PortStatusMessage builtByFactory = BufferHelper.decodeV13(PortStatusMessageFactory.getInstance(), bb);
+        PortStatusMessage builtByFactory = BufferHelper.deserialize(statusFactory, bb);
         
         BufferHelper.checkHeaderV13(builtByFactory);
         Assert.assertEquals("Wrong reason", 0x01, builtByFactory.getReason().getIntValue());
         Assert.assertEquals("Wrong portNumber", 66051L, builtByFactory.getPortNo().longValue());
         Assert.assertEquals("Wrong macAddress", new MacAddress("08:00:27:00:B0:EB"), builtByFactory.getHwAddr());
+        Assert.assertEquals("Wrong name", "s1-eth1", builtByFactory.getName());
         Assert.assertEquals("Wrong portConfig", new PortConfig(false, true, false, true), builtByFactory.getConfig());
         Assert.assertEquals("Wrong portState", new PortState(false, true, true), builtByFactory.getState());
-        Assert.assertEquals("Wrong currentFeatures", new PortFeatures(true, false, false, false,
-                                             false, false, false, true, false, false, false, false, 
+        Assert.assertEquals("Wrong currentFeatures", new PortFeatures(false, false, false, false,
+                                             false, true, false, false, false, true, false, false,
                                              false, false, false, false), builtByFactory.getCurrentFeatures());
-        Assert.assertEquals("Wrong advertisedFeatures", new PortFeatures(true, false, false, false,
-                                             false, false, false, true, false, false, false, false, 
+        Assert.assertEquals("Wrong advertisedFeatures", new PortFeatures(false, false, false, false,
+                                             false, true, true, false, false, true, false, false,
                                              false, false, false, false), builtByFactory.getAdvertisedFeatures());
-        Assert.assertEquals("Wrong supportedFeatures", new PortFeatures(true, false, false, false,
-                                             false, false, false, true, false, false, false, false, 
-                                             false, false, false, false), builtByFactory.getSupportedFeatures());
-        Assert.assertEquals("Wrong peerFeatures", new PortFeatures(true, false, false, false,
-                                             false, false, false, true, false, false, false, false, 
+        Assert.assertEquals("Wrong supportedFeatures", new PortFeatures(false, false, false, false,
+                                             false, true, true, true, false, true, false, false,
                                              false, false, false, false), builtByFactory.getSupportedFeatures());
+        Assert.assertEquals("Wrong peerFeatures", new PortFeatures(false, false, false, false,
+                                                  false, true, false, false, false, true, false, false,
+                                                  false, false, false, false), builtByFactory.getPeerFeatures());
         Assert.assertEquals("Wrong currSpeed", 129L, builtByFactory.getCurrSpeed().longValue());
         Assert.assertEquals("Wrong maxSpeed", 128L, builtByFactory.getMaxSpeed().longValue());
     }