+/* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */\r
+package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;\r
+\r
+import io.netty.buffer.ByteBuf;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import org.junit.Assert;\r
+import org.junit.Test;\r
+import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.QueueId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.QueueProperty;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetQueueConfigOutput;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.packet.queue.Properties;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.packet.queue.PropertiesBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.queue.get.config.reply.Queues;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.queue.get.config.reply.QueuesBuilder;\r
+\r
+/**\r
+ * @author timotej.kubas\r
+ * @author michal.polkorab\r
+ */\r
+public class QueueGetConfigReplyMessageFactoryMultiTest {\r
+\r
+ /**\r
+ * Testing of {@link QueueGetConfigReplyMessageFactory} for correct\r
+ * translation into POJO\r
+ */\r
+ @Test\r
+ public void test() {\r
+ ByteBuf bb = BufferHelper.buildBuffer("00 01 02 03 " + // port\r
+ "00 00 00 00 " + // padding\r
+ "00 00 00 01 " + // queueId\r
+ "00 00 00 01 " + // port\r
+ "00 00 00 00 00 00 00 00 " + // pad\r
+ "00 01 " + // property\r
+ "00 00 00 00 00 00 " + // pad\r
+ "00 00 00 02 " + // queueId\r
+ "00 00 00 02 " + // port\r
+ "00 00 00 00 00 00 00 00 " + // pad\r
+ "00 01 " + // property\r
+ "00 00 00 00 00 00 " + // pad\r
+ "00 00 00 03 " + // queueId\r
+ "00 00 00 03 " + // port\r
+ "00 00 00 00 00 00 00 00 " + // pad\r
+ "00 01 " + // property\r
+ "00 00 00 00 00 00" // pad\r
+ );\r
+\r
+ GetQueueConfigOutput builtByFactory = BufferHelper.decodeV13(\r
+ QueueGetConfigReplyMessageFactory.getInstance(), bb);\r
+\r
+ BufferHelper.checkHeaderV13(builtByFactory);\r
+ Assert.assertTrue("Wrong port", 66051L == builtByFactory.getPort().getValue());\r
+ Assert.assertTrue("Wrong queues", true == compareLists(builtByFactory.getQueues(),\r
+ createQueuesList()));\r
+ }\r
+\r
+ private static List<Queues> createQueuesList() {\r
+ List<Queues> queuesList = new ArrayList<Queues>();\r
+ QueuesBuilder qb = new QueuesBuilder();\r
+ for (int i = 1; i <= 3; i++) {\r
+ qb.setQueueId(new QueueId((long) i));\r
+ qb.setPort(new PortNumber((long) i));\r
+ qb.setProperties(createPropertiesList());\r
+ queuesList.add(qb.build());\r
+ }\r
+ return queuesList;\r
+ }\r
+\r
+ private static List<Properties> createPropertiesList() {\r
+ List<Properties> propertiesList = new ArrayList<Properties>();\r
+ PropertiesBuilder pb = new PropertiesBuilder();\r
+ pb.setProperty(QueueProperty.values()[1]);\r
+ propertiesList.add(pb.build());\r
+ return propertiesList;\r
+ }\r
+\r
+ private static boolean compareLists(List<Queues> originalList,\r
+ List<Queues> testList) {\r
+ boolean result = false;\r
+ int originalListLength = originalList.size();\r
+ for (int i = 0; i < originalListLength; i++) {\r
+ if (originalList.get(i).getPort().equals(testList.get(i).getPort())) {\r
+ result = true;\r
+ } else {\r
+ result = false;\r
+ break;\r
+ }\r
+ if (originalList.get(i).getQueueId()\r
+ .equals(testList.get(i).getQueueId())) {\r
+ result = true;\r
+ } else {\r
+ result = false;\r
+ break;\r
+ }\r
+ if (originalList.get(i).getProperties().get(0).getProperty()\r
+ .equals(testList.get(i).getProperties().get(0).getProperty())) {\r
+ result = true;\r
+ } else {\r
+ result = false;\r
+ break;\r
+ }\r
+ }\r
+ return result;\r
+ }\r
+\r
+}\r