* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributor: usha.m.s@ericsson.com
*/
package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import com.google.common.collect.ImmutableList;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
-
-import org.junit.Assert;
+import java.util.Optional;
+import org.junit.Before;
import org.junit.Test;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlInCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.OutputActionCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetMplsTtlActionCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroupInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.BucketId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupTypes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.Buckets;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.BucketBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.GroupCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetMplsTtlCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.GroupModCommand;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.GroupType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.buckets.grouping.BucketsList;
-import com.google.common.collect.ImmutableList;
-
public class GroupConvertorTest {
+ private ConvertorManager convertorManager;
+
+ @Before
+ public void setUp() {
+ convertorManager = ConvertorManagerFactory.createDefaultManager();
+ }
/**
- * test of {@link GroupConvertor#toGroupModInput(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group, short, java.math.BigInteger)}
+ * test of {@link GroupConvertor#convert(Group, VersionDatapathIdConvertorData)} }.
*/
@Test
public void testGroupModConvertorwithallParameters() {
- AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder();
+ final AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder();
addGroupBuilder.setGroupId(new GroupId(10L));
addGroupBuilder.setGroupType(GroupTypes.GroupAll);
- List<Bucket> bucketList = new ArrayList<Bucket>();
- List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> actionsList = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>();
- List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> actionsList1 = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>();
+ final List<Bucket> bucketList = new ArrayList<>();
+ final List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>
+ actionsList = new ArrayList<>();
+ final List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>
+ actionsList1 = new ArrayList<>();
int actionOrder = 0;
// Action1
- GroupActionBuilder groupActionBuilder = new GroupActionBuilder();
+ final GroupActionBuilder groupActionBuilder = new GroupActionBuilder();
groupActionBuilder.setGroup("005");
- GroupAction groupIdaction = groupActionBuilder.build();
- ActionBuilder actionsB = new ActionBuilder();
+ final GroupAction groupIdaction = groupActionBuilder.build();
+ final ActionBuilder actionsB = new ActionBuilder();
actionsB.setOrder(actionOrder++).setAction(new GroupActionCaseBuilder().setGroupAction(groupIdaction).build());
// Action2:
- GroupActionBuilder groupActionBuilder1 = new GroupActionBuilder();
+ final GroupActionBuilder groupActionBuilder1 = new GroupActionBuilder();
groupActionBuilder1.setGroup("006");
- GroupAction groupIdaction1 = groupActionBuilder.build();
- ActionBuilder actionsB1 = new ActionBuilder();
- actionsB1.setOrder(actionOrder++).setAction(new GroupActionCaseBuilder().setGroupAction(groupIdaction1).build());
+ final GroupAction groupIdaction1 = groupActionBuilder.build();
+ final ActionBuilder actionsB1 = new ActionBuilder();
+ actionsB1.setOrder(actionOrder++).setAction(new GroupActionCaseBuilder()
+ .setGroupAction(groupIdaction1).build());
actionsList.add(actionsB.build());
actionsList.add(actionsB1.build());
- BucketsBuilder bucketsB = new BucketsBuilder();
+ final BucketsBuilder bucketsB = new BucketsBuilder();
- BucketBuilder bucketB = new BucketBuilder();
+ final BucketBuilder bucketB = new BucketBuilder();
bucketB.setWeight(10);
bucketB.setWatchPort(20L);
bucketB.setWatchGroup(22L);
bucketB.setAction(actionsList);
- Bucket bucket = bucketB.build();
+ final Bucket bucket = bucketB.build();
bucketList.add(bucket); // List of bucket
- BucketBuilder bucketB1 = new BucketBuilder();
+ final BucketBuilder bucketB1 = new BucketBuilder();
bucketB1.setWeight(50);
bucketB1.setWatchPort(60L);
bucketB1.setWatchGroup(70L);
// Action1
- CopyTtlInBuilder copyTtlB = new CopyTtlInBuilder();
- CopyTtlIn copyTtl = copyTtlB.build();
- ActionBuilder actionsB2 = new ActionBuilder();
+ final CopyTtlInBuilder copyTtlB = new CopyTtlInBuilder();
+ final CopyTtlIn copyTtl = copyTtlB.build();
+ final ActionBuilder actionsB2 = new ActionBuilder();
actionsB2.setOrder(actionOrder++).setAction(new CopyTtlInCaseBuilder().setCopyTtlIn(copyTtl).build());
// Action2:
- SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder();
+ final SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder();
setMplsTtlActionBuilder.setMplsTtl((short) 0X1);
- SetMplsTtlAction setMAction = setMplsTtlActionBuilder.build();
- ActionBuilder actionsB3 = new ActionBuilder();
+ final SetMplsTtlAction setMAction = setMplsTtlActionBuilder.build();
+ final ActionBuilder actionsB3 = new ActionBuilder();
- actionsB3.setOrder(actionOrder++).setAction(new SetMplsTtlActionCaseBuilder().setSetMplsTtlAction(setMAction).build());
+ actionsB3.setOrder(actionOrder++).setAction(new SetMplsTtlActionCaseBuilder()
+ .setSetMplsTtlAction(setMAction).build());
actionsList1.add(actionsB2.build());
bucketB1.setAction(actionsList);
- Bucket bucket1 = bucketB1.build(); // second bucket
+ final Bucket bucket1 = bucketB1.build(); // second bucket
bucketList.add(bucket1);
bucketsB.setBucket(bucketList);// List of bucket added to the Buckets
- Buckets buckets = bucketsB.build();
+ final Buckets buckets = bucketsB.build();
addGroupBuilder.setBuckets(buckets);
- GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(addGroupBuilder.build(), (short) 0X4, BigInteger.valueOf(1));
-
- Assert.assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
- Assert.assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType());
-
- Assert.assertEquals(10L, (long) outAddGroupInput.getGroupId().getValue());
- Assert.assertEquals(10, (int) outAddGroupInput.getBucketsList().get(0).getWeight());
- Assert.assertEquals(20L, (long) outAddGroupInput.getBucketsList().get(0).getWatchPort().getValue());
- Assert.assertEquals((Long) 22L, outAddGroupInput.getBucketsList().get(0).getWatchGroup());
-
- List<Action> outActionList = outAddGroupInput.getBucketsList().get(0).getAction();
- for (int outItem = 0; outItem < outActionList.size(); outItem++) {
- Action action = outActionList
- .get(outItem);
- if (action.getActionChoice() instanceof GroupActionCase) {
- Assert.assertEquals((Long) 5L, ((GroupActionCase) action.getActionChoice()).getGroupAction().getGroupId());
-
- }
- // TODO:setMplsTTL :OF layer doesnt have get();
- }
-
- Assert.assertEquals((Integer) 50, outAddGroupInput.getBucketsList().get(1).getWeight());
- Assert.assertEquals((long) 60, (long) outAddGroupInput.getBucketsList().get(1).getWatchPort().getValue());
- Assert.assertEquals((Long) 70L, outAddGroupInput.getBucketsList().get(1).getWatchGroup());
- List<Action> outActionList1 = outAddGroupInput.getBucketsList().get(1).getAction();
- for (int outItem = 0; outItem < outActionList1.size(); outItem++) {
- Action action = outActionList1
- .get(outItem);
- if (action.getActionChoice() instanceof GroupActionCase) {
-
- Assert.assertEquals((Long) 6L, ((GroupActionCase) action.getActionChoice()).getGroupAction().getGroupId());
-
-
- }
- // TODO:setMplsTTL :OF layer doesnt have get();
- }
-
+ VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
+ data.setDatapathId(BigInteger.valueOf(1));
+
+ final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data);
+
+ assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
+ assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType());
+
+ assertEquals(10L, (long) outAddGroupInput.getGroupId().getValue());
+ assertEquals(10, (int) outAddGroupInput.getBucketsList().get(0).getWeight());
+ assertEquals(20L, (long) outAddGroupInput.getBucketsList().get(0).getWatchPort().getValue());
+ assertEquals((Long) 22L, outAddGroupInput.getBucketsList().get(0).getWatchGroup());
+
+ final List<Action> outActionList = outAddGroupInput.getBucketsList().get(0).getAction();
+ assertEquals(ImmutableList.of(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action
+ .rev150203.actions.grouping.ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping
+ .action.choice.group._case.GroupActionBuilder().setGroupId(5L).build()).build()).build(),
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping
+ .ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action
+ .grouping.action.choice.group._case.GroupActionBuilder().setGroupId(5L).build()).build())
+ .build()), outActionList);
+
+ assertEquals((Integer) 50, outAddGroupInput.getBucketsList().get(1).getWeight());
+ assertEquals((long) 60, (long) outAddGroupInput.getBucketsList().get(1).getWatchPort().getValue());
+ assertEquals((Long) 70L, outAddGroupInput.getBucketsList().get(1).getWatchGroup());
+
+ final List<Action> outActionList1 = outAddGroupInput.getBucketsList().get(1).getAction();
+ assertEquals(ImmutableList.of(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action
+ .rev150203.actions.grouping.ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping
+ .action.choice.group._case.GroupActionBuilder().setGroupId(5L).build()).build()).build(),
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping
+ .ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action
+ .grouping.action.choice.group._case.GroupActionBuilder().setGroupId(5L).build()).build())
+ .build()), outActionList1);
}
/**
- * test of {@link GroupConvertor#toGroupModInput(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group, short, java.math.BigInteger)}
+ * test of {@link GroupConvertor#convert(Group, VersionDatapathIdConvertorData)} }.
*/
@Test
public void testGroupModConvertorNoBucket() {
- AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder();
+ final AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder();
addGroupBuilder.setGroupId(new GroupId(10L));
addGroupBuilder.setGroupType(GroupTypes.GroupAll);
- GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(addGroupBuilder.build(), (short) 0X4, BigInteger.valueOf(1));
+ VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
+ data.setDatapathId(BigInteger.valueOf(1));
- Assert.assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
- Assert.assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType());
+ final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data);
+ assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
+ assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType());
}
/**
- * test of {@link GroupConvertor#toGroupModInput(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group, short, java.math.BigInteger)}
+ * test of {@link GroupConvertor#convert(Group, VersionDatapathIdConvertorData)} }.
*/
@Test
public void testGroupModConvertorBucketwithNOWieghtValuesForGroupTypeFastFailure() {
int actionOrder = 0;
- AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder();
+ final AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder();
addGroupBuilder.setGroupId(new GroupId(10L));
addGroupBuilder.setGroupType(GroupTypes.GroupFf);
- List<Bucket> bucketList = new ArrayList<Bucket>();
- List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> actionsList = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>();
- List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> actionsList1 = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>();
+ final List<Bucket> bucketList = new ArrayList<>();
+ final List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>
+ actionsList = new ArrayList<>();
+ final List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>
+ actionsList1 = new ArrayList<>();
// Action1: 005
actionsList.add(assembleActionBuilder("005", actionOrder++).build());
actionsList.add(assembleActionBuilder("006", actionOrder++).build());
// .. and mr.Bond is not coming today
- BucketsBuilder bucketsB = new BucketsBuilder();
+ final BucketsBuilder bucketsB = new BucketsBuilder();
- BucketBuilder bucketB = new BucketBuilder();
+ final BucketBuilder bucketB = new BucketBuilder();
bucketB.setAction(actionsList);
- Bucket bucket = bucketB.build();
+ final Bucket bucket = bucketB.build();
bucketList.add(bucket); // List of bucket
- BucketBuilder bucketB1 = new BucketBuilder();
+ final BucketBuilder bucketB1 = new BucketBuilder();
// Action1
actionsList1.add(assembleCopyTtlInBuilder(actionOrder++).build());
bucketB1.setAction(actionsList1);
- Bucket bucket1 = bucketB1.build(); // second bucket
+ final Bucket bucket1 = bucketB1.build(); // second bucket
bucketList.add(bucket1);
bucketsB.setBucket(bucketList);// List of bucket added to the Buckets
- Buckets buckets = bucketsB.build();
+ final Buckets buckets = bucketsB.build();
addGroupBuilder.setBuckets(buckets);
- GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(addGroupBuilder.build(), (short) 0X4, BigInteger.valueOf(1));
-
- Assert.assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
- Assert.assertEquals(GroupType.OFPGTFF, outAddGroupInput.getType());
-
- Assert.assertEquals(10L, outAddGroupInput.getGroupId().getValue().longValue());
-
- List<Action> outActionList = outAddGroupInput.getBucketsList().get(0).getAction();
- for (int outItem = 0; outItem < outActionList.size(); outItem++) {
- Action action = outActionList
- .get(outItem);
- if (action.getActionChoice() instanceof GroupActionCase) {
- Assert.assertEquals((Long) 5L, ((GroupActionCase) action.getActionChoice()).getGroupAction().getGroupId());
- }
- }
-
- List<Action> outActionList1 = outAddGroupInput.getBucketsList().get(1).getAction();
- for (int outItem = 0; outItem < outActionList1.size(); outItem++) {
- Action action = outActionList1
- .get(outItem);
- if (action.getActionChoice() instanceof GroupActionCase) {
- Assert.assertEquals((Long) 6L, ((GroupActionCase) action.getActionChoice()).getGroupAction().getGroupId());
- }
- }
+ VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
+ data.setDatapathId(BigInteger.valueOf(1));
+
+ final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data);
+
+ assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
+ assertEquals(GroupType.OFPGTFF, outAddGroupInput.getType());
+
+ assertEquals(10L, outAddGroupInput.getGroupId().getValue().longValue());
+
+ final List<Action> outActionList = outAddGroupInput.getBucketsList().get(0).getAction();
+ assertEquals(ImmutableList.of(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
+ .actions.grouping.ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action
+ .grouping.action.choice.group._case.GroupActionBuilder().setGroupId(5L).build()).build())
+ .build(),
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping
+ .ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
+ .action.grouping.action.choice.group._case.GroupActionBuilder().setGroupId(6L)
+ .build()).build()).build()), outActionList);
+
+ final List<Action> outActionList1 = outAddGroupInput.getBucketsList().get(1).getAction();
+ assertEquals(ImmutableList.of(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
+ .actions.grouping.ActionBuilder().setActionChoice(
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action
+ .grouping.action.choice.CopyTtlInCaseBuilder().build()).build(),
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping
+ .ActionBuilder().setActionChoice(new SetMplsTtlCaseBuilder().setSetMplsTtlAction(
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
+ .action.grouping.action.choice.set.mpls.ttl._case.SetMplsTtlActionBuilder()
+ .setMplsTtl((short) 1).build()).build()).build()), outActionList1);
}
/**
- * test of {@link GroupConvertor#toGroupModInput(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group, short, java.math.BigInteger)}
+ * test of {@link GroupConvertor#convert(Group, VersionDatapathIdConvertorData)} }.
*/
@Test
public void testGroupModConvertSortedBuckets() {
- int actionOrder = 0;
+ final int actionOrder = 0;
- ArrayList<Bucket> bucket = new ArrayList<Bucket>();
+ final ArrayList<Bucket> bucket = new ArrayList<>();
bucket.add(new BucketBuilder()
- .setBucketId(new BucketId((long) 4))
- .setWatchPort((long)2)
- .setWatchGroup((long) 1)
- .setAction(ImmutableList.of(new ActionBuilder()
+ .setBucketId(new BucketId((long) 4))
+ .setWatchPort((long)2)
+ .setWatchGroup((long) 1)
+ .setAction(ImmutableList.of(new ActionBuilder()
.setOrder(0)
.setAction(new OutputActionCaseBuilder()
- .setOutputAction(new OutputActionBuilder()
- .setOutputNodeConnector(new Uri("openflow:1:2"))
- .build())
+ .setOutputAction(new OutputActionBuilder()
+ .setOutputNodeConnector(new Uri("openflow:1:2"))
.build())
+ .build())
.build()))
- .build());
+ .build());
bucket.add(new BucketBuilder()
- .setBucketId(new BucketId((long) 3))
- .setWatchPort((long)6)
- .setWatchGroup((long) 1)
- .setAction(ImmutableList.of(new ActionBuilder()
+ .setBucketId(new BucketId((long) 3))
+ .setWatchPort((long)6)
+ .setWatchGroup((long) 1)
+ .setAction(ImmutableList.of(new ActionBuilder()
.setOrder(0)
.setAction(new OutputActionCaseBuilder()
- .setOutputAction(new OutputActionBuilder()
- .setOutputNodeConnector(new Uri("openflow:1:6"))
- .build())
+ .setOutputAction(new OutputActionBuilder()
+ .setOutputNodeConnector(new Uri("openflow:1:6"))
.build())
+ .build())
.build()))
.build());
bucket.add(new BucketBuilder()
- .setBucketId(new BucketId((long) 2))
- .setWatchPort((long)5)
- .setWatchGroup((long) 1)
- .setAction(ImmutableList.of(new ActionBuilder()
+ .setBucketId(new BucketId((long) 2))
+ .setWatchPort((long)5)
+ .setWatchGroup((long) 1)
+ .setAction(ImmutableList.of(new ActionBuilder()
.setOrder(0)
.setAction(new OutputActionCaseBuilder()
- .setOutputAction(new OutputActionBuilder()
- .setOutputNodeConnector(new Uri("openflow:1:5"))
- .build())
+ .setOutputAction(new OutputActionBuilder()
+ .setOutputNodeConnector(new Uri("openflow:1:5"))
.build())
+ .build())
.build()))
.build());
bucket.add(new BucketBuilder()
- .setBucketId(new BucketId((long) 1))
- .setWatchPort((long)4)
- .setWatchGroup((long) 1)
- .setAction(ImmutableList.of(new ActionBuilder()
- .setOrder(0)
- .setAction(new OutputActionCaseBuilder()
- .setOutputAction(new OutputActionBuilder()
- .setOutputNodeConnector(new Uri("openflow:1:4"))
- .build())
- .build())
- .build()))
- .build());
+ .setBucketId(new BucketId((long) 1))
+ .setWatchPort((long)4)
+ .setWatchGroup((long) 1)
+ .setAction(ImmutableList.of(new ActionBuilder()
+ .setOrder(0)
+ .setAction(new OutputActionCaseBuilder()
+ .setOutputAction(new OutputActionBuilder()
+ .setOutputNodeConnector(new Uri("openflow:1:4"))
+ .build())
+ .build())
+ .build()))
+ .build());
bucket.add(new BucketBuilder()
- .setBucketId(new BucketId((long) 0))
- .setWatchPort((long)3)
- .setWatchGroup((long) 1)
- .setAction(ImmutableList.of(new ActionBuilder()
- .setOrder(0)
- .setAction(new OutputActionCaseBuilder()
- .setOutputAction(new OutputActionBuilder()
- .setOutputNodeConnector(new Uri("openflow:1:3"))
- .build())
- .build())
- .build()))
- .build());
+ .setBucketId(new BucketId((long) 0))
+ .setWatchPort((long)3)
+ .setWatchGroup((long) 1)
+ .setAction(ImmutableList.of(new ActionBuilder()
+ .setOrder(0)
+ .setAction(new OutputActionCaseBuilder()
+ .setOutputAction(new OutputActionBuilder()
+ .setOutputNodeConnector(new Uri("openflow:1:3"))
+ .build())
+ .build())
+ .build()))
+ .build());
- AddGroupInput input = new AddGroupInputBuilder()
- .setGroupId(new GroupId((long) 1))
- .setGroupName("Foo")
- .setGroupType(GroupTypes.GroupFf)
- .setBuckets(new BucketsBuilder()
- .setBucket(bucket)
- .build())
- .build();
+ final AddGroupInput input = new AddGroupInputBuilder()
+ .setGroupId(new GroupId((long) 1))
+ .setGroupName("Foo")
+ .setGroupType(GroupTypes.GroupFf)
+ .setBuckets(new BucketsBuilder()
+ .setBucket(bucket)
+ .build())
+ .build();
- GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(input, (short) 0X4, BigInteger.valueOf(1));
+ VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
+ data.setDatapathId(BigInteger.valueOf(1));
- List<BucketsList> bucketList = outAddGroupInput.getBucketsList();
- Assert.assertEquals( Long.valueOf(1), bucketList.get(0).getWatchGroup());
- Assert.assertEquals( Long.valueOf(3), bucketList.get(0).getWatchPort().getValue());
+ final GroupModInputBuilder outAddGroupInput = convert(input, data);
- Assert.assertEquals( Long.valueOf(1), bucketList.get(1).getWatchGroup());
- Assert.assertEquals( Long.valueOf(4), bucketList.get(1).getWatchPort().getValue());
+ final List<BucketsList> bucketList = outAddGroupInput.getBucketsList();
+ assertEquals(Long.valueOf(1), bucketList.get(0).getWatchGroup());
+ assertEquals(Long.valueOf(3), bucketList.get(0).getWatchPort().getValue());
- Assert.assertEquals( Long.valueOf(1), bucketList.get(2).getWatchGroup());
- Assert.assertEquals( Long.valueOf(5), bucketList.get(2).getWatchPort().getValue());
+ assertEquals(Long.valueOf(1), bucketList.get(1).getWatchGroup());
+ assertEquals(Long.valueOf(4), bucketList.get(1).getWatchPort().getValue());
- Assert.assertEquals( Long.valueOf(1), bucketList.get(3).getWatchGroup());
- Assert.assertEquals( Long.valueOf(6), bucketList.get(3).getWatchPort().getValue());
+ assertEquals(Long.valueOf(1), bucketList.get(2).getWatchGroup());
+ assertEquals(Long.valueOf(5), bucketList.get(2).getWatchPort().getValue());
- Assert.assertEquals( Long.valueOf(1), bucketList.get(4).getWatchGroup());
- Assert.assertEquals( Long.valueOf(2), bucketList.get(4).getWatchPort().getValue());
+ assertEquals(Long.valueOf(1), bucketList.get(3).getWatchGroup());
+ assertEquals(Long.valueOf(6), bucketList.get(3).getWatchPort().getValue());
+ assertEquals(Long.valueOf(1), bucketList.get(4).getWatchGroup());
+ assertEquals(Long.valueOf(2), bucketList.get(4).getWatchPort().getValue());
}
- /**
- * @return
- */
- private static ActionBuilder assembleSetMplsTtlActionBuilder(int actionOrder) {
- SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder();
+ private static ActionBuilder assembleSetMplsTtlActionBuilder(final int actionOrder) {
+ final SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder();
setMplsTtlActionBuilder.setMplsTtl((short) 0X1);
- SetMplsTtlActionCaseBuilder setMplsTtlActionCaseBuilder = new SetMplsTtlActionCaseBuilder();
+ final SetMplsTtlActionCaseBuilder setMplsTtlActionCaseBuilder = new SetMplsTtlActionCaseBuilder();
setMplsTtlActionCaseBuilder.setSetMplsTtlAction(setMplsTtlActionBuilder.build());
- ActionBuilder actionsB3 = new ActionBuilder();
+ final ActionBuilder actionsB3 = new ActionBuilder();
actionsB3.setOrder(actionOrder).setAction(setMplsTtlActionCaseBuilder.build());
return actionsB3;
}
- /**
- * @return
- */
- private static ActionBuilder assembleCopyTtlInBuilder(int actionOrder) {
- CopyTtlInBuilder copyTtlB = new CopyTtlInBuilder();
- CopyTtlInCaseBuilder copyTtlInCaseBuilder = new CopyTtlInCaseBuilder();
+ private static ActionBuilder assembleCopyTtlInBuilder(final int actionOrder) {
+ final CopyTtlInBuilder copyTtlB = new CopyTtlInBuilder();
+ final CopyTtlInCaseBuilder copyTtlInCaseBuilder = new CopyTtlInCaseBuilder();
copyTtlInCaseBuilder.setCopyTtlIn(copyTtlB.build());
- ActionBuilder actionsB2 = new ActionBuilder();
+ final ActionBuilder actionsB2 = new ActionBuilder();
actionsB2.setOrder(actionOrder).setAction(copyTtlInCaseBuilder.build());
return actionsB2;
}
- /**
- * @param groupName name of group
- * @return
- */
- private static ActionBuilder assembleActionBuilder(String groupName, int actionOrder) {
- GroupActionBuilder groupActionBuilder = new GroupActionBuilder();
+ private static ActionBuilder assembleActionBuilder(final String groupName, final int actionOrder) {
+ final GroupActionBuilder groupActionBuilder = new GroupActionBuilder();
groupActionBuilder.setGroup(groupName);
- GroupActionCaseBuilder groupActionCaseBuilder = new GroupActionCaseBuilder();
+ final GroupActionCaseBuilder groupActionCaseBuilder = new GroupActionCaseBuilder();
groupActionCaseBuilder.setGroupAction(groupActionBuilder.build());
- ActionBuilder actionsBld = new ActionBuilder();
+ final ActionBuilder actionsBld = new ActionBuilder();
actionsBld.setOrder(actionOrder).setAction(groupActionCaseBuilder.build());
return actionsBld;
}
/**
- * test of {@link GroupConvertor#toGroupModInput(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group, short, java.math.BigInteger)} )}
+ * test of {@link GroupConvertor#convert(Group, VersionDatapathIdConvertorData)} }.
*/
@Test
public void testGroupModConvertorBucketwithNOWieghtValuesForGroupTypeAll() {
int actionOrder = 0;
- AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder();
+ final AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder();
addGroupBuilder.setGroupId(new GroupId(10L));
addGroupBuilder.setGroupType(GroupTypes.GroupAll);
- List<Bucket> bucketList = new ArrayList<Bucket>();
- List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> actionsList = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>();
- List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> actionsList1 = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>();
+ final List<Bucket> bucketList = new ArrayList<>();
+ final List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>
+ actionsList = new ArrayList<>();
+ final List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>
+ actionsList1 = new ArrayList<>();
// Action1
actionsList.add(assembleActionBuilder("005", actionOrder++).build());
// Action2:
actionsList.add(assembleActionBuilder("006", actionOrder++).build());
- BucketsBuilder bucketsB = new BucketsBuilder();
+ final BucketsBuilder bucketsB = new BucketsBuilder();
- BucketBuilder bucketB = new BucketBuilder();
+ final BucketBuilder bucketB = new BucketBuilder();
bucketB.setAction(actionsList);
- Bucket bucket = bucketB.build();
+ final Bucket bucket = bucketB.build();
bucketList.add(bucket); // List of bucket
- BucketBuilder bucketB1 = new BucketBuilder();
+ final BucketBuilder bucketB1 = new BucketBuilder();
// Action1
actionsList1.add(assembleCopyTtlInBuilder(actionOrder++).build());
bucketB1.setAction(actionsList);
- Bucket bucket1 = bucketB1.build(); // second bucket
+ final Bucket bucket1 = bucketB1.build(); // second bucket
bucketList.add(bucket1);
bucketsB.setBucket(bucketList);// List of bucket added to the Buckets
- Buckets buckets = bucketsB.build();
+ final Buckets buckets = bucketsB.build();
addGroupBuilder.setBuckets(buckets);
- GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(addGroupBuilder.build(), (short) 0X4, BigInteger.valueOf(1));
-
- Assert.assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
- Assert.assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType());
-
- Assert.assertEquals(10L, outAddGroupInput.getGroupId().getValue().longValue());
-
- List<Action> outActionList = outAddGroupInput.getBucketsList().get(0).getAction();
- for (int outItem = 0; outItem < outActionList.size(); outItem++) {
- Action action = outActionList
- .get(outItem);
- if (action.getActionChoice() instanceof GroupActionCase) {
- Assert.assertEquals((Long) 5L, ((GroupActionCase) action.getActionChoice()).getGroupAction().getGroupId());
-
- }
-
- }
-
- List<Action> outActionList1 = outAddGroupInput.getBucketsList().get(1).getAction();
- for (int outItem = 0; outItem < outActionList1.size(); outItem++) {
- Action action = outActionList1
- .get(outItem);
- if (action.getActionChoice() instanceof GroupActionCase) {
-
- Assert.assertEquals((Long) 6L, ((GroupActionCase) action.getActionChoice()).getGroupAction().getGroupId());
-
- }
-
- }
+ VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
+ data.setDatapathId(BigInteger.valueOf(1));
+
+ final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data);
+
+ assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
+ assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType());
+
+ assertEquals(10L, outAddGroupInput.getGroupId().getValue().longValue());
+
+ final List<Action> outActionList = outAddGroupInput.getBucketsList().get(0).getAction();
+ assertEquals(ImmutableList.of(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
+ .actions.grouping.ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action
+ .grouping.action.choice.group._case.GroupActionBuilder().setGroupId(5L).build())
+ .build()).build(),
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping
+ .ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
+ .action.grouping.action.choice.group._case.GroupActionBuilder()
+ .setGroupId(6L).build()).build()).build()), outActionList);
+
+ final List<Action> outActionList1 = outAddGroupInput.getBucketsList().get(1).getAction();
+ assertEquals(ImmutableList.of(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
+ .actions.grouping.ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action
+ .grouping.action.choice.group._case.GroupActionBuilder().setGroupId(5L).build())
+ .build()).build(),
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping
+ .ActionBuilder().setActionChoice(new GroupCaseBuilder().setGroupAction(
+ new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203
+ .action.grouping.action.choice.group._case.GroupActionBuilder()
+ .setGroupId(6L).build()).build()).build()), outActionList1);
+ }
+ private GroupModInputBuilder convert(final Group group, final VersionDatapathIdConvertorData data) {
+ final Optional<GroupModInputBuilder> outAddGroupInputOptional = convertorManager.convert(group, data);
+ assertTrue("Group convertor not found", outAddGroupInputOptional.isPresent());
+ return outAddGroupInputOptional.get();
}
}