MultipartRequestInputFactory
[openflowplugin.git] / openflowplugin-impl / src / test / java / org / opendaylight / openflowplugin / impl / common / MultipartRequestInputFactoryTest.java
1 /**
2  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.openflowplugin.impl.common;
10
11 import org.junit.Assert;
12 import org.junit.Before;
13 import org.junit.Test;
14 import org.opendaylight.openflowplugin.api.openflow.device.XidGenerator;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.MultipartRequestBody;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestAggregateCase;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestAggregateCaseBuilder;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestDescCase;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestDescCaseBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestExperimenterCase;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestExperimenterCaseBuilder;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestFlowCase;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestFlowCaseBuilder;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupCase;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupCaseBuilder;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupDescCase;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupDescCaseBuilder;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupFeaturesCase;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupFeaturesCaseBuilder;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterCase;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterCaseBuilder;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterConfigCase;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterConfigCaseBuilder;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterFeaturesCase;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterFeaturesCaseBuilder;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortDescCase;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortDescCaseBuilder;
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortStatsCase;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortStatsCaseBuilder;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestQueueCase;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestQueueCaseBuilder;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableCase;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableCaseBuilder;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableFeaturesCase;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableFeaturesCaseBuilder;
48
49 /**
50  * openflowplugin-impl
51  * org.opendaylight.openflowplugin.impl.common
52  *
53  * Test class for testing {@link org.opendaylight.openflowplugin.impl.common.MultipartRequestInputFactory}
54  * static methods and validations for {@link org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType}.
55  *
56  * @author <a href="mailto:vdemcak@cisco.com">Vaclav Demcak</a>
57  *
58  * Created: Mar 28, 2015
59  */
60 public class MultipartRequestInputFactoryTest {
61
62     private XidGenerator xidGenerator;
63     private short ofVersion;
64
65     @Before
66     public void initialization() {
67         xidGenerator = new XidGenerator();
68         ofVersion = 13;
69     }
70
71     /**
72      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
73      * Validation for null input type expect IllegalArgumentException
74      */
75     @Test(expected=IllegalArgumentException.class)
76     public void testMakeMultipartRequestInputLongShortMultipartTypeNullType(){
77         final long xid = xidGenerator.generate().getValue();
78         MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, null);
79     }
80
81     /**
82      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
83      * {@link MultipartType.OFPMPDESC}
84      */
85     @Test
86     public void testMakeMultipartRequestInputLongShortMultipartTypeDesc(){
87         final long xid = xidGenerator.generate().getValue();
88         final MultipartType type = MultipartType.OFPMPDESC;
89         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
90         final MultipartRequestDescCase defaultBodyForComparison = new MultipartRequestDescCaseBuilder().build();
91         validation(multipartReqInput, xid, type, defaultBodyForComparison);
92     }
93
94     /**
95      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
96      * {@link MultipartType.OFPMPFLOW}
97      */
98     @Test
99     public void testMakeMultipartRequestInputLongShortMultipartTypeFlow(){
100         final long xid = xidGenerator.generate().getValue();
101         final MultipartType type = MultipartType.OFPMPFLOW;
102         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
103         final MultipartRequestFlowCase defaultBodyForComparison = new MultipartRequestFlowCaseBuilder().build();
104         validation(multipartReqInput, xid, type, defaultBodyForComparison);
105     }
106
107     /**
108      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
109      * {@link MultipartType.OFPMPAGGREGATE}
110      */
111     @Test
112     public void testMakeMultipartRequestInputLongShortMultipartTypeAggr(){
113         final long xid = xidGenerator.generate().getValue();
114         final MultipartType type = MultipartType.OFPMPAGGREGATE;
115         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
116         final MultipartRequestAggregateCase defaultBodyForComparison = new MultipartRequestAggregateCaseBuilder().build();
117         validation(multipartReqInput, xid, type, defaultBodyForComparison);
118     }
119
120     /**
121      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
122      * {@link MultipartType.OFPMPTABLE}
123      */
124     @Test
125     public void testMakeMultipartRequestInputLongShortMultipartTypeTable(){
126         final long xid = xidGenerator.generate().getValue();
127         final MultipartType type = MultipartType.OFPMPTABLE;
128         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
129         final MultipartRequestTableCase defaultBodyForComparison = new MultipartRequestTableCaseBuilder().build();
130         validation(multipartReqInput, xid, type, defaultBodyForComparison);
131     }
132
133     /**
134      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
135      * {@link MultipartType.OFPMPPORTSTATS}
136      */
137     @Test
138     public void testMakeMultipartRequestInputLongShortMultipartTypePortStat(){
139         final long xid = xidGenerator.generate().getValue();
140         final MultipartType type = MultipartType.OFPMPPORTSTATS;
141         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
142         final MultipartRequestPortStatsCase defaultBodyForComparison = new MultipartRequestPortStatsCaseBuilder().build();
143         validation(multipartReqInput, xid, type, defaultBodyForComparison);
144     }
145
146     /**
147      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
148      * {@link MultipartType.OFPMPQUEUE}
149      */
150     @Test
151     public void testMakeMultipartRequestInputLongShortMultipartTypeQueue(){
152         final long xid = xidGenerator.generate().getValue();
153         final MultipartType type = MultipartType.OFPMPQUEUE;
154         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
155         final MultipartRequestQueueCase defaultBodyForComparison = new MultipartRequestQueueCaseBuilder().build();
156         validation(multipartReqInput, xid, type, defaultBodyForComparison);
157     }
158
159     /**
160      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
161      * {@link MultipartType.OFPMPGROUP}
162      */
163     @Test
164     public void testMakeMultipartRequestInputLongShortMultipartTypeGroup(){
165         final long xid = xidGenerator.generate().getValue();
166         final MultipartType type = MultipartType.OFPMPGROUP;
167         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
168         final MultipartRequestGroupCase defaultBodyForComparison = new MultipartRequestGroupCaseBuilder().build();
169         validation(multipartReqInput, xid, type, defaultBodyForComparison);
170     }
171
172     /**
173      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
174      * {@link MultipartType.OFPMPGROUPDESC}
175      */
176     @Test
177     public void testMakeMultipartRequestInputLongShortMultipartTypeGrupDesc(){
178         final long xid = xidGenerator.generate().getValue();
179         final MultipartType type = MultipartType.OFPMPGROUPDESC;
180         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
181         final MultipartRequestGroupDescCase defaultBodyForComparison = new MultipartRequestGroupDescCaseBuilder().build();
182         validation(multipartReqInput, xid, type, defaultBodyForComparison);
183     }
184
185     /**
186      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
187      * {@link MultipartType.OFPMPGROUPFEATURES}
188      */
189     @Test
190     public void testMakeMultipartRequestInputLongShortMultipartTypeGroupFeaturs(){
191         final long xid = xidGenerator.generate().getValue();
192         final MultipartType type = MultipartType.OFPMPGROUPFEATURES;
193         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
194         final MultipartRequestGroupFeaturesCase defaultBodyForComparison = new MultipartRequestGroupFeaturesCaseBuilder().build();
195         validation(multipartReqInput, xid, type, defaultBodyForComparison);
196     }
197
198     /**
199      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
200      * {@link MultipartType.OFPMPMETER}
201      */
202     @Test
203     public void testMakeMultipartRequestInputLongShortMultipartTypeMeter(){
204         final long xid = xidGenerator.generate().getValue();
205         final MultipartType type = MultipartType.OFPMPMETER;
206         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
207         final MultipartRequestMeterCase defaultBodyForComparison = new MultipartRequestMeterCaseBuilder().build();
208         validation(multipartReqInput, xid, type, defaultBodyForComparison);
209     }
210
211     /**
212      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
213      * {@link MultipartType.OFPMPMETERCONFIG}
214      */
215     @Test
216     public void testMakeMultipartRequestInputLongShortMultipartTypeMeterConf(){
217         final long xid = xidGenerator.generate().getValue();
218         final MultipartType type = MultipartType.OFPMPMETERCONFIG;
219         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
220         final MultipartRequestMeterConfigCase defaultBodyForComparison = new MultipartRequestMeterConfigCaseBuilder().build();
221         validation(multipartReqInput, xid, type, defaultBodyForComparison);
222     }
223
224     /**
225      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
226      * {@link MultipartType.OFPMPMETERFEATURES}
227      */
228     @Test
229     public void testMakeMultipartRequestInputLongShortMultipartTypeMeterFeatures(){
230         final long xid = xidGenerator.generate().getValue();
231         final MultipartType type = MultipartType.OFPMPMETERFEATURES;
232         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
233         final MultipartRequestMeterFeaturesCase defaultBodyForComparison = new MultipartRequestMeterFeaturesCaseBuilder().build();
234         validation(multipartReqInput, xid, type, defaultBodyForComparison);
235     }
236
237     /**
238      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
239      * {@link MultipartType.OFPMPMETERFEATURES}
240      */
241     @Test
242     public void testMakeMultipartRequestInputLongShortMultipartTypeTableFeatures(){
243         final long xid = xidGenerator.generate().getValue();
244         final MultipartType type = MultipartType.OFPMPTABLEFEATURES;
245         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
246         final MultipartRequestTableFeaturesCase defaultBodyForComparison = new MultipartRequestTableFeaturesCaseBuilder().build();
247         validation(multipartReqInput, xid, type, defaultBodyForComparison);
248     }
249
250     /**
251      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
252      * {@link MultipartType.OFPMPPORTDESC}
253      */
254     @Test
255     public void testMakeMultipartRequestInputLongShortMultipartTypePortDesc(){
256         final long xid = xidGenerator.generate().getValue();
257         final MultipartType type = MultipartType.OFPMPPORTDESC;
258         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
259         final MultipartRequestPortDescCase defaultBodyForComparison = new MultipartRequestPortDescCaseBuilder().build();
260         validation(multipartReqInput, xid, type, defaultBodyForComparison);
261     }
262
263     /**
264      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType)}.
265      * {@link MultipartType.OFPMPEXPERIMENTER}
266      */
267     @Test
268     public void testMakeMultipartRequestInputLongShortMultipartTypeExperimenter(){
269         final long xid = xidGenerator.generate().getValue();
270         final MultipartType type = MultipartType.OFPMPEXPERIMENTER;
271         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type);
272         final MultipartRequestExperimenterCase defaultBodyForComparison = new MultipartRequestExperimenterCaseBuilder().build();
273         validation(multipartReqInput, xid, type, defaultBodyForComparison);
274     }
275
276     /**
277      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
278      * {@link MultipartType.OFPMPDESC}
279      */
280     @Test
281     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyDesc(){
282         final long xid = xidGenerator.generate().getValue();
283         final MultipartType type = MultipartType.OFPMPDESC;
284         final MultipartRequestDescCase body = new MultipartRequestDescCaseBuilder().build();
285         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
286         validation(multipartReqInput, xid, type, body);
287     }
288
289     /**
290      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
291      * {@link MultipartType.OFPMPFLOW}
292      */
293     @Test
294     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyFlow(){
295         final long xid = xidGenerator.generate().getValue();
296         final MultipartType type = MultipartType.OFPMPFLOW;
297         final MultipartRequestFlowCase body = new MultipartRequestFlowCaseBuilder().build();
298         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
299         validation(multipartReqInput, xid, type, body);
300     }
301
302     /**
303      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
304      * {@link MultipartType.OFPMPAGGREGATE}
305      */
306     @Test
307     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyAggr(){
308         final long xid = xidGenerator.generate().getValue();
309         final MultipartType type = MultipartType.OFPMPAGGREGATE;
310         final MultipartRequestAggregateCase body = new MultipartRequestAggregateCaseBuilder().build();
311         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
312         validation(multipartReqInput, xid, type, body);
313     }
314
315     /**
316      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
317      * {@link MultipartType.OFPMPTABLE}
318      */
319     @Test
320     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyTable(){
321         final long xid = xidGenerator.generate().getValue();
322         final MultipartType type = MultipartType.OFPMPTABLE;
323         final MultipartRequestTableCase body = new MultipartRequestTableCaseBuilder().build();
324         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
325         validation(multipartReqInput, xid, type, body);
326     }
327
328     /**
329      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
330      * {@link MultipartType.OFPMPPORTSTATS}
331      */
332     @Test
333     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyPortStat(){
334         final long xid = xidGenerator.generate().getValue();
335         final MultipartType type = MultipartType.OFPMPPORTSTATS;
336         final MultipartRequestPortStatsCase body = new MultipartRequestPortStatsCaseBuilder().build();
337         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
338         validation(multipartReqInput, xid, type, body);
339     }
340
341     /**
342      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
343      * {@link MultipartType.OFPMPQUEUE}
344      */
345     @Test
346     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyQueue(){
347         final long xid = xidGenerator.generate().getValue();
348         final MultipartType type = MultipartType.OFPMPQUEUE;
349         final MultipartRequestQueueCase body = new MultipartRequestQueueCaseBuilder().build();
350         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
351         validation(multipartReqInput, xid, type, body);
352     }
353
354     /**
355      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
356      * {@link MultipartType.OFPMPGROUP}
357      */
358     @Test
359     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyGroup(){
360         final long xid = xidGenerator.generate().getValue();
361         final MultipartType type = MultipartType.OFPMPGROUP;
362         final MultipartRequestGroupCase body = new MultipartRequestGroupCaseBuilder().build();
363         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
364         validation(multipartReqInput, xid, type, body);
365     }
366
367     /**
368      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
369      * {@link MultipartType.OFPMPGROUPDESC}
370      */
371     @Test
372     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyGrupDesc(){
373         final long xid = xidGenerator.generate().getValue();
374         final MultipartType type = MultipartType.OFPMPGROUPDESC;
375         final MultipartRequestGroupDescCase body = new MultipartRequestGroupDescCaseBuilder().build();
376         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
377         validation(multipartReqInput, xid, type, body);
378     }
379
380     /**
381      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
382      * {@link MultipartType.OFPMPGROUPFEATURES}
383      */
384     @Test
385     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyGroupFeaturs(){
386         final long xid = xidGenerator.generate().getValue();
387         final MultipartType type = MultipartType.OFPMPGROUPFEATURES;
388         final MultipartRequestGroupFeaturesCase body = new MultipartRequestGroupFeaturesCaseBuilder().build();
389         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
390         validation(multipartReqInput, xid, type, body);
391     }
392
393     /**
394      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
395      * {@link MultipartType.OFPMPMETER}
396      */
397     @Test
398     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyMeter(){
399         final long xid = xidGenerator.generate().getValue();
400         final MultipartType type = MultipartType.OFPMPMETER;
401         final MultipartRequestMeterCase body = new MultipartRequestMeterCaseBuilder().build();
402         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
403         validation(multipartReqInput, xid, type, body);
404     }
405
406     /**
407      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
408      * {@link MultipartType.OFPMPMETERCONFIG}
409      */
410     @Test
411     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyMeterConf(){
412         final long xid = xidGenerator.generate().getValue();
413         final MultipartType type = MultipartType.OFPMPMETERCONFIG;
414         final MultipartRequestMeterConfigCase body = new MultipartRequestMeterConfigCaseBuilder().build();
415         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
416         validation(multipartReqInput, xid, type, body);
417     }
418
419     /**
420      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
421      * {@link MultipartType.OFPMPMETERFEATURES}
422      */
423     @Test
424     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyMeterFeatures(){
425         final long xid = xidGenerator.generate().getValue();
426         final MultipartType type = MultipartType.OFPMPMETERFEATURES;
427         final MultipartRequestMeterFeaturesCase body = new MultipartRequestMeterFeaturesCaseBuilder().build();
428         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
429         validation(multipartReqInput, xid, type, body);
430     }
431
432     /**
433      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
434      * {@link MultipartType.OFPMPMETERFEATURES}
435      */
436     @Test
437     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyTableFeatures(){
438         final long xid = xidGenerator.generate().getValue();
439         final MultipartType type = MultipartType.OFPMPTABLEFEATURES;
440         final MultipartRequestTableFeaturesCase body = new MultipartRequestTableFeaturesCaseBuilder().build();
441         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
442         validation(multipartReqInput, xid, type, body);
443     }
444
445     /**
446      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
447      * {@link MultipartType.OFPMPPORTDESC}
448      */
449     @Test
450     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyPortDesc(){
451         final long xid = xidGenerator.generate().getValue();
452         final MultipartType type = MultipartType.OFPMPPORTDESC;
453         final MultipartRequestPortDescCase body = new MultipartRequestPortDescCaseBuilder().build();
454         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
455         validation(multipartReqInput, xid, type, body);
456     }
457
458     /**
459      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
460      * {@link MultipartType.OFPMPEXPERIMENTER}
461      */
462     @Test
463     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyExperimenter(){
464         final long xid = xidGenerator.generate().getValue();
465         final MultipartType type = MultipartType.OFPMPEXPERIMENTER;
466         final MultipartRequestExperimenterCase body = new MultipartRequestExperimenterCaseBuilder().build();
467         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
468         validation(multipartReqInput, xid, type, body);
469     }
470
471     /**
472      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
473      * Validation for null input type expect IllegalArgumentException
474      */
475     @Test(expected=IllegalArgumentException.class)
476     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyNullType(){
477         final long xid = xidGenerator.generate().getValue();
478         final MultipartRequestDescCase body = new MultipartRequestDescCaseBuilder().build();
479         MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, null, body);
480     }
481
482     /**
483      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
484      * Validation for null input body expect IllegalArgumentException
485      */
486     @Test(expected=IllegalArgumentException.class)
487     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyNullBody(){
488         final long xid = xidGenerator.generate().getValue();
489         final MultipartType type = MultipartType.OFPMPDESC;
490         MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, null);
491     }
492
493     /**
494      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, MultipartRequestBody)}.
495      * Validation for bad input body Class expect IllegalArgumentException
496      */
497     @Test(expected=IllegalArgumentException.class)
498     public void testMakeMultipartRequestInputLongShortMultipartTypeMultipartRequestBodyBadType(){
499         final long xid = xidGenerator.generate().getValue();
500         final MultipartType type = MultipartType.OFPMPEXPERIMENTER;
501         final MultipartRequestDescCase body = new MultipartRequestDescCaseBuilder().build();
502         MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, body);
503     }
504
505     /**
506      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short, MultipartType, boolean)}.
507      * {@link MultipartType.OFPMPDESC}
508      * note: we are able to add next test suite for all MultipartType but I guess it is same as suite before
509      */
510     @Test
511     public void testMakeMultipartRequestInputLongShortMultipartTypeBoolean(){
512         final long xid = xidGenerator.generate().getValue();
513         final MultipartType type = MultipartType.OFPMPDESC;
514         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, true);
515         final MultipartRequestDescCase defaultBodyForComparison = new MultipartRequestDescCaseBuilder().build();
516         validation(multipartReqInput, xid, type, defaultBodyForComparison);
517         Assert.assertTrue(multipartReqInput.getFlags().isOFPMPFREQMORE());
518     }
519
520     /**
521      * Test method for {@link MultipartRequestInputFactory#makeMultipartRequestInput(long, short,MultipartType, boolean, MultipartRequestBody)}.
522      * {@link MultipartType.OFPMPDESC}
523      * note: we are able to add next test suite for all MultipartType but I guess it is same as suite before
524      */
525     @Test
526     public void testMakeMultipartRequestInputLongShortMultipartTypeBooleanMultipartRequestBody(){
527         final long xid = xidGenerator.generate().getValue();
528         final MultipartType type = MultipartType.OFPMPDESC;
529         final MultipartRequestDescCase body = new MultipartRequestDescCaseBuilder().build();
530         final MultipartRequestInput multipartReqInput = MultipartRequestInputFactory.makeMultipartRequestInput(xid, ofVersion, type, true, body);
531         validation(multipartReqInput, xid, type, body);
532         Assert.assertTrue(multipartReqInput.getFlags().isOFPMPFREQMORE());
533     }
534
535     private void validation(final MultipartRequestInput multipartReqInput, final long xid, final MultipartType type, final MultipartRequestBody body) {
536         Assert.assertNotNull(multipartReqInput);
537         Assert.assertEquals(xid, multipartReqInput.getXid().longValue());
538         Assert.assertEquals(ofVersion, multipartReqInput.getVersion().shortValue());
539         Assert.assertNotNull(multipartReqInput.getType());
540         Assert.assertEquals(type, multipartReqInput.getType());
541         Assert.assertNotNull(multipartReqInput.getMultipartRequestBody());
542         Assert.assertEquals(body.getClass(), multipartReqInput.getMultipartRequestBody().getClass());
543         Assert.assertEquals(body, multipartReqInput.getMultipartRequestBody());
544     }
545 }