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