--- /dev/null
+/*\r
+ * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+\r
+package org.opendaylight.openflowjava.protocol.impl.serialization.factories.multipart;\r
+\r
+import io.netty.buffer.ByteBuf;\r
+import io.netty.buffer.UnpooledByteBufAllocator;\r
+\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import org.opendaylight.openflowjava.protocol.api.extensibility.MessageTypeKey;\r
+import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;\r
+import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;\r
+import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;\r
+import org.opendaylight.openflowjava.protocol.impl.serialization.SerializerRegistryImpl;\r
+import org.opendaylight.openflowjava.protocol.impl.serialization.factories.MultipartRequestInputFactory;\r
+import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartRequestFlags;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInputBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupFeaturesCaseBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.group.features._case.MultipartRequestGroupFeaturesBuilder;\r
+\r
+/**\r
+ * @author michal.polkorab\r
+ *\r
+ */\r
+public class MultipartRequestGroupFeaturesTest {\r
+\r
+ private SerializerRegistry registry;\r
+ private OFSerializer<MultipartRequestInput> multipartFactory;\r
+\r
+ /**\r
+ * Initializes serializer registry and stores correct factory in field\r
+ */\r
+ @Before\r
+ public void startUp() {\r
+ registry = new SerializerRegistryImpl();\r
+ registry.init();\r
+ multipartFactory = registry.getSerializer(\r
+ new MessageTypeKey<>(EncodeConstants.OF13_VERSION_ID, MultipartRequestInput.class));\r
+ }\r
+\r
+ /**\r
+ * Tests {@link MultipartRequestInputFactory} - GroupFeatures case\r
+ * @throws Exception \r
+ */\r
+ @Test\r
+ public void test() throws Exception {\r
+ MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();\r
+ BufferHelper.setupHeader(builder, EncodeConstants.OF13_VERSION_ID);\r
+ builder.setType(MultipartType.OFPMPGROUPFEATURES);\r
+ builder.setFlags(new MultipartRequestFlags(false));\r
+ MultipartRequestGroupFeaturesCaseBuilder caseBuilder = new MultipartRequestGroupFeaturesCaseBuilder();\r
+ MultipartRequestGroupFeaturesBuilder featuresBuilder = new MultipartRequestGroupFeaturesBuilder();\r
+ featuresBuilder.setEmpty(true);\r
+ caseBuilder.setMultipartRequestGroupFeatures(featuresBuilder.build());\r
+ builder.setMultipartRequestBody(caseBuilder.build());\r
+ MultipartRequestInput message = builder.build();\r
+\r
+ ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
+ multipartFactory.serialize(message, out);\r
+\r
+ BufferHelper.checkHeaderV13(out, (byte) 18, 16);\r
+ Assert.assertEquals("Wrong type", 8, out.readUnsignedShort());\r
+ Assert.assertEquals("Wrong flags", 0, out.readUnsignedShort());\r
+ out.skipBytes(4); // skip padding\r
+ Assert.assertTrue("Unexpected data", out.readableBytes() == 0);\r
+ }\r
+}
\ No newline at end of file