208bea1939232702c671091dd3206caaa1247316
[openflowjava.git] / openflow-protocol-impl / src / test / java / org / opendaylight / openflowjava / protocol / impl / deserialization / factories / multipart / MultipartReplyMeterFeaturesTest.java
1 /*\r
2  * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 \r
9 package org.opendaylight.openflowjava.protocol.impl.deserialization.factories.multipart;\r
10 \r
11 import io.netty.buffer.ByteBuf;\r
12 \r
13 import org.junit.Assert;\r
14 import org.junit.Test;\r
15 import org.opendaylight.openflowjava.protocol.impl.deserialization.factories.MultipartReplyMessageFactory;\r
16 import org.opendaylight.openflowjava.protocol.impl.util.BufferHelper;\r
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterBandTypeBitmap;\r
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterFlags;\r
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;\r
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyMeterFeaturesCase;\r
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.meter.features._case.MultipartReplyMeterFeatures;\r
22 \r
23 /**\r
24  * @author michal.polkorab\r
25  *\r
26  */\r
27 public class MultipartReplyMeterFeaturesTest {\r
28 \r
29     private MultipartReplyMessageFactory factory = new MultipartReplyMessageFactory();\r
30 \r
31     /**\r
32      * Testing {@link MultipartReplyMessageFactory} for correct translation into POJO\r
33      */\r
34     @Test\r
35     public void testMultipartReplyMeterFeatures(){\r
36         ByteBuf bb = BufferHelper.buildBuffer("00 0B 00 01 00 00 00 00 "+\r
37                                               "00 00 00 0A " + // maxMeter\r
38                                               "00 00 00 06 " + // bandTypes\r
39                                               "00 00 00 0F " + // capabilities\r
40                                               "07 08 00 00" // maxBands, maxColor, padding\r
41                                               );\r
42         MultipartReplyMessage builtByFactory = BufferHelper.deserialize(factory, bb);\r
43 \r
44         BufferHelper.checkHeaderV13(builtByFactory);\r
45         Assert.assertEquals("Wrong type", 11, builtByFactory.getType().getIntValue());\r
46         Assert.assertEquals("Wrong flag", true, builtByFactory.getFlags().isOFPMPFREQMORE());\r
47         MultipartReplyMeterFeaturesCase messageCase = (MultipartReplyMeterFeaturesCase) builtByFactory.getMultipartReplyBody();\r
48         MultipartReplyMeterFeatures message = messageCase.getMultipartReplyMeterFeatures();\r
49         Assert.assertEquals("Wrong maxMeter", 10, message.getMaxMeter().intValue());\r
50         Assert.assertEquals("Wrong bandTypes", new MeterBandTypeBitmap(true, true), message.getBandTypes());\r
51         Assert.assertEquals("Wrong capabilities", new MeterFlags(true, true, true, true), message.getCapabilities());\r
52         Assert.assertEquals("Wrong maxBands", 7, message.getMaxBands().intValue());\r
53         Assert.assertEquals("Wrong maxColor", 8, message.getMaxColor().intValue());\r
54     }\r
55 \r
56     /**\r
57      * Testing {@link MultipartReplyMessageFactory} for correct translation into POJO\r
58      */\r
59     @Test\r
60     public void testMultipartReplyMeterFeatures2(){\r
61         ByteBuf bb = BufferHelper.buildBuffer("00 0B 00 01 00 00 00 00 "+\r
62                                               "00 00 00 09 " + // maxMeter\r
63                                               "00 00 00 00 " + // bandTypes\r
64                                               "00 00 00 00 " + // capabilities\r
65                                               "03 04 00 00" // maxBands, maxColor, padding\r
66                                               );\r
67         MultipartReplyMessage builtByFactory = BufferHelper.deserialize(factory, bb);\r
68 \r
69         BufferHelper.checkHeaderV13(builtByFactory);\r
70         Assert.assertEquals("Wrong type", 11, builtByFactory.getType().getIntValue());\r
71         Assert.assertEquals("Wrong flag", true, builtByFactory.getFlags().isOFPMPFREQMORE());\r
72         MultipartReplyMeterFeaturesCase messageCase = (MultipartReplyMeterFeaturesCase) builtByFactory.getMultipartReplyBody();\r
73         MultipartReplyMeterFeatures message = messageCase.getMultipartReplyMeterFeatures();\r
74         Assert.assertEquals("Wrong maxMeter", 9, message.getMaxMeter().intValue());\r
75         Assert.assertEquals("Wrong bandTypes", new MeterBandTypeBitmap(false, false), message.getBandTypes());\r
76         Assert.assertEquals("Wrong capabilities", new MeterFlags(false, false, false, false), message.getCapabilities());\r
77         Assert.assertEquals("Wrong maxBands", 3, message.getMaxBands().intValue());\r
78         Assert.assertEquals("Wrong maxColor", 4, message.getMaxColor().intValue());\r
79     }\r
80 }