import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import org.junit.Assert;
import org.junit.Test;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData;
import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
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.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;
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 org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.GroupConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)} }
*/
@Test
public void testGroupModConvertorwithallParameters() {
addGroupBuilder.setBuckets(buckets);
- final GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(addGroupBuilder.build(), (short) 0X4, BigInteger.valueOf(1));
+ VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
+ data.setDatapathId(BigInteger.valueOf(1));
+
+ final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data);
Assert.assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
Assert.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 org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.GroupConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)} }
*/
@Test
public void testGroupModConvertorNoBucket() {
addGroupBuilder.setGroupType(GroupTypes.GroupAll);
- final GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(addGroupBuilder.build(), (short) 0X4, BigInteger.valueOf(1));
+ VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
+ data.setDatapathId(BigInteger.valueOf(1));
+ final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data);
Assert.assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
Assert.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 org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.GroupConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)} }
*/
@Test
public void testGroupModConvertorBucketwithNOWieghtValuesForGroupTypeFastFailure() {
addGroupBuilder.setBuckets(buckets);
- final GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(addGroupBuilder.build(), (short) 0X4, BigInteger.valueOf(1));
+ VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
+ data.setDatapathId(BigInteger.valueOf(1));
+
+ final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data);
Assert.assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
Assert.assertEquals(GroupType.OFPGTFF, 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 org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.GroupConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)} }
*/
@Test
public void testGroupModConvertSortedBuckets() {
final ArrayList<Bucket> bucket = new ArrayList<Bucket>();
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());
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((long) 1))
+ .setGroupName("Foo")
+ .setGroupType(GroupTypes.GroupFf)
+ .setBuckets(new BucketsBuilder()
+ .setBucket(bucket)
+ .build())
+ .build();
OpenflowPortsUtil.init();
- final GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(input, (short) 0X4, BigInteger.valueOf(1));
+ VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
+ data.setDatapathId(BigInteger.valueOf(1));
+
+ final GroupModInputBuilder outAddGroupInput = convert(input, data);
final List<BucketsList> bucketList = outAddGroupInput.getBucketsList();
Assert.assertEquals( Long.valueOf(1), bucketList.get(0).getWatchGroup());
}
/**
- * test of {@link GroupConvertor#toGroupModInput(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group, short, java.math.BigInteger)} )}
+ * test of {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.GroupConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)} }
*/
@Test
public void testGroupModConvertorBucketwithNOWieghtValuesForGroupTypeAll() {
addGroupBuilder.setBuckets(buckets);
- final GroupModInputBuilder outAddGroupInput = GroupConvertor.toGroupModInput(addGroupBuilder.build(), (short) 0X4, BigInteger.valueOf(1));
+ VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
+ data.setDatapathId(BigInteger.valueOf(1));
+
+ final GroupModInputBuilder outAddGroupInput = convert(addGroupBuilder.build(), data);
Assert.assertEquals(GroupModCommand.OFPGCADD, outAddGroupInput.getCommand());
Assert.assertEquals(GroupType.OFPGTALL, outAddGroupInput.getType());
}
}
+
+ private GroupModInputBuilder convert(Group group, VersionDatapathIdConvertorData data) {
+ final Optional<GroupModInputBuilder> outAddGroupInputOptional = ConvertorManager.getInstance().convert(group, data);
+ Assert.assertTrue("Group convertor not found", outAddGroupInputOptional.isPresent());
+ return outAddGroupInputOptional.get();
+ }
}