Error code support for ErrorMessage
[openflowjava.git] / openflow-protocol-impl / src / test / java / org / opendaylight / openflowjava / protocol / impl / serialization / factories / SetConfigMessageFactoryTest.java
index 192e5827d18e79ed67b625d39d2bda3a71d725b4..5f54df8aa982250d011c0157d0aee271bbdd8e00 100644 (file)
@@ -1,21 +1,17 @@
 /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */\r
 package org.opendaylight.openflowjava.protocol.impl.serialization.factories;\r
 \r
-import java.util.ArrayList;\r
-\r
 import io.netty.buffer.ByteBuf;\r
 import io.netty.buffer.UnpooledByteBufAllocator;\r
 \r
 import org.junit.Assert;\r
 import org.junit.Test;\r
-import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.HelloMessageFactoryTest;\r
 import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;\r
+import org.opendaylight.openflowjava.protocol.impl.util.EncodeConstants;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.SwitchConfigFlag;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetConfigInput;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetConfigInputBuilder;\r
 \r
-import com.google.common.collect.Lists;\r
-\r
 /**\r
  * @author timotej.kubas\r
  * @author michal.polkorab\r
@@ -29,20 +25,42 @@ public class SetConfigMessageFactoryTest {
      * @throws Exception \r
      */\r
     @Test\r
-    public void testSetConfigMessage() throws Exception {\r
+    public void testSetConfigMessageV13() throws Exception {\r
         SetConfigInputBuilder builder = new SetConfigInputBuilder();\r
-        BufferHelper.setupHeader(builder);\r
-        ArrayList<SwitchConfigFlag> switchList = Lists.newArrayList(SwitchConfigFlag.forValue(0));\r
-        builder.setFlags(switchList);\r
+        BufferHelper.setupHeader(builder, EncodeConstants.OF13_VERSION_ID);\r
+        SwitchConfigFlag flag = SwitchConfigFlag.FRAGNORMAL;\r
+        builder.setFlags(flag);\r
         builder.setMissSendLen(10);\r
         SetConfigInput message = builder.build();\r
         \r
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
         SetConfigMessageFactory factory = SetConfigMessageFactory.getInstance();\r
-        factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
+        factory.messageToBuffer(EncodeConstants.OF10_VERSION_ID, out, message);\r
         \r
         BufferHelper.checkHeaderV13(out, MESSAGE_TYPE, MESSAGE_LENGTH);\r
-        Assert.assertArrayEquals("Wrong flags", message.getFlags().toArray(), switchList.toArray());\r
-        Assert.assertTrue("Wrong missSendLen", message.getMissSendLen() == out.readShort());\r
+        Assert.assertEquals("Wrong flags", SwitchConfigFlag.FRAGNORMAL.getIntValue(), out.readUnsignedShort());\r
+        Assert.assertEquals("Wrong missSendLen", 10, out.readUnsignedShort());\r
+    }\r
+    \r
+    /**\r
+     * Testing of {@link SetConfigMessageFactory} for correct translation from POJO\r
+     * @throws Exception \r
+     */\r
+    @Test\r
+    public void testSetConfigMessageV10() throws Exception {\r
+        SetConfigInputBuilder builder = new SetConfigInputBuilder();\r
+        BufferHelper.setupHeader(builder, EncodeConstants.OF10_VERSION_ID);\r
+        SwitchConfigFlag flag = SwitchConfigFlag.OFPCFRAGDROP;\r
+        builder.setFlags(flag);\r
+        builder.setMissSendLen(85);\r
+        SetConfigInput message = builder.build();\r
+        \r
+        ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
+        SetConfigMessageFactory factory = SetConfigMessageFactory.getInstance();\r
+        factory.messageToBuffer(EncodeConstants.OF10_VERSION_ID, out, message);\r
+        \r
+        BufferHelper.checkHeaderV10(out, MESSAGE_TYPE, MESSAGE_LENGTH);\r
+        Assert.assertEquals("Wrong flags", SwitchConfigFlag.OFPCFRAGDROP.getIntValue(), out.readUnsignedShort());\r
+        Assert.assertEquals("Wrong missSendLen", 85, out.readUnsignedShort());\r
     }\r
 }\r