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