new serialization factories and tests
[openflowjava.git] / openflow-protocol-impl / src / test / java / org / opendaylight / openflowjava / protocol / impl / serialization / factories / MultipartRequestMessageFactoryTest.java
1 /* Copyright (C)2013 Pantheon Technologies, s.r.o. All rights reserved. */\r
2 package org.opendaylight.openflowjava.protocol.impl.serialization.factories;\r
3 \r
4 import junit.framework.Assert;\r
5 import io.netty.buffer.ByteBuf;\r
6 import io.netty.buffer.UnpooledByteBufAllocator;\r
7 \r
8 import org.junit.Test;\r
9 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.HelloMessageFactoryTest;\r
10 import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;\r
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterFlags;\r
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartRequestFlags;\r
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;\r
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestMessage;\r
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestMessageBuilder;\r
16 \r
17 /**\r
18  * @author timotej.kubas\r
19  *\r
20  */\r
21 public class MultipartRequestMessageFactoryTest {\r
22     private static final byte PADDING_IN_MULTIPART_REQUEST_MESSAGE = 4;\r
23     \r
24     /**\r
25      * @throws Exception\r
26      * Testing of {@link MultipartRequestMessageFactory} for correct translation from POJO\r
27      */\r
28     @Test\r
29     public void testMultipartRequestMessageFactory() throws Exception {\r
30         MultipartRequestMessageBuilder builder = new MultipartRequestMessageBuilder();\r
31         BufferHelper.setupHeader(builder);\r
32         builder.setType(MultipartType.forValue(5));\r
33         builder.setFlags(new MultipartRequestFlags(true));\r
34         MultipartRequestMessage message = builder.build();\r
35         \r
36         ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();\r
37         MultipartRequestMessageFactory factory = MultipartRequestMessageFactory.getInstance();\r
38         factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message);\r
39         \r
40         BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength());\r
41         Assert.assertEquals("Wrong type", message.getType().getIntValue(), out.readShort());\r
42         Assert.assertEquals("Wrong flags", message.getFlags(), decodeMultipartRequestFlags(out.readShort()));\r
43         out.skipBytes(PADDING_IN_MULTIPART_REQUEST_MESSAGE);\r
44         // TODO multipart body\r
45     }\r
46     \r
47     private static MultipartRequestFlags decodeMultipartRequestFlags(short input){\r
48         final Boolean _oFPMPFREQMORE = (input & (1 << 0)) > 0;\r
49         return new MultipartRequestFlags(_oFPMPFREQMORE);\r
50     }\r
51 }\r