Merge "Bug 8873 - Bundle based reconciliation to enable bundling of messages"
[openflowplugin.git] / openflowplugin / src / test / java / org / opendaylight / openflowplugin / openflow / md / core / translator / MultipartReplyTranslatorFifthTest.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.openflowplugin.openflow.md.core.translator;\r
10 \r
11 import static org.mockito.Mockito.when;\r
12 \r
13 import java.math.BigInteger;\r
14 import java.util.ArrayList;\r
15 import java.util.List;\r
16 import org.junit.Assert;\r
17 import org.junit.Before;\r
18 import org.junit.Test;\r
19 import org.junit.runner.RunWith;\r
20 import org.mockito.Mock;\r
21 import org.mockito.MockitoAnnotations;\r
22 import org.mockito.runners.MockitoJUnitRunner;\r
23 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;\r
24 import org.opendaylight.openflowplugin.api.openflow.md.core.ConnectionConductor;\r
25 import org.opendaylight.openflowplugin.api.openflow.md.core.SwitchConnectionDistinguisher;\r
26 import org.opendaylight.openflowplugin.api.openflow.md.core.session.SessionContext;\r
27 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;\r
28 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;\r
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.MeterConfigStatsUpdated;\r
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.MeterStatisticsUpdated;\r
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.config.stats.reply.MeterConfigStats;\r
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.meter.band.headers.MeterBandHeader;\r
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterBandType;\r
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterFlags;\r
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterId;\r
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartRequestFlags;\r
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;\r
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput;\r
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage;\r
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessageBuilder;\r
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;\r
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandDropCaseBuilder;\r
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandDscpRemarkCaseBuilder;\r
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.meter.band.drop._case.MeterBandDropBuilder;\r
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.meter.band.dscp.remark._case.MeterBandDscpRemarkBuilder;\r
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyMeterCaseBuilder;\r
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyMeterConfigCaseBuilder;\r
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.meter._case.MultipartReplyMeterBuilder;\r
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.meter._case.multipart.reply.meter.MeterStats;\r
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.meter._case.multipart.reply.meter.MeterStatsBuilder;\r
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.meter._case.multipart.reply.meter.meter.stats.MeterBandStats;\r
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.meter._case.multipart.reply.meter.meter.stats.MeterBandStatsBuilder;\r
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.meter.config._case.MultipartReplyMeterConfigBuilder;\r
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.meter.config._case.multipart.reply.meter.config.MeterConfig;\r
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.meter.config._case.multipart.reply.meter.config.MeterConfigBuilder;\r
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.meter.config._case.multipart.reply.meter.config.meter.config.Bands;\r
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.meter.config._case.multipart.reply.meter.config.meter.config.BandsBuilder;\r
58 import org.opendaylight.yangtools.yang.binding.DataObject;\r
59 \r
60 /**\r
61  * @author michal.polkorab\r
62  */\r
63 @RunWith(MockitoJUnitRunner.class)\r
64 public class MultipartReplyTranslatorFifthTest {\r
65 \r
66     @Mock\r
67     SwitchConnectionDistinguisher cookie;\r
68     @Mock\r
69     SessionContext sc;\r
70     @Mock\r
71     ConnectionConductor conductor;\r
72     @Mock\r
73     GetFeaturesOutput features;\r
74 \r
75     MultipartReplyTranslator translator;\r
76 \r
77     /**\r
78      * Initializes mocks\r
79      */\r
80     @Before\r
81     public void startUp() {\r
82         final ConvertorManager convertorManager = ConvertorManagerFactory.createDefaultManager();\r
83         translator = new MultipartReplyTranslator(convertorManager);\r
84         MockitoAnnotations.initMocks(this);\r
85         when(sc.getPrimaryConductor()).thenReturn(conductor);\r
86         when(conductor.getVersion()).thenReturn((short) EncodeConstants.OF13_VERSION_ID);\r
87         when(sc.getFeatures()).thenReturn(features);\r
88         when(features.getDatapathId()).thenReturn(new BigInteger("42"));\r
89     }\r
90 \r
91     /**\r
92      * Test {@link MultipartReplyTranslator#translate(SwitchConnectionDistinguisher, SessionContext, OfHeader)}\r
93      * with empty meter stats\r
94      */\r
95     @Test\r
96     public void testEmptyMeterStats() {\r
97         MultipartReplyMessageBuilder mpBuilder = new MultipartReplyMessageBuilder();\r
98         mpBuilder.setVersion((short) EncodeConstants.OF13_VERSION_ID);\r
99         mpBuilder.setXid(123L);\r
100         mpBuilder.setFlags(new MultipartRequestFlags(false));\r
101         mpBuilder.setType(MultipartType.OFPMPMETER);\r
102 \r
103         MultipartReplyMeterCaseBuilder caseBuilder = new MultipartReplyMeterCaseBuilder();\r
104         MultipartReplyMeterBuilder meterBuilder = new MultipartReplyMeterBuilder();\r
105         List<MeterStats> meterStats = new ArrayList<>();\r
106         meterBuilder.setMeterStats(meterStats);\r
107         caseBuilder.setMultipartReplyMeter(meterBuilder.build());\r
108         mpBuilder.setMultipartReplyBody(caseBuilder.build());\r
109         MultipartReplyMessage message = mpBuilder.build();\r
110 \r
111         List<DataObject> list = translator.translate(cookie, sc, message);\r
112 \r
113         Assert.assertEquals("Wrong list size", 1, list.size());\r
114         MeterStatisticsUpdated statUpdate = (MeterStatisticsUpdated) list.get(0);\r
115         Assert.assertEquals("Wrong node-id", "openflow:42", statUpdate.getId().getValue());\r
116         Assert.assertEquals("Wrong more-replies", false, statUpdate.isMoreReplies());\r
117         Assert.assertEquals("Wrong transaction-id", 123, statUpdate.getTransactionId().getValue().intValue());\r
118         Assert.assertEquals("Wrong meter stats size", 0, statUpdate.getMeterStats().size());\r
119     }\r
120 \r
121     /**\r
122      * Test {@link MultipartReplyTranslator#translate(SwitchConnectionDistinguisher, SessionContext, OfHeader)}\r
123      * with meter stats\r
124      */\r
125     @Test\r
126     public void testMeterStats() {\r
127         MultipartReplyMessageBuilder mpBuilder = new MultipartReplyMessageBuilder();\r
128         mpBuilder.setVersion((short) EncodeConstants.OF13_VERSION_ID);\r
129         mpBuilder.setXid(123L);\r
130         mpBuilder.setFlags(new MultipartRequestFlags(false));\r
131         mpBuilder.setType(MultipartType.OFPMPMETER);\r
132 \r
133         MultipartReplyMeterCaseBuilder caseBuilder = new MultipartReplyMeterCaseBuilder();\r
134         MultipartReplyMeterBuilder meterBuilder = new MultipartReplyMeterBuilder();\r
135         List<MeterStats> meterStats = new ArrayList<>();\r
136         MeterStatsBuilder builder = new MeterStatsBuilder();\r
137         builder.setMeterId(new MeterId(15L));\r
138         builder.setFlowCount(16L);\r
139         builder.setPacketInCount(new BigInteger("17"));\r
140         builder.setByteInCount(new BigInteger("18"));\r
141         builder.setDurationSec(19L);\r
142         builder.setDurationNsec(20L);\r
143         List<MeterBandStats> meterBands = new ArrayList<>();\r
144         MeterBandStatsBuilder meterStatsBuilder = new MeterBandStatsBuilder();\r
145         meterStatsBuilder.setPacketBandCount(new BigInteger("21"));\r
146         meterStatsBuilder.setByteBandCount(new BigInteger("22"));\r
147         meterBands.add(meterStatsBuilder.build());\r
148         meterStatsBuilder = new MeterBandStatsBuilder();\r
149         meterStatsBuilder.setPacketBandCount(new BigInteger("23"));\r
150         meterStatsBuilder.setByteBandCount(new BigInteger("24"));\r
151         meterBands.add(meterStatsBuilder.build());\r
152         builder.setMeterBandStats(meterBands);\r
153         meterStats.add(builder.build());\r
154         builder = new MeterStatsBuilder();\r
155         builder.setMeterId(new MeterId(150L));\r
156         builder.setFlowCount(160L);\r
157         builder.setPacketInCount(new BigInteger("170"));\r
158         builder.setByteInCount(new BigInteger("180"));\r
159         builder.setDurationSec(190L);\r
160         builder.setDurationNsec(200L);\r
161         meterBands = new ArrayList<>();\r
162         builder.setMeterBandStats(meterBands);\r
163         meterStats.add(builder.build());\r
164         meterBuilder.setMeterStats(meterStats);\r
165         caseBuilder.setMultipartReplyMeter(meterBuilder.build());\r
166         mpBuilder.setMultipartReplyBody(caseBuilder.build());\r
167         MultipartReplyMessage message = mpBuilder.build();\r
168 \r
169         List<DataObject> list = translator.translate(cookie, sc, message);\r
170 \r
171         Assert.assertEquals("Wrong list size", 1, list.size());\r
172         MeterStatisticsUpdated statUpdate = (MeterStatisticsUpdated) list.get(0);\r
173         Assert.assertEquals("Wrong node-id", "openflow:42", statUpdate.getId().getValue());\r
174         Assert.assertEquals("Wrong more-replies", false, statUpdate.isMoreReplies());\r
175         Assert.assertEquals("Wrong transaction-id", 123, statUpdate.getTransactionId().getValue().intValue());\r
176         Assert.assertEquals("Wrong group stats size", 2, statUpdate.getMeterStats().size());\r
177         org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.statistics.reply\r
178                 .MeterStats stat = statUpdate.getMeterStats().get(0);\r
179         Assert.assertEquals("Wrong meter-id", 15, stat.getMeterId().getValue().intValue());\r
180         Assert.assertEquals("Wrong flow count", 16, stat.getFlowCount().getValue().intValue());\r
181         Assert.assertEquals("Wrong packet in count", 17, stat.getPacketInCount().getValue().intValue());\r
182         Assert.assertEquals("Wrong byte in count", 18, stat.getByteInCount().getValue().intValue());\r
183         Assert.assertEquals("Wrong duration sec", 19, stat.getDuration().getSecond().getValue().intValue());\r
184         Assert.assertEquals("Wrong duration n sec", 20, stat.getDuration().getNanosecond().getValue().intValue());\r
185         Assert.assertEquals("Wrong meter band stats size", 2, stat.getMeterBandStats().getBandStat().size());\r
186         Assert.assertEquals("Wrong band id", 0, stat.getMeterBandStats().getBandStat().get(0)\r
187                 .getBandId().getValue().intValue());\r
188         Assert.assertEquals("Wrong packet band count", 21, stat.getMeterBandStats().getBandStat().get(0)\r
189                 .getPacketBandCount().getValue().intValue());\r
190         Assert.assertEquals("Wrong byte band count", 22, stat.getMeterBandStats().getBandStat().get(0)\r
191                 .getByteBandCount().getValue().intValue());\r
192         Assert.assertEquals("Wrong band id", 1, stat.getMeterBandStats().getBandStat().get(1)\r
193                 .getBandId().getValue().intValue());\r
194         Assert.assertEquals("Wrong packet band count", 23, stat.getMeterBandStats().getBandStat().get(1)\r
195                 .getPacketBandCount().getValue().intValue());\r
196         Assert.assertEquals("Wrong byte band count", 24, stat.getMeterBandStats().getBandStat().get(1)\r
197                 .getByteBandCount().getValue().intValue());\r
198         stat = statUpdate.getMeterStats().get(1);\r
199         Assert.assertEquals("Wrong meter-id", 150, stat.getMeterId().getValue().intValue());\r
200         Assert.assertEquals("Wrong flow count", 160, stat.getFlowCount().getValue().intValue());\r
201         Assert.assertEquals("Wrong packet in count", 170, stat.getPacketInCount().getValue().intValue());\r
202         Assert.assertEquals("Wrong byte in count", 180, stat.getByteInCount().getValue().intValue());\r
203         Assert.assertEquals("Wrong duration sec", 190, stat.getDuration().getSecond().getValue().intValue());\r
204         Assert.assertEquals("Wrong duration n sec", 200, stat.getDuration().getNanosecond().getValue().intValue());\r
205         Assert.assertEquals("Wrong meter band stats size", 0, stat.getMeterBandStats().getBandStat().size());\r
206     }\r
207 \r
208     /**\r
209      * Test {@link MultipartReplyTranslator#translate(SwitchConnectionDistinguisher, SessionContext, OfHeader)}\r
210      * with empty meter config stats\r
211      */\r
212     @Test\r
213     public void testEmptyMeterConfigStats() {\r
214         MultipartReplyMessageBuilder mpBuilder = new MultipartReplyMessageBuilder();\r
215         mpBuilder.setVersion((short) EncodeConstants.OF13_VERSION_ID);\r
216         mpBuilder.setXid(123L);\r
217         mpBuilder.setFlags(new MultipartRequestFlags(false));\r
218         mpBuilder.setType(MultipartType.OFPMPMETERCONFIG);\r
219 \r
220         MultipartReplyMeterConfigCaseBuilder caseBuilder = new MultipartReplyMeterConfigCaseBuilder();\r
221         MultipartReplyMeterConfigBuilder meterBuilder = new MultipartReplyMeterConfigBuilder();\r
222         List<MeterConfig> meterStats = new ArrayList<>();\r
223         meterBuilder.setMeterConfig(meterStats);\r
224         caseBuilder.setMultipartReplyMeterConfig(meterBuilder.build());\r
225         mpBuilder.setMultipartReplyBody(caseBuilder.build());\r
226         MultipartReplyMessage message = mpBuilder.build();\r
227 \r
228         List<DataObject> list = translator.translate(cookie, sc, message);\r
229 \r
230         Assert.assertEquals("Wrong list size", 1, list.size());\r
231         MeterConfigStatsUpdated statUpdate = (MeterConfigStatsUpdated) list.get(0);\r
232         Assert.assertEquals("Wrong node-id", "openflow:42", statUpdate.getId().getValue());\r
233         Assert.assertEquals("Wrong more-replies", false, statUpdate.isMoreReplies());\r
234         Assert.assertEquals("Wrong transaction-id", 123, statUpdate.getTransactionId().getValue().intValue());\r
235         Assert.assertEquals("Wrong meter config stats size", 0, statUpdate.getMeterConfigStats().size());\r
236     }\r
237 \r
238     /**\r
239      * Test {@link MultipartReplyTranslator#translate(SwitchConnectionDistinguisher, SessionContext, OfHeader)}\r
240      * with meter config stats\r
241      */\r
242     @Test\r
243     public void testMeterConfigStats() {\r
244         MultipartReplyMessageBuilder mpBuilder = new MultipartReplyMessageBuilder();\r
245         mpBuilder.setVersion((short) EncodeConstants.OF13_VERSION_ID);\r
246         mpBuilder.setXid(123L);\r
247         mpBuilder.setFlags(new MultipartRequestFlags(false));\r
248         mpBuilder.setType(MultipartType.OFPMPMETERCONFIG);\r
249 \r
250         MultipartReplyMeterConfigCaseBuilder caseBuilder = new MultipartReplyMeterConfigCaseBuilder();\r
251         MultipartReplyMeterConfigBuilder meterBuilder = new MultipartReplyMeterConfigBuilder();\r
252         List<MeterConfig> meterStats = new ArrayList<>();\r
253         MeterConfigBuilder builder = new MeterConfigBuilder();\r
254         builder.setFlags(new MeterFlags(false, true, false, true));\r
255         builder.setMeterId(new MeterId(20L));\r
256         List<Bands> bands = new ArrayList<>();\r
257         BandsBuilder bandBuilder = new BandsBuilder();\r
258         MeterBandDropCaseBuilder dropCaseBuilder = new MeterBandDropCaseBuilder();\r
259         MeterBandDropBuilder dropBuilder = new MeterBandDropBuilder();\r
260         dropBuilder.setType(MeterBandType.OFPMBTDROP);\r
261         dropBuilder.setRate(21L);\r
262         dropBuilder.setBurstSize(22L);\r
263         dropCaseBuilder.setMeterBandDrop(dropBuilder.build());\r
264         bandBuilder.setMeterBand(dropCaseBuilder.build());\r
265         bands.add(bandBuilder.build());\r
266         bandBuilder = new BandsBuilder();\r
267         MeterBandDscpRemarkCaseBuilder dscpCaseBuilder = new MeterBandDscpRemarkCaseBuilder();\r
268         MeterBandDscpRemarkBuilder dscpBuilder = new MeterBandDscpRemarkBuilder();\r
269         dscpBuilder.setType(MeterBandType.OFPMBTDSCPREMARK);\r
270         dscpBuilder.setRate(23L);\r
271         dscpBuilder.setBurstSize(24L);\r
272         dscpBuilder.setPrecLevel((short) 25);\r
273         dscpCaseBuilder.setMeterBandDscpRemark(dscpBuilder.build());\r
274         bandBuilder.setMeterBand(dscpCaseBuilder.build());\r
275         bands.add(bandBuilder.build());\r
276         builder.setBands(bands);\r
277         meterStats.add(builder.build());\r
278         builder = new MeterConfigBuilder();\r
279         builder.setFlags(new MeterFlags(true, false, true, false));\r
280         builder.setMeterId(new MeterId(26L));\r
281         bands = new ArrayList<>();\r
282         builder.setBands(bands);\r
283         meterStats.add(builder.build());\r
284         meterBuilder.setMeterConfig(meterStats);\r
285         caseBuilder.setMultipartReplyMeterConfig(meterBuilder.build());\r
286         mpBuilder.setMultipartReplyBody(caseBuilder.build());\r
287         MultipartReplyMessage message = mpBuilder.build();\r
288 \r
289         List<DataObject> list = translator.translate(cookie, sc, message);\r
290 \r
291         Assert.assertEquals("Wrong list size", 1, list.size());\r
292         MeterConfigStatsUpdated statUpdate = (MeterConfigStatsUpdated) list.get(0);\r
293         Assert.assertEquals("Wrong node-id", "openflow:42", statUpdate.getId().getValue());\r
294         Assert.assertEquals("Wrong more-replies", false, statUpdate.isMoreReplies());\r
295         Assert.assertEquals("Wrong transaction-id", 123, statUpdate.getTransactionId().getValue().intValue());\r
296         Assert.assertEquals("Wrong meter config stats size", 2, statUpdate.getMeterConfigStats().size());\r
297         MeterConfigStats stat = statUpdate.getMeterConfigStats().get(0);\r
298         Assert.assertEquals("Wrong flag", false, stat.getFlags().isMeterBurst());\r
299         Assert.assertEquals("Wrong flag", false, stat.getFlags().isMeterPktps());\r
300         Assert.assertEquals("Wrong flag", true, stat.getFlags().isMeterKbps());\r
301         Assert.assertEquals("Wrong flag", true, stat.getFlags().isMeterStats());\r
302         Assert.assertEquals("Wrong meter-id", 20, stat.getMeterId().getValue().intValue());\r
303         Assert.assertEquals("Wrong bands size", 2, stat.getMeterBandHeaders().getMeterBandHeader().size());\r
304         MeterBandHeader header = stat.getMeterBandHeaders().getMeterBandHeader().get(0);\r
305         Assert.assertEquals("Wrong band type", "org.opendaylight.yang.gen.v1.urn.opendaylight.meter"\r
306                 + ".types.rev130918.band.type.band.type.Drop", header.getBandType().getImplementedInterface().getName());\r
307         Assert.assertEquals("Wrong band rate", 21, header.getBandRate().intValue());\r
308         Assert.assertEquals("Wrong band burst size", 22, header.getBandBurstSize().intValue());\r
309         Assert.assertEquals("Wrong flag", true, header.getMeterBandTypes().getFlags().isOfpmbtDrop());\r
310         Assert.assertEquals("Wrong flag", false, header.getMeterBandTypes().getFlags().isOfpmbtDscpRemark());\r
311         Assert.assertEquals("Wrong flag", false, header.getMeterBandTypes().getFlags().isOfpmbtExperimenter());\r
312         header = stat.getMeterBandHeaders().getMeterBandHeader().get(1);\r
313         Assert.assertEquals("Wrong band type", "org.opendaylight.yang.gen.v1.urn.opendaylight.meter"\r
314                 + ".types.rev130918.band.type.band.type.DscpRemark", header.getBandType().getImplementedInterface().getName());\r
315         Assert.assertEquals("Wrong band rate", 23, header.getBandRate().intValue());\r
316         Assert.assertEquals("Wrong band burst size", 24, header.getBandBurstSize().intValue());\r
317         Assert.assertEquals("Wrong flag", false, header.getMeterBandTypes().getFlags().isOfpmbtDrop());\r
318         Assert.assertEquals("Wrong flag", true, header.getMeterBandTypes().getFlags().isOfpmbtDscpRemark());\r
319         Assert.assertEquals("Wrong flag", false, header.getMeterBandTypes().getFlags().isOfpmbtExperimenter());\r
320         stat = statUpdate.getMeterConfigStats().get(1);\r
321         Assert.assertEquals("Wrong flag", true, stat.getFlags().isMeterBurst());\r
322         Assert.assertEquals("Wrong flag", true, stat.getFlags().isMeterPktps());\r
323         Assert.assertEquals("Wrong flag", false, stat.getFlags().isMeterKbps());\r
324         Assert.assertEquals("Wrong flag", false, stat.getFlags().isMeterStats());\r
325         Assert.assertEquals("Wrong meter-id", 26, stat.getMeterId().getValue().intValue());\r
326         Assert.assertEquals("Wrong bands size", 0, stat.getMeterBandHeaders().getMeterBandHeader().size());\r
327     }\r
328 }