Merge "ignore XID by pairing request - response"
[openflowjava.git] / openflow-protocol-impl / src / test / java / org / opendaylight / openflowjava / protocol / impl / serialization / factories / HelloInputMessageFactoryTest.java
index 756a1101d977b0e95e4bac8ff74fc1597d4df3bf..8f710bc1f0686d55bdf5ec6af7712c5de7309971 100644 (file)
@@ -50,39 +50,80 @@ public class HelloInputMessageFactoryTest {
      * @throws Exception \r
      */\r
     @Test\r
-    public void testWithElementsSet() throws Exception {\r
+    public void testWith4BitVersionBitmap() throws Exception {\r
+        int lengthOfBitmap = 4;\r
         HelloInputBuilder builder = new HelloInputBuilder();\r
         BufferHelper.setupHeader(builder);\r
-        List<Elements> expectedElement = createElement();\r
+        List<Elements> expectedElement = createElement(lengthOfBitmap);\r
         builder.setElements(expectedElement);\r
         HelloInput message = builder.build();\r
         \r
         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
         HelloInputMessageFactory factory = HelloInputMessageFactory.getInstance();\r
         factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
-        LOGGER.info("bytebuf: " + ByteBufUtils.byteBufToHexString(out));\r
+        LOGGER.debug("bytebuf: " + ByteBufUtils.byteBufToHexString(out));\r
         \r
         BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));\r
         Elements element = readElement(out).get(0);\r
         Assert.assertEquals("Wrong element type", expectedElement.get(0).getType(), element.getType());\r
-        LOGGER.info(expectedElement.get(0).getVersionBitmap().toString());\r
-        LOGGER.info(element.getVersionBitmap().toString());\r
-        Assert.assertArrayEquals("Wrong element bitmap", expectedElement.get(0).getVersionBitmap().toArray(), element.getVersionBitmap().toArray());\r
+        Elements comparation = createComparationElement(lengthOfBitmap).get(0);\r
+        Assert.assertArrayEquals("Wrong element bitmap", comparation.getVersionBitmap().toArray(), element.getVersionBitmap().toArray());\r
     }\r
     \r
-    private static List<Elements> createElement() {\r
+    /**\r
+     * Testing of {@link HelloInputMessageFactory} for correct translation from POJO\r
+     * @throws Exception \r
+     */\r
+    @Test\r
+    public void testWith64BitVersionBitmap() throws Exception {\r
+        int lengthOfBitmap = 64;\r
+        HelloInputBuilder builder = new HelloInputBuilder();\r
+        BufferHelper.setupHeader(builder);\r
+        List<Elements> expectedElement = createElement(lengthOfBitmap);\r
+        builder.setElements(expectedElement);\r
+        HelloInput message = builder.build();\r
+        \r
+        ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
+        HelloInputMessageFactory factory = HelloInputMessageFactory.getInstance();\r
+        factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
+        LOGGER.debug("bytebuf: " + ByteBufUtils.byteBufToHexString(out));\r
+        \r
+        BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message));\r
+        Elements element = readElement(out).get(0);\r
+        Assert.assertEquals("Wrong element type", expectedElement.get(0).getType(), element.getType());\r
+        Elements comparation = createComparationElement(lengthOfBitmap).get(0);\r
+        Assert.assertArrayEquals("Wrong element bitmap", comparation.getVersionBitmap().toArray(), element.getVersionBitmap().toArray());\r
+    }\r
+    \r
+    private static List<Elements> createElement(int lengthOfBitmap) {\r
         ElementsBuilder elementsBuilder = new ElementsBuilder();\r
         List<Elements> elementsList = new ArrayList<>();\r
         List<Boolean> booleanList = new ArrayList<>();\r
-\r
-        for (int i = 0; i < 64; i++) {\r
+        for (int i = 0; i < lengthOfBitmap; i++) {\r
             booleanList.add(true);\r
         }\r
-\r
         elementsBuilder.setType(HelloElementType.forValue(1));\r
         elementsBuilder.setVersionBitmap(booleanList);\r
         elementsList.add(elementsBuilder.build());\r
-        \r
+        return elementsList;\r
+    }\r
+    \r
+    private static List<Elements> createComparationElement(int lengthOfBitmap) {\r
+        ElementsBuilder elementsBuilder = new ElementsBuilder();\r
+        List<Elements> elementsList = new ArrayList<>();\r
+        List<Boolean> booleanList = new ArrayList<>();\r
+        for (int i = 0; i < lengthOfBitmap; i++) {\r
+            booleanList.add(true);\r
+        }\r
+        if ((lengthOfBitmap % Integer.SIZE) != 0) {\r
+            for (int i = 0; i < (Integer.SIZE - (lengthOfBitmap % Integer.SIZE)); i++) {\r
+                booleanList.add(false);\r
+            }\r
+        }\r
+        LOGGER.debug("boolsize " + booleanList.size());\r
+        elementsBuilder.setType(HelloElementType.forValue(1));\r
+        elementsBuilder.setVersionBitmap(booleanList);\r
+        elementsList.add(elementsBuilder.build());\r
         return elementsList;\r
     }\r
     \r
@@ -110,7 +151,6 @@ public class HelloInputMessageFactoryTest {
     }\r
     \r
     private static List<Boolean> readVersionBitmap(int[] input){\r
-        LOGGER.info("input.length: " + input.length);\r
         List<Boolean> versionBitmapList = new ArrayList<>();\r
         for (int i = 0; i < input.length; i++) {\r
             int mask = input[i];\r
@@ -118,7 +158,6 @@ public class HelloInputMessageFactoryTest {
                     versionBitmapList.add((mask & (1<<j)) != 0);\r
             }\r
         }\r
-        LOGGER.info("versionbitmaplist.size: " + versionBitmapList.size());\r
         return versionBitmapList;\r
     }\r
 \r