X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflowplugin%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fopenflow%2Fmd%2Fcore%2Fsal%2Fconvertor%2FGroupConvertorTest.java;h=3c95cf670e26db13ae5c8d0ba5c7ecca60d25d9f;hb=1c668d854bc88e6db3693e64ea9500a39696197d;hp=5e3ab0843eea9a09bcfdeaa9e5fb46796e1db4b4;hpb=93089b42080899f0ad1cd00840ad5a3cd5f1631d;p=openflowplugin.git diff --git a/openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/GroupConvertorTest.java b/openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/GroupConvertorTest.java index 5e3ab0843e..3c95cf670e 100644 --- a/openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/GroupConvertorTest.java +++ b/openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/GroupConvertorTest.java @@ -1,24 +1,24 @@ -/** +/* * Copyright (c) 2014 Ericsson India Global Services Pvt Ltd. and others. All rights reserved. * * 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.openflowplugin.openflow.md.util.OpenflowPortsUtil; -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; @@ -33,34 +33,50 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.acti 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.group.types.rev131018.group.buckets.BucketKey; +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 org.opendaylight.yangtools.yang.common.Uint16; +import org.opendaylight.yangtools.yang.common.Uint32; +import org.opendaylight.yangtools.yang.common.Uint64; +import org.opendaylight.yangtools.yang.common.Uint8; 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() { final AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder(); - addGroupBuilder.setGroupId(new GroupId(10L)); + addGroupBuilder.setGroupId(new GroupId(Uint32.TEN)); addGroupBuilder.setGroupType(GroupTypes.GroupAll); - final List bucketList = new ArrayList(); - final List actionsList = new ArrayList(); - final List actionsList1 = new ArrayList(); + final List bucketList = new ArrayList<>(); + final List + actionsList = new ArrayList<>(); + final List + actionsList1 = new ArrayList<>(); int actionOrder = 0; @@ -76,7 +92,8 @@ public class GroupConvertorTest { groupActionBuilder1.setGroup("006"); final GroupAction groupIdaction1 = groupActionBuilder.build(); final ActionBuilder actionsB1 = new ActionBuilder(); - actionsB1.setOrder(actionOrder++).setAction(new GroupActionCaseBuilder().setGroupAction(groupIdaction1).build()); + actionsB1.setOrder(actionOrder++).setAction(new GroupActionCaseBuilder() + .setGroupAction(groupIdaction1).build()); actionsList.add(actionsB.build()); actionsList.add(actionsB1.build()); @@ -85,9 +102,10 @@ public class GroupConvertorTest { final BucketsBuilder bucketsB = new BucketsBuilder(); final BucketBuilder bucketB = new BucketBuilder(); - bucketB.setWeight(10); - bucketB.setWatchPort(20L); - bucketB.setWatchGroup(22L); + bucketB.setWeight(Uint16.TEN); + bucketB.setWatchPort(Uint32.valueOf(20)); + bucketB.setWatchGroup(Uint32.valueOf(22)); + bucketB.withKey(new BucketKey(new BucketId(Uint32.ZERO))); bucketB.setAction(actionsList); final Bucket bucket = bucketB.build(); @@ -95,9 +113,10 @@ public class GroupConvertorTest { bucketList.add(bucket); // List of bucket final BucketBuilder bucketB1 = new BucketBuilder(); - bucketB1.setWeight(50); - bucketB1.setWatchPort(60L); - bucketB1.setWatchGroup(70L); + bucketB1.setWeight(Uint16.valueOf(50)); + bucketB1.setWatchPort(Uint32.valueOf(60)); + bucketB1.setWatchGroup(Uint32.valueOf(70)); + bucketB1.withKey(new BucketKey(new BucketId(Uint32.ONE))); // Action1 final CopyTtlInBuilder copyTtlB = new CopyTtlInBuilder(); @@ -107,11 +126,12 @@ public class GroupConvertorTest { // Action2: final SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder(); - setMplsTtlActionBuilder.setMplsTtl((short) 0X1); + setMplsTtlActionBuilder.setMplsTtl(Uint8.ONE); 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()); @@ -128,64 +148,71 @@ public class GroupConvertorTest { addGroupBuilder.setBuckets(buckets); - final GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(addGroupBuilder.build(), (short) 0X4, BigInteger.valueOf(1)); - - Assert.assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand()); - Assert.assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType()); + VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4); + data.setDatapathId(Uint64.ONE); - 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()); + final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data); - final List outActionList = outAddGroupInput.getBucketsList().get(0).getAction(); - for (int outItem = 0; outItem < outActionList.size(); outItem++) { - final 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()); - final List outActionList1 = outAddGroupInput.getBucketsList().get(1).getAction(); - for (int outItem = 0; outItem < outActionList1.size(); outItem++) { - final Action action = outActionList1 - .get(outItem); - if (action.getActionChoice() instanceof GroupActionCase) { - - Assert.assertEquals((Long) 6L, ((GroupActionCase) action.getActionChoice()).getGroupAction().getGroupId()); + assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand()); + assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType()); + assertEquals(10L, outAddGroupInput.getGroupId().getValue().toJava()); + assertEquals(10, outAddGroupInput.getBucketsList().get(0).getWeight().toJava()); + assertEquals(20L, outAddGroupInput.getBucketsList().get(0).getWatchPort().getValue().toJava()); + assertEquals(22L, outAddGroupInput.getBucketsList().get(0).getWatchGroup().toJava()); - } - // TODO:setMplsTTL :OF layer doesnt have get(); - } + final List 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(Uint32.valueOf(5)).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(Uint32.valueOf(5)) + .build()).build()) + .build()), outActionList); + + assertEquals(50, outAddGroupInput.getBucketsList().get(1).getWeight().toJava()); + assertEquals(60, outAddGroupInput.getBucketsList().get(1).getWatchPort().getValue().toJava()); + assertEquals(70L, outAddGroupInput.getBucketsList().get(1).getWatchGroup().toJava()); + final List 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(Uint32.valueOf(5)).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(Uint32.valueOf(5)) + .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() { final AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder(); - addGroupBuilder.setGroupId(new GroupId(10L)); + addGroupBuilder.setGroupId(new GroupId(Uint32.TEN)); addGroupBuilder.setGroupType(GroupTypes.GroupAll); - final GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(addGroupBuilder.build(), (short) 0X4, BigInteger.valueOf(1)); + VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4); + data.setDatapathId(Uint64.ONE); - 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() { @@ -194,12 +221,14 @@ public class GroupConvertorTest { final AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder(); - addGroupBuilder.setGroupId(new GroupId(10L)); + addGroupBuilder.setGroupId(new GroupId(Uint32.TEN)); addGroupBuilder.setGroupType(GroupTypes.GroupFf); - final List bucketList = new ArrayList(); - final List actionsList = new ArrayList(); - final List actionsList1 = new ArrayList(); + final List bucketList = new ArrayList<>(); + final List + actionsList = new ArrayList<>(); + final List + actionsList1 = new ArrayList<>(); // Action1: 005 actionsList.add(assembleActionBuilder("005", actionOrder++).build()); @@ -211,7 +240,7 @@ public class GroupConvertorTest { final BucketBuilder bucketB = new BucketBuilder(); - bucketB.setAction(actionsList); + bucketB.setAction(actionsList).withKey(new BucketKey(new BucketId(Uint32.ZERO))); final Bucket bucket = bucketB.build(); bucketList.add(bucket); // List of bucket @@ -224,7 +253,7 @@ public class GroupConvertorTest { // Action2: actionsList1.add(assembleSetMplsTtlActionBuilder(actionOrder++).build()); - bucketB1.setAction(actionsList1); + bucketB1.setAction(actionsList1).withKey(new BucketKey(new BucketId(Uint32.ONE))); final Bucket bucket1 = bucketB1.build(); // second bucket @@ -235,151 +264,157 @@ public class GroupConvertorTest { addGroupBuilder.setBuckets(buckets); - final GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(addGroupBuilder.build(), (short) 0X4, BigInteger.valueOf(1)); + VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4); + data.setDatapathId(Uint64.ONE); + + final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data); - Assert.assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand()); - Assert.assertEquals(GroupType.OFPGTFF, outAddGroupInput.getType()); + assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand()); + assertEquals(GroupType.OFPGTFF, outAddGroupInput.getType()); - Assert.assertEquals(10L, outAddGroupInput.getGroupId().getValue().longValue()); + assertEquals(10L, outAddGroupInput.getGroupId().getValue().longValue()); final List outActionList = outAddGroupInput.getBucketsList().get(0).getAction(); - for (int outItem = 0; outItem < outActionList.size(); outItem++) { - final Action action = outActionList - .get(outItem); - if (action.getActionChoice() instanceof GroupActionCase) { - Assert.assertEquals((Long) 5L, ((GroupActionCase) action.getActionChoice()).getGroupAction().getGroupId()); - } - } + 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(Uint32.valueOf(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(Uint32.valueOf(6)).build()).build()).build()), outActionList); final List outActionList1 = outAddGroupInput.getBucketsList().get(1).getAction(); - for (int outItem = 0; outItem < outActionList1.size(); outItem++) { - final Action action = outActionList1 - .get(outItem); - if (action.getActionChoice() instanceof GroupActionCase) { - Assert.assertEquals((Long) 6L, ((GroupActionCase) action.getActionChoice()).getGroupAction().getGroupId()); - } - } + 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(Uint8.ONE).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() { final int actionOrder = 0; - final ArrayList bucket = new ArrayList(); + final ArrayList 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(Uint32.valueOf(4))) + .setWatchPort(Uint32.TWO) + .setWatchGroup(Uint32.ONE) + .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(Uint32.valueOf(3))) + .setWatchPort(Uint32.valueOf(6)) + .setWatchGroup(Uint32.ONE) + .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(Uint32.TWO)) + .setWatchPort(Uint32.valueOf(5)) + .setWatchGroup(Uint32.ONE) + .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(Uint32.ONE)) + .setWatchPort(Uint32.valueOf(4)) + .setWatchGroup(Uint32.ONE) + .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(Uint32.ZERO)) + .setWatchPort(Uint32.valueOf(3)) + .setWatchGroup(Uint32.ONE) + .setAction(ImmutableList.of(new ActionBuilder() + .setOrder(0) + .setAction(new OutputActionCaseBuilder() + .setOutputAction(new OutputActionBuilder() + .setOutputNodeConnector(new Uri("openflow:1:3")) + .build()) + .build()) + .build())) + .build()); final AddGroupInput input = new AddGroupInputBuilder() - .setGroupId(new GroupId((long) 1)) - .setGroupName("Foo") - .setGroupType(GroupTypes.GroupFf) - .setBuckets(new BucketsBuilder() - .setBucket(bucket) - .build()) - .build(); + .setGroupId(new GroupId(Uint32.ONE)) + .setGroupName("Foo") + .setGroupType(GroupTypes.GroupFf) + .setBuckets(new BucketsBuilder() + .setBucket(bucket) + .build()) + .build(); - OpenflowPortsUtil.init(); + VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4); + data.setDatapathId(Uint64.ONE); - final GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(input, (short) 0X4, BigInteger.valueOf(1)); + final GroupModInputBuilder outAddGroupInput = convert(input, data); final List bucketList = outAddGroupInput.getBucketsList(); - Assert.assertEquals( Long.valueOf(1), bucketList.get(0).getWatchGroup()); - Assert.assertEquals( Long.valueOf(3), bucketList.get(0).getWatchPort().getValue()); + assertEquals(Uint32.ONE, bucketList.get(0).getWatchGroup()); + assertEquals(Uint32.valueOf(3), bucketList.get(0).getWatchPort().getValue()); - Assert.assertEquals( Long.valueOf(1), bucketList.get(1).getWatchGroup()); - Assert.assertEquals( Long.valueOf(4), bucketList.get(1).getWatchPort().getValue()); + assertEquals(Uint32.ONE, bucketList.get(1).getWatchGroup()); + assertEquals(Uint32.valueOf(4), bucketList.get(1).getWatchPort().getValue()); - Assert.assertEquals( Long.valueOf(1), bucketList.get(2).getWatchGroup()); - Assert.assertEquals( Long.valueOf(5), bucketList.get(2).getWatchPort().getValue()); + assertEquals(Uint32.ONE, bucketList.get(2).getWatchGroup()); + assertEquals(Uint32.valueOf(5), bucketList.get(2).getWatchPort().getValue()); - Assert.assertEquals( Long.valueOf(1), bucketList.get(3).getWatchGroup()); - Assert.assertEquals( Long.valueOf(6), bucketList.get(3).getWatchPort().getValue()); - - Assert.assertEquals( Long.valueOf(1), bucketList.get(4).getWatchGroup()); - Assert.assertEquals( Long.valueOf(2), bucketList.get(4).getWatchPort().getValue()); + assertEquals(Uint32.ONE, bucketList.get(3).getWatchGroup()); + assertEquals(Uint32.valueOf(6), bucketList.get(3).getWatchPort().getValue()); + assertEquals(Uint32.ONE, bucketList.get(4).getWatchGroup()); + assertEquals(Uint32.valueOf(2), bucketList.get(4).getWatchPort().getValue()); } - /** - * @return - */ private static ActionBuilder assembleSetMplsTtlActionBuilder(final int actionOrder) { final SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder(); - setMplsTtlActionBuilder.setMplsTtl((short) 0X1); + setMplsTtlActionBuilder.setMplsTtl(Uint8.ONE); final SetMplsTtlActionCaseBuilder setMplsTtlActionCaseBuilder = new SetMplsTtlActionCaseBuilder(); setMplsTtlActionCaseBuilder.setSetMplsTtlAction(setMplsTtlActionBuilder.build()); final ActionBuilder actionsB3 = new ActionBuilder(); @@ -387,9 +422,6 @@ public class GroupConvertorTest { return actionsB3; } - /** - * @return - */ private static ActionBuilder assembleCopyTtlInBuilder(final int actionOrder) { final CopyTtlInBuilder copyTtlB = new CopyTtlInBuilder(); final CopyTtlInCaseBuilder copyTtlInCaseBuilder = new CopyTtlInCaseBuilder(); @@ -399,10 +431,6 @@ public class GroupConvertorTest { return actionsB2; } - /** - * @param groupName name of group - * @return - */ private static ActionBuilder assembleActionBuilder(final String groupName, final int actionOrder) { final GroupActionBuilder groupActionBuilder = new GroupActionBuilder(); groupActionBuilder.setGroup(groupName); @@ -414,7 +442,7 @@ public class GroupConvertorTest { } /** - * 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() { @@ -423,12 +451,14 @@ public class GroupConvertorTest { final AddGroupInputBuilder addGroupBuilder = new AddGroupInputBuilder(); - addGroupBuilder.setGroupId(new GroupId(10L)); + addGroupBuilder.setGroupId(new GroupId(Uint32.TEN)); addGroupBuilder.setGroupType(GroupTypes.GroupAll); - final List bucketList = new ArrayList(); - final List actionsList = new ArrayList(); - final List actionsList1 = new ArrayList(); + final List bucketList = new ArrayList<>(); + final List + actionsList = new ArrayList<>(); + final List + actionsList1 = new ArrayList<>(); // Action1 actionsList.add(assembleActionBuilder("005", actionOrder++).build()); @@ -439,7 +469,7 @@ public class GroupConvertorTest { final BucketBuilder bucketB = new BucketBuilder(); - bucketB.setAction(actionsList); + bucketB.setAction(actionsList).withKey(new BucketKey(new BucketId(Uint32.ZERO))); final Bucket bucket = bucketB.build(); bucketList.add(bucket); // List of bucket @@ -451,7 +481,7 @@ public class GroupConvertorTest { // Action2: actionsList1.add(assembleSetMplsTtlActionBuilder(actionOrder++).build()); - bucketB1.setAction(actionsList); + bucketB1.setAction(actionsList).withKey(new BucketKey(new BucketId(Uint32.ONE))); final Bucket bucket1 = bucketB1.build(); // second bucket @@ -462,35 +492,46 @@ public class GroupConvertorTest { addGroupBuilder.setBuckets(buckets); - final GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(addGroupBuilder.build(), (short) 0X4, BigInteger.valueOf(1)); + VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4); + data.setDatapathId(Uint64.ONE); - Assert.assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand()); - Assert.assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType()); + final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data); - Assert.assertEquals(10L, outAddGroupInput.getGroupId().getValue().longValue()); + assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand()); + assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType()); - final List outActionList = outAddGroupInput.getBucketsList().get(0).getAction(); - for (int outItem = 0; outItem < outActionList.size(); outItem++) { - final Action action = outActionList - .get(outItem); - if (action.getActionChoice() instanceof GroupActionCase) { - Assert.assertEquals((Long) 5L, ((GroupActionCase) action.getActionChoice()).getGroupAction().getGroupId()); + assertEquals(10L, outAddGroupInput.getGroupId().getValue().longValue()); - } - - } + final List 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(Uint32.valueOf(5)).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(Uint32.valueOf(6)).build()).build()).build()), outActionList); final List outActionList1 = outAddGroupInput.getBucketsList().get(1).getAction(); - for (int outItem = 0; outItem < outActionList1.size(); outItem++) { - final Action action = outActionList1 - .get(outItem); - if (action.getActionChoice() instanceof GroupActionCase) { - - Assert.assertEquals((Long) 6L, ((GroupActionCase) action.getActionChoice()).getGroupAction().getGroupId()); - - } - - } + 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(Uint32.valueOf(5)).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(Uint32.valueOf(6)).build()).build()).build()), outActionList1); + } + private GroupModInputBuilder convert(final Group group, final VersionDatapathIdConvertorData data) { + final Optional outAddGroupInputOptional = convertorManager.convert(group, data); + assertTrue("Group convertor not found", outAddGroupInputOptional.isPresent()); + return outAddGroupInputOptional.get(); } }