2 * Copyright (c) 2014 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
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
8 package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertTrue;
13 import com.google.common.collect.ImmutableList;
14 import java.util.ArrayList;
15 import java.util.List;
16 import java.util.Optional;
17 import org.junit.Before;
18 import org.junit.Test;
19 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData;
20 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlInCaseBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionCaseBuilder;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.OutputActionCaseBuilder;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetMplsTtlActionCaseBuilder;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.copy.ttl.in._case.CopyTtlIn;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.copy.ttl.in._case.CopyTtlInBuilder;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.group.action._case.GroupAction;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.group.action._case.GroupActionBuilder;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.output.action._case.OutputActionBuilder;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.mpls.ttl.action._case.SetMplsTtlAction;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.mpls.ttl.action._case.SetMplsTtlActionBuilder;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInput;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInputBuilder;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupTypes;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.Buckets;
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketBuilder;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.GroupCaseBuilder;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetMplsTtlCaseBuilder;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.GroupModCommand;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.GroupType;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModInputBuilder;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.grouping.BucketsList;
50 import org.opendaylight.yangtools.yang.common.Uint32;
51 import org.opendaylight.yangtools.yang.common.Uint64;
53 public class GroupConvertorTest {
54 private ConvertorManager convertorManager;
58 convertorManager = ConvertorManagerFactory.createDefaultManager();
62 * test of {@link GroupConvertor#convert(Group, VersionDatapathIdConvertorData)} }.
65 public void testGroupModConvertorwithallParameters() {
67 final AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder();
69 addGroupBuilder.setGroupId(new GroupId(10L));
71 addGroupBuilder.setGroupType(GroupTypes.GroupAll);
72 final List<Bucket> bucketList = new ArrayList<>();
73 final List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>
74 actionsList = new ArrayList<>();
75 final List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>
76 actionsList1 = new ArrayList<>();
81 final GroupActionBuilder groupActionBuilder = new GroupActionBuilder();
82 groupActionBuilder.setGroup("005");
83 final GroupAction groupIdaction = groupActionBuilder.build();
84 final ActionBuilder actionsB = new ActionBuilder();
85 actionsB.setOrder(actionOrder++).setAction(new GroupActionCaseBuilder().setGroupAction(groupIdaction).build());
88 final GroupActionBuilder groupActionBuilder1 = new GroupActionBuilder();
89 groupActionBuilder1.setGroup("006");
90 final GroupAction groupIdaction1 = groupActionBuilder.build();
91 final ActionBuilder actionsB1 = new ActionBuilder();
92 actionsB1.setOrder(actionOrder++).setAction(new GroupActionCaseBuilder()
93 .setGroupAction(groupIdaction1).build());
95 actionsList.add(actionsB.build());
96 actionsList.add(actionsB1.build());
99 final BucketsBuilder bucketsB = new BucketsBuilder();
101 final BucketBuilder bucketB = new BucketBuilder();
102 bucketB.setWeight(10);
103 bucketB.setWatchPort(20L);
104 bucketB.setWatchGroup(22L);
106 bucketB.setAction(actionsList);
107 final Bucket bucket = bucketB.build();
109 bucketList.add(bucket); // List of bucket
111 final BucketBuilder bucketB1 = new BucketBuilder();
112 bucketB1.setWeight(50);
113 bucketB1.setWatchPort(60L);
114 bucketB1.setWatchGroup(70L);
117 final CopyTtlInBuilder copyTtlB = new CopyTtlInBuilder();
118 final CopyTtlIn copyTtl = copyTtlB.build();
119 final ActionBuilder actionsB2 = new ActionBuilder();
120 actionsB2.setOrder(actionOrder++).setAction(new CopyTtlInCaseBuilder().setCopyTtlIn(copyTtl).build());
123 final SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder();
124 setMplsTtlActionBuilder.setMplsTtl((short) 0X1);
125 final SetMplsTtlAction setMAction = setMplsTtlActionBuilder.build();
126 final ActionBuilder actionsB3 = new ActionBuilder();
128 actionsB3.setOrder(actionOrder++).setAction(new SetMplsTtlActionCaseBuilder()
129 .setSetMplsTtlAction(setMAction).build());
132 actionsList1.add(actionsB2.build());
133 actionsList1.add(actionsB3.build());
135 bucketB1.setAction(actionsList);
137 final Bucket bucket1 = bucketB1.build(); // second bucket
139 bucketList.add(bucket1);
141 bucketsB.setBucket(bucketList);// List of bucket added to the Buckets
142 final Buckets buckets = bucketsB.build();
144 addGroupBuilder.setBuckets(buckets);
146 VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
147 data.setDatapathId(Uint64.ONE);
149 final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data);
151 assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
152 assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType());
154 assertEquals(10L, outAddGroupInput.getGroupId().getValue().toJava());
155 assertEquals(10, outAddGroupInput.getBucketsList().get(0).getWeight().toJava());
156 assertEquals(20L, outAddGroupInput.getBucketsList().get(0).getWatchPort().getValue().toJava());
157 assertEquals(22L, outAddGroupInput.getBucketsList().get(0).getWatchGroup().toJava());
159 final List<Action> outActionList = outAddGroupInput.getBucketsList().get(0).getAction();
160 assertEquals(ImmutableList.of(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action
161 .rev150203.actions.grouping.ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
162 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping
163 .action.choice.group._case.GroupActionBuilder().setGroupId(5L).build()).build()).build(),
164 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping
165 .ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
166 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action
167 .grouping.action.choice.group._case.GroupActionBuilder().setGroupId(5L).build()).build())
168 .build()), outActionList);
170 assertEquals(50, outAddGroupInput.getBucketsList().get(1).getWeight().toJava());
171 assertEquals(60, outAddGroupInput.getBucketsList().get(1).getWatchPort().getValue().toJava());
172 assertEquals(70L, outAddGroupInput.getBucketsList().get(1).getWatchGroup().toJava());
174 final List<Action> outActionList1 = outAddGroupInput.getBucketsList().get(1).getAction();
175 assertEquals(ImmutableList.of(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action
176 .rev150203.actions.grouping.ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
177 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping
178 .action.choice.group._case.GroupActionBuilder().setGroupId(5L).build()).build()).build(),
179 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping
180 .ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
181 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action
182 .grouping.action.choice.group._case.GroupActionBuilder().setGroupId(5L).build()).build())
183 .build()), outActionList1);
187 * test of {@link GroupConvertor#convert(Group, VersionDatapathIdConvertorData)} }.
190 public void testGroupModConvertorNoBucket() {
191 final AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder();
193 addGroupBuilder.setGroupId(new GroupId(10L));
195 addGroupBuilder.setGroupType(GroupTypes.GroupAll);
197 VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
198 data.setDatapathId(Uint64.ONE);
200 final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data);
201 assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
202 assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType());
206 * test of {@link GroupConvertor#convert(Group, VersionDatapathIdConvertorData)} }.
209 public void testGroupModConvertorBucketwithNOWieghtValuesForGroupTypeFastFailure() {
213 final AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder();
215 addGroupBuilder.setGroupId(new GroupId(10L));
217 addGroupBuilder.setGroupType(GroupTypes.GroupFf);
218 final List<Bucket> bucketList = new ArrayList<>();
219 final List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>
220 actionsList = new ArrayList<>();
221 final List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>
222 actionsList1 = new ArrayList<>();
225 actionsList.add(assembleActionBuilder("005", actionOrder++).build());
227 actionsList.add(assembleActionBuilder("006", actionOrder++).build());
228 // .. and mr.Bond is not coming today
230 final BucketsBuilder bucketsB = new BucketsBuilder();
232 final BucketBuilder bucketB = new BucketBuilder();
234 bucketB.setAction(actionsList);
235 final Bucket bucket = bucketB.build();
237 bucketList.add(bucket); // List of bucket
240 final BucketBuilder bucketB1 = new BucketBuilder();
243 actionsList1.add(assembleCopyTtlInBuilder(actionOrder++).build());
245 actionsList1.add(assembleSetMplsTtlActionBuilder(actionOrder++).build());
247 bucketB1.setAction(actionsList1);
249 final Bucket bucket1 = bucketB1.build(); // second bucket
251 bucketList.add(bucket1);
253 bucketsB.setBucket(bucketList);// List of bucket added to the Buckets
254 final Buckets buckets = bucketsB.build();
256 addGroupBuilder.setBuckets(buckets);
258 VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
259 data.setDatapathId(Uint64.ONE);
261 final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data);
263 assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
264 assertEquals(GroupType.OFPGTFF, outAddGroupInput.getType());
266 assertEquals(10L, outAddGroupInput.getGroupId().getValue().longValue());
268 final List<Action> outActionList = outAddGroupInput.getBucketsList().get(0).getAction();
269 assertEquals(ImmutableList.of(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
270 .actions.grouping.ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
271 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action
272 .grouping.action.choice.group._case.GroupActionBuilder().setGroupId(5L).build()).build())
274 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping
275 .ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
276 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
277 .action.grouping.action.choice.group._case.GroupActionBuilder().setGroupId(6L)
278 .build()).build()).build()), outActionList);
280 final List<Action> outActionList1 = outAddGroupInput.getBucketsList().get(1).getAction();
281 assertEquals(ImmutableList.of(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
282 .actions.grouping.ActionBuilder().setActionChoice(
283 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action
284 .grouping.action.choice.CopyTtlInCaseBuilder().build()).build(),
285 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping
286 .ActionBuilder().setActionChoice(new SetMplsTtlCaseBuilder().setSetMplsTtlAction(
287 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
288 .action.grouping.action.choice.set.mpls.ttl._case.SetMplsTtlActionBuilder()
289 .setMplsTtl((short) 1).build()).build()).build()), outActionList1);
293 * test of {@link GroupConvertor#convert(Group, VersionDatapathIdConvertorData)} }.
296 public void testGroupModConvertSortedBuckets() {
298 final int actionOrder = 0;
300 final ArrayList<Bucket> bucket = new ArrayList<>();
302 bucket.add(new BucketBuilder()
303 .setBucketId(new BucketId((long) 4))
304 .setWatchPort((long)2)
305 .setWatchGroup((long) 1)
306 .setAction(ImmutableList.of(new ActionBuilder()
308 .setAction(new OutputActionCaseBuilder()
309 .setOutputAction(new OutputActionBuilder()
310 .setOutputNodeConnector(new Uri("openflow:1:2"))
316 bucket.add(new BucketBuilder()
317 .setBucketId(new BucketId((long) 3))
318 .setWatchPort((long)6)
319 .setWatchGroup((long) 1)
320 .setAction(ImmutableList.of(new ActionBuilder()
322 .setAction(new OutputActionCaseBuilder()
323 .setOutputAction(new OutputActionBuilder()
324 .setOutputNodeConnector(new Uri("openflow:1:6"))
330 bucket.add(new BucketBuilder()
331 .setBucketId(new BucketId((long) 2))
332 .setWatchPort((long)5)
333 .setWatchGroup((long) 1)
334 .setAction(ImmutableList.of(new ActionBuilder()
336 .setAction(new OutputActionCaseBuilder()
337 .setOutputAction(new OutputActionBuilder()
338 .setOutputNodeConnector(new Uri("openflow:1:5"))
344 bucket.add(new BucketBuilder()
345 .setBucketId(new BucketId((long) 1))
346 .setWatchPort((long)4)
347 .setWatchGroup((long) 1)
348 .setAction(ImmutableList.of(new ActionBuilder()
350 .setAction(new OutputActionCaseBuilder()
351 .setOutputAction(new OutputActionBuilder()
352 .setOutputNodeConnector(new Uri("openflow:1:4"))
358 bucket.add(new BucketBuilder()
359 .setBucketId(new BucketId((long) 0))
360 .setWatchPort((long)3)
361 .setWatchGroup((long) 1)
362 .setAction(ImmutableList.of(new ActionBuilder()
364 .setAction(new OutputActionCaseBuilder()
365 .setOutputAction(new OutputActionBuilder()
366 .setOutputNodeConnector(new Uri("openflow:1:3"))
373 final AddGroupInput input = new AddGroupInputBuilder()
374 .setGroupId(new GroupId((long) 1))
376 .setGroupType(GroupTypes.GroupFf)
377 .setBuckets(new BucketsBuilder()
382 VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
383 data.setDatapathId(Uint64.ONE);
385 final GroupModInputBuilder outAddGroupInput = convert(input, data);
387 final List<BucketsList> bucketList = outAddGroupInput.getBucketsList();
388 assertEquals(Uint32.ONE, bucketList.get(0).getWatchGroup());
389 assertEquals(Uint32.valueOf(3), bucketList.get(0).getWatchPort().getValue());
391 assertEquals(Uint32.ONE, bucketList.get(1).getWatchGroup());
392 assertEquals(Uint32.valueOf(4), bucketList.get(1).getWatchPort().getValue());
394 assertEquals(Uint32.ONE, bucketList.get(2).getWatchGroup());
395 assertEquals(Uint32.valueOf(5), bucketList.get(2).getWatchPort().getValue());
397 assertEquals(Uint32.ONE, bucketList.get(3).getWatchGroup());
398 assertEquals(Uint32.valueOf(6), bucketList.get(3).getWatchPort().getValue());
400 assertEquals(Uint32.ONE, bucketList.get(4).getWatchGroup());
401 assertEquals(Uint32.valueOf(2), bucketList.get(4).getWatchPort().getValue());
405 private static ActionBuilder assembleSetMplsTtlActionBuilder(final int actionOrder) {
406 final SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder();
407 setMplsTtlActionBuilder.setMplsTtl((short) 0X1);
408 final SetMplsTtlActionCaseBuilder setMplsTtlActionCaseBuilder = new SetMplsTtlActionCaseBuilder();
409 setMplsTtlActionCaseBuilder.setSetMplsTtlAction(setMplsTtlActionBuilder.build());
410 final ActionBuilder actionsB3 = new ActionBuilder();
411 actionsB3.setOrder(actionOrder).setAction(setMplsTtlActionCaseBuilder.build());
415 private static ActionBuilder assembleCopyTtlInBuilder(final int actionOrder) {
416 final CopyTtlInBuilder copyTtlB = new CopyTtlInBuilder();
417 final CopyTtlInCaseBuilder copyTtlInCaseBuilder = new CopyTtlInCaseBuilder();
418 copyTtlInCaseBuilder.setCopyTtlIn(copyTtlB.build());
419 final ActionBuilder actionsB2 = new ActionBuilder();
420 actionsB2.setOrder(actionOrder).setAction(copyTtlInCaseBuilder.build());
424 private static ActionBuilder assembleActionBuilder(final String groupName, final int actionOrder) {
425 final GroupActionBuilder groupActionBuilder = new GroupActionBuilder();
426 groupActionBuilder.setGroup(groupName);
427 final GroupActionCaseBuilder groupActionCaseBuilder = new GroupActionCaseBuilder();
428 groupActionCaseBuilder.setGroupAction(groupActionBuilder.build());
429 final ActionBuilder actionsBld = new ActionBuilder();
430 actionsBld.setOrder(actionOrder).setAction(groupActionCaseBuilder.build());
435 * test of {@link GroupConvertor#convert(Group, VersionDatapathIdConvertorData)} }.
438 public void testGroupModConvertorBucketwithNOWieghtValuesForGroupTypeAll() {
442 final AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder();
444 addGroupBuilder.setGroupId(new GroupId(10L));
446 addGroupBuilder.setGroupType(GroupTypes.GroupAll);
447 final List<Bucket> bucketList = new ArrayList<>();
448 final List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>
449 actionsList = new ArrayList<>();
450 final List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>
451 actionsList1 = new ArrayList<>();
454 actionsList.add(assembleActionBuilder("005", actionOrder++).build());
456 actionsList.add(assembleActionBuilder("006", actionOrder++).build());
458 final BucketsBuilder bucketsB = new BucketsBuilder();
460 final BucketBuilder bucketB = new BucketBuilder();
462 bucketB.setAction(actionsList);
463 final Bucket bucket = bucketB.build();
465 bucketList.add(bucket); // List of bucket
467 final BucketBuilder bucketB1 = new BucketBuilder();
470 actionsList1.add(assembleCopyTtlInBuilder(actionOrder++).build());
472 actionsList1.add(assembleSetMplsTtlActionBuilder(actionOrder++).build());
474 bucketB1.setAction(actionsList);
476 final Bucket bucket1 = bucketB1.build(); // second bucket
478 bucketList.add(bucket1);
480 bucketsB.setBucket(bucketList);// List of bucket added to the Buckets
481 final Buckets buckets = bucketsB.build();
483 addGroupBuilder.setBuckets(buckets);
485 VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
486 data.setDatapathId(Uint64.ONE);
488 final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data);
490 assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
491 assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType());
493 assertEquals(10L, outAddGroupInput.getGroupId().getValue().longValue());
495 final List<Action> outActionList = outAddGroupInput.getBucketsList().get(0).getAction();
496 assertEquals(ImmutableList.of(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
497 .actions.grouping.ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
498 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action
499 .grouping.action.choice.group._case.GroupActionBuilder().setGroupId(5L).build())
501 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping
502 .ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
503 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
504 .action.grouping.action.choice.group._case.GroupActionBuilder()
505 .setGroupId(6L).build()).build()).build()), outActionList);
507 final List<Action> outActionList1 = outAddGroupInput.getBucketsList().get(1).getAction();
508 assertEquals(ImmutableList.of(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
509 .actions.grouping.ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
510 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action
511 .grouping.action.choice.group._case.GroupActionBuilder().setGroupId(5L).build())
513 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping
514 .ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
515 new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
516 .action.grouping.action.choice.group._case.GroupActionBuilder()
517 .setGroupId(6L).build()).build()).build()), outActionList1);
520 private GroupModInputBuilder convert(final Group group, final VersionDatapathIdConvertorData data) {
521 final Optional<GroupModInputBuilder> outAddGroupInputOptional = convertorManager.convert(group, data);
522 assertTrue("Group convertor not found", outAddGroupInputOptional.isPresent());
523 return outAddGroupInputOptional.get();