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%2FMeterConvertorTest.java;h=f35904150be9abe85f98332e7ac3291aa250cf59;hb=05f8db12159673d0e0a95642fe86e62c14b7dc7b;hp=d0c6db1e9ea440fae1018553919d4a932c1a9ed1;hpb=4af303e8e542ecc69515f981eaca73ee742924a3;p=openflowplugin.git diff --git a/openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/MeterConvertorTest.java b/openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/MeterConvertorTest.java index d0c6db1e9e..f35904150b 100644 --- a/openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/MeterConvertorTest.java +++ b/openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/MeterConvertorTest.java @@ -1,11 +1,9 @@ -/** +/* * 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; @@ -15,10 +13,14 @@ import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.List; - +import java.util.Optional; +import org.junit.Before; import org.junit.Test; +import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionConvertorData; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeterInputBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.BandId; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.Meter; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterBandType; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterFlags; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.band.type.band.type.Drop; @@ -31,8 +33,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.MeterBandHeadersBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.meter.band.headers.MeterBandHeader; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.meter.band.headers.MeterBandHeaderBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.meter.band.headers.MeterBandHeaderKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.meter.band.headers.meter.band.header.MeterBandTypesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterIdMeterBand; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.ExperimenterIdMeterBand; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterModCommand; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MeterModInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.MeterBand; @@ -40,71 +43,82 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandDscpRemarkCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandExperimenterCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.mod.Bands; +import org.opendaylight.yangtools.yang.common.Uint32; +import org.opendaylight.yangtools.yang.common.Uint8; public class MeterConvertorTest { + private ConvertorManager convertorManager; - + @Before + public void setUp() { + convertorManager = ConvertorManagerFactory.createDefaultManager(); + } @Test public void testMeterModCommandConvertorwithAllParameters() { + final Uint32 burstSize = Uint32.valueOf(10L); + final Uint32 dropRate = Uint32.valueOf(20L); - long BURST_SIZE = 10L; - long DROP_RATE = 20L; // / DROP Band - MeterBandHeaderBuilder meterBandHeaderBuilder = new MeterBandHeaderBuilder(); MeterBandTypesBuilder meterBandTypesB = new MeterBandTypesBuilder(); MeterBandType bandFlag = new MeterBandType(true, false, false); meterBandTypesB.setFlags(bandFlag);// _ofpmbtDrop DropBuilder drop = new DropBuilder(); - drop.setDropBurstSize(BURST_SIZE); - drop.setDropRate(DROP_RATE); + drop.setDropBurstSize(burstSize); + drop.setDropRate(dropRate); Drop drp = drop.build(); + MeterBandHeaderBuilder meterBandHeaderBuilder = new MeterBandHeaderBuilder(); meterBandHeaderBuilder.setBandType(drp); meterBandHeaderBuilder.setMeterBandTypes(meterBandTypesB.build()); + meterBandHeaderBuilder.withKey(new MeterBandHeaderKey(new BandId(Uint32.ZERO))); - MeterBandHeader meterBH = meterBandHeaderBuilder.build(); + final MeterBandHeader meterBH = meterBandHeaderBuilder.build(); // DSCP Mark - long DSCP_REMARK_BURST_SIZE = 11L; - long DSCP_REMARK_RATE = 21L; - short DSCP_PERC_LEVEL = 1; + final Uint32 dscpRemarkBurstSize = Uint32.valueOf(11L); + final Uint32 dscpRemarkRate = Uint32.valueOf(21L); + final Uint8 dscpPercLevel = Uint8.valueOf(1); - MeterBandHeaderBuilder meterBandHeaderBuilder1 = new MeterBandHeaderBuilder(); MeterBandTypesBuilder meterBandTypesB1 = new MeterBandTypesBuilder(); MeterBandType bandFlag1 = new MeterBandType(false, true, false); meterBandTypesB1.setFlags(bandFlag1); DscpRemarkBuilder dscp = new DscpRemarkBuilder(); - dscp.setDscpRemarkBurstSize(DSCP_REMARK_BURST_SIZE); - dscp.setDscpRemarkRate(DSCP_REMARK_RATE); - dscp.setPrecLevel(DSCP_PERC_LEVEL); + dscp.setDscpRemarkBurstSize(dscpRemarkBurstSize); + dscp.setDscpRemarkRate(dscpRemarkRate); + dscp.setPrecLevel(dscpPercLevel); DscpRemark dscpRemark = dscp.build(); + + MeterBandHeaderBuilder meterBandHeaderBuilder1 = new MeterBandHeaderBuilder(); meterBandHeaderBuilder1.setBandType(dscpRemark); meterBandHeaderBuilder1.setMeterBandTypes(meterBandTypesB1.build()); + meterBandHeaderBuilder1.withKey(new MeterBandHeaderKey(new BandId(Uint32.ONE))); - MeterBandHeader meterBH1 = meterBandHeaderBuilder1.build(); + final MeterBandHeader meterBH1 = meterBandHeaderBuilder1.build(); // Experimental - long EXP_BURST_SIZE = 12L; - long EXP_RATE = 22L; - long EXP_EXPERIMENTER = 23L; + final Uint32 expBurstSize = Uint32.valueOf(12L); + final Uint32 expRate = Uint32.valueOf(22L); + final Uint32 expExperimenter = Uint32.valueOf(23L); - MeterBandHeaderBuilder meterBandHeaderBuilder2 = new MeterBandHeaderBuilder(); MeterBandTypesBuilder meterBandTypesB2 = new MeterBandTypesBuilder(); MeterBandType bandFlag2 = new MeterBandType(false, false, true); meterBandTypesB2.setFlags(bandFlag2); ExperimenterBuilder exp = new ExperimenterBuilder(); - exp.setExperimenterBurstSize(EXP_BURST_SIZE); - exp.setExperimenterRate(EXP_RATE); - exp.setExperimenter(EXP_EXPERIMENTER); + exp.setExperimenterBurstSize(expBurstSize); + exp.setExperimenterRate(expRate); + exp.setExperimenter(expExperimenter); Experimenter experimenter = exp.build(); + + MeterBandHeaderBuilder meterBandHeaderBuilder2 = new MeterBandHeaderBuilder(); meterBandHeaderBuilder2.setBandType(experimenter); meterBandHeaderBuilder2.setMeterBandTypes(meterBandTypesB2.build()); + meterBandHeaderBuilder.withKey(new MeterBandHeaderKey(new BandId(Uint32.TWO))); MeterBandHeader meterBH2 = meterBandHeaderBuilder2.build(); - List meterBandList = new ArrayList(); + List meterBandList = new ArrayList<>(); meterBandList.add(0, meterBH); meterBandList.add(1, meterBH1); meterBandList.add(2, meterBH2); @@ -118,9 +132,6 @@ public class MeterConvertorTest { AddMeterInputBuilder addMeterFromSAL = new AddMeterInputBuilder(); addMeterFromSAL.setMeterBandHeaders(meterBandHeaders); // MeterBands - // added to the - // meter command. - Long temp = 10L; // NodeKey key = new NodeKey(new NodeId("24")); // InstanceIdentifier path = @@ -133,111 +144,117 @@ public class MeterConvertorTest { addMeterFromSAL.setFlags(flagV); AddMeterInput meterInputCommand = addMeterFromSAL.build(); - MeterModInputBuilder outMeterModInput = MeterConvertor.toMeterModInput(meterInputCommand, (short) 0X4); + MeterModInputBuilder outMeterModInput = convert(meterInputCommand, new VersionConvertorData((short) 0X4)); assertEquals(MeterModCommand.OFPMCADD, outMeterModInput.getCommand()); assertTrue(outMeterModInput.getFlags().isOFPMFBURST()); - assertEquals(temp, outMeterModInput.getMeterId().getValue()); + assertEquals(Uint32.valueOf(10L), outMeterModInput.getMeterId().getValue()); // BandInformation starts here: List bands = outMeterModInput.getBands(); for (Bands currentBand : bands) { MeterBand meterBand = currentBand.getMeterBand(); if (meterBand instanceof MeterBandDropCase) { - - assertEquals( - org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterBandType.OFPMBTDROP, - ((MeterBandDropCase) meterBand).getMeterBandDrop().getType()); - assertEquals(BURST_SIZE, (long) ((MeterBandDropCase) meterBand).getMeterBandDrop().getBurstSize()); - assertEquals(DROP_RATE, (long) ((MeterBandDropCase) meterBand).getMeterBandDrop().getRate()); + assertEquals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731 + .MeterBandType.OFPMBTDROP, ((MeterBandDropCase) meterBand).getMeterBandDrop().getType()); + assertEquals(burstSize, ((MeterBandDropCase) meterBand).getMeterBandDrop().getBurstSize()); + assertEquals(dropRate, ((MeterBandDropCase) meterBand).getMeterBandDrop().getRate()); } if (meterBand instanceof MeterBandDscpRemarkCase) { - assertEquals( - org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterBandType.OFPMBTDSCPREMARK, - ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getType()); - assertEquals(DSCP_REMARK_BURST_SIZE, (long) ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getBurstSize()); - assertEquals(DSCP_REMARK_RATE, (long) ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getRate()); - assertEquals(DSCP_PERC_LEVEL, (short) ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getPrecLevel()); + assertEquals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731 + .MeterBandType.OFPMBTDSCPREMARK, + ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getType()); + assertEquals(dscpRemarkBurstSize, + ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getBurstSize()); + assertEquals(dscpRemarkRate, + ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getRate()); + assertEquals(dscpPercLevel, + ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getPrecLevel()); } if (meterBand instanceof MeterBandExperimenterCase) { - assertEquals( - org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterBandType.OFPMBTEXPERIMENTER, - ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getType()); - assertEquals(EXP_BURST_SIZE, (long) ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getBurstSize()); - assertEquals(EXP_RATE, (long) ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getRate()); + assertEquals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731 + .MeterBandType.OFPMBTEXPERIMENTER, + ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getType()); + assertEquals(expBurstSize, + ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getBurstSize()); + assertEquals(expRate, + ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getRate()); ExperimenterIdMeterBand expBand = ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter() - .getAugmentation(ExperimenterIdMeterBand.class); - assertEquals(EXP_EXPERIMENTER, (long) expBand.getExperimenter().getValue()); - + .augmentation(ExperimenterIdMeterBand.class); + assertEquals(expExperimenter, expBand.getExperimenter().getValue()); } - } - } + @Test public void testMeterModCommandConvertorwithNoFlags() { - - long BURST_SIZE = 10L; - long DROP_RATE = 20L; + long burstSize = 10L; + long dropRate = 20L; // / DROP Band - MeterBandHeaderBuilder meterBandHeaderBuilder = new MeterBandHeaderBuilder(); MeterBandTypesBuilder meterBandTypesB = new MeterBandTypesBuilder(); MeterBandType bandFlag = new MeterBandType(true, false, false); meterBandTypesB.setFlags(bandFlag);// _ofpmbtDrop DropBuilder drop = new DropBuilder(); - drop.setDropBurstSize(BURST_SIZE); - drop.setDropRate(DROP_RATE); + drop.setDropBurstSize(burstSize); + drop.setDropRate(dropRate); Drop drp = drop.build(); + + MeterBandHeaderBuilder meterBandHeaderBuilder = new MeterBandHeaderBuilder(); meterBandHeaderBuilder.setBandType(drp); meterBandHeaderBuilder.setMeterBandTypes(meterBandTypesB.build()); + meterBandHeaderBuilder.withKey(new MeterBandHeaderKey(new BandId(Uint32.ZERO))); - MeterBandHeader meterBH = meterBandHeaderBuilder.build(); + final MeterBandHeader meterBH = meterBandHeaderBuilder.build(); // DSCP Mark - long DSCP_REMARK_BURST_SIZE = 11L; - long DSCP_REMARK_RATE = 21L; - short DSCP_PERC_LEVEL = 1; + final long dscpRemarkBurstSize = 11L; + final long dscpRemarkRate = 21L; + final short dscpPercLevel = 1; - MeterBandHeaderBuilder meterBandHeaderBuilder1 = new MeterBandHeaderBuilder(); MeterBandTypesBuilder meterBandTypesB1 = new MeterBandTypesBuilder(); MeterBandType bandFlag1 = new MeterBandType(false, true, false); meterBandTypesB1.setFlags(bandFlag1); DscpRemarkBuilder dscp = new DscpRemarkBuilder(); - dscp.setDscpRemarkBurstSize(DSCP_REMARK_BURST_SIZE); - dscp.setDscpRemarkRate(DSCP_REMARK_RATE); - dscp.setPrecLevel(DSCP_PERC_LEVEL); + dscp.setDscpRemarkBurstSize(dscpRemarkBurstSize); + dscp.setDscpRemarkRate(dscpRemarkRate); + dscp.setPrecLevel(dscpPercLevel); DscpRemark dscpRemark = dscp.build(); + + MeterBandHeaderBuilder meterBandHeaderBuilder1 = new MeterBandHeaderBuilder(); meterBandHeaderBuilder1.setBandType(dscpRemark); meterBandHeaderBuilder1.setMeterBandTypes(meterBandTypesB1.build()); + meterBandHeaderBuilder1.withKey(new MeterBandHeaderKey(new BandId(Uint32.ONE))); - MeterBandHeader meterBH1 = meterBandHeaderBuilder1.build(); + final MeterBandHeader meterBH1 = meterBandHeaderBuilder1.build(); // Experimental - long EXP_BURST_SIZE = 12L; - long EXP_RATE = 22L; - long EXP_EXPERIMENTER = 23L; + final long expBurstSize = 12L; + final long expRate = 22L; + final long expExperimenter = 23L; - MeterBandHeaderBuilder meterBandHeaderBuilder2 = new MeterBandHeaderBuilder(); MeterBandTypesBuilder meterBandTypesB2 = new MeterBandTypesBuilder(); MeterBandType bandFlag2 = new MeterBandType(false, false, true); meterBandTypesB2.setFlags(bandFlag2); ExperimenterBuilder exp = new ExperimenterBuilder(); - exp.setExperimenterBurstSize(EXP_BURST_SIZE); - exp.setExperimenterRate(EXP_RATE); - exp.setExperimenter(EXP_EXPERIMENTER); + exp.setExperimenterBurstSize(expBurstSize); + exp.setExperimenterRate(expRate); + exp.setExperimenter(expExperimenter); Experimenter experimenter = exp.build(); + + MeterBandHeaderBuilder meterBandHeaderBuilder2 = new MeterBandHeaderBuilder(); meterBandHeaderBuilder2.setBandType(experimenter); meterBandHeaderBuilder2.setMeterBandTypes(meterBandTypesB2.build()); + meterBandHeaderBuilder2.withKey(new MeterBandHeaderKey(new BandId(Uint32.TWO))); MeterBandHeader meterBH2 = meterBandHeaderBuilder2.build(); - List meterBandList = new ArrayList(); + List meterBandList = new ArrayList<>(); meterBandList.add(0, meterBH); meterBandList.add(1, meterBH1); meterBandList.add(2, meterBH2); @@ -251,9 +268,6 @@ public class MeterConvertorTest { AddMeterInputBuilder addMeterFromSAL = new AddMeterInputBuilder(); addMeterFromSAL.setMeterBandHeaders(meterBandHeaders); // MeterBands - // added to the - // meter command. - Long temp = 10L; // NodeKey key = new NodeKey(new NodeId("24")); // InstanceIdentifier path = @@ -265,58 +279,55 @@ public class MeterConvertorTest { AddMeterInput meterInputCommand = addMeterFromSAL.build(); - MeterModInputBuilder outMeterModInput = MeterConvertor.toMeterModInput(meterInputCommand, (short) 0X4); + MeterModInputBuilder outMeterModInput = convert(meterInputCommand, new VersionConvertorData((short) 0X4)); assertEquals(MeterModCommand.OFPMCADD, outMeterModInput.getCommand()); assertFalse(outMeterModInput.getFlags().isOFPMFBURST()); assertTrue(outMeterModInput.getFlags().isOFPMFPKTPS()); - assertEquals(temp, outMeterModInput.getMeterId().getValue()); + assertEquals(Uint32.valueOf(10L), outMeterModInput.getMeterId().getValue()); // BandInformation starts here: List bands = outMeterModInput.getBands(); for (Bands currentBand : bands) { MeterBand meterBand = currentBand.getMeterBand(); if (meterBand instanceof MeterBandDropCase) { - - assertEquals( - org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterBandType.OFPMBTDROP, - ((MeterBandDropCase) meterBand).getMeterBandDrop().getType()); - assertEquals(BURST_SIZE, (long) ((MeterBandDropCase) meterBand).getMeterBandDrop().getBurstSize()); - assertEquals(DROP_RATE, (long) ((MeterBandDropCase) meterBand).getMeterBandDrop().getRate()); + assertEquals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731 + .MeterBandType.OFPMBTDROP, ((MeterBandDropCase) meterBand).getMeterBandDrop().getType()); + assertEquals(burstSize, ((MeterBandDropCase) meterBand).getMeterBandDrop().getBurstSize().toJava()); + assertEquals(dropRate, ((MeterBandDropCase) meterBand).getMeterBandDrop().getRate().toJava()); } if (meterBand instanceof MeterBandDscpRemarkCase) { - assertEquals( - org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterBandType.OFPMBTDSCPREMARK, - ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getType()); - assertEquals(DSCP_REMARK_BURST_SIZE, (long) ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getBurstSize()); - assertEquals(DSCP_REMARK_RATE, (long) ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getRate()); - assertEquals(DSCP_PERC_LEVEL, (short) ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getPrecLevel()); + assertEquals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731 + .MeterBandType.OFPMBTDSCPREMARK, + ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getType()); + assertEquals(dscpRemarkBurstSize, + ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getBurstSize().toJava()); + assertEquals(dscpRemarkRate, + ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getRate().toJava()); + assertEquals(dscpPercLevel, + ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getPrecLevel().toJava()); } if (meterBand instanceof MeterBandExperimenterCase) { - assertEquals( - org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterBandType.OFPMBTEXPERIMENTER, - ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getType()); - assertEquals(EXP_BURST_SIZE, (long) ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getBurstSize()); - assertEquals(EXP_RATE, (long) ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getRate()); + assertEquals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731 + .MeterBandType.OFPMBTEXPERIMENTER, + ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getType()); + assertEquals(expBurstSize, + ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getBurstSize().toJava()); + assertEquals(expRate, + ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getRate().toJava()); ExperimenterIdMeterBand expBand = ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter() - .getAugmentation(ExperimenterIdMeterBand.class); - assertEquals(EXP_EXPERIMENTER, (long) expBand.getExperimenter().getValue()); - + .augmentation(ExperimenterIdMeterBand.class); + assertEquals(expExperimenter, expBand.getExperimenter().getValue().toJava()); } - } - } + @Test public void testMeterModCommandConvertorBandDataisNULL() { - - AddMeterInputBuilder addMeterFromSAL = new AddMeterInputBuilder(); - Long temp = 10L; - // NodeKey key = new NodeKey(new NodeId("24")); // InstanceIdentifier path = // InstanceIdentifier.builder().node(Nodes.class).node(Node.class, @@ -328,12 +339,12 @@ public class MeterConvertorTest { addMeterFromSAL.setFlags(flagV); AddMeterInput meterInputCommand = addMeterFromSAL.build(); - MeterModInputBuilder outMeterModInput = MeterConvertor.toMeterModInput(meterInputCommand, (short) 0X4); + MeterModInputBuilder outMeterModInput = convert(meterInputCommand, new VersionConvertorData((short) 0X4)); assertEquals(MeterModCommand.OFPMCADD, outMeterModInput.getCommand()); assertTrue(outMeterModInput.getFlags().isOFPMFBURST()); - assertEquals(temp, outMeterModInput.getMeterId().getValue()); - } + assertEquals(Uint32.valueOf(10L), outMeterModInput.getMeterId().getValue()); + } @Test public void testMeterModCommandConvertorNoValidBandData() { @@ -346,11 +357,11 @@ public class MeterConvertorTest { meterBandTypesB.setFlags(bandFlag);// _ofpmbtDrop meterBandHeaderBuilder.setMeterBandTypes(meterBandTypesB.build()); + meterBandHeaderBuilder.withKey(new MeterBandHeaderKey(new BandId(Uint32.ZERO))); - MeterBandHeader meterBH = meterBandHeaderBuilder.build(); + final MeterBandHeader meterBH = meterBandHeaderBuilder.build(); // DSCP Mark - MeterBandHeaderBuilder meterBandHeaderBuilder1 = new MeterBandHeaderBuilder(); MeterBandTypesBuilder meterBandTypesB1 = new MeterBandTypesBuilder(); MeterBandType bandFlag1 = new MeterBandType(false, true, false); @@ -360,27 +371,31 @@ public class MeterConvertorTest { dscp.setDscpRemarkRate(21L); dscp.setPrecLevel((short) 1); DscpRemark dscpRemark = dscp.build(); + + MeterBandHeaderBuilder meterBandHeaderBuilder1 = new MeterBandHeaderBuilder(); meterBandHeaderBuilder1.setBandType(dscpRemark); meterBandHeaderBuilder1.setMeterBandTypes(meterBandTypesB1.build()); + meterBandHeaderBuilder1.withKey(new MeterBandHeaderKey(new BandId(Uint32.ONE))); - MeterBandHeader meterBH1 = meterBandHeaderBuilder1.build(); + final MeterBandHeader meterBH1 = meterBandHeaderBuilder1.build(); // Experimental - MeterBandHeaderBuilder meterBandHeaderBuilder2 = new MeterBandHeaderBuilder(); - MeterBandTypesBuilder meterBandTypesB2 = new MeterBandTypesBuilder(); - - ExperimenterBuilder exp = new ExperimenterBuilder(); exp.setExperimenterBurstSize(12L); exp.setExperimenterRate(22L); exp.setExperimenter(23L); Experimenter experimenter = exp.build(); + + MeterBandHeaderBuilder meterBandHeaderBuilder2 = new MeterBandHeaderBuilder(); meterBandHeaderBuilder2.setBandType(experimenter); + + MeterBandTypesBuilder meterBandTypesB2 = new MeterBandTypesBuilder(); meterBandHeaderBuilder2.setMeterBandTypes(meterBandTypesB2.build()); + meterBandHeaderBuilder2.withKey(new MeterBandHeaderKey(new BandId(Uint32.TWO))); MeterBandHeader meterBH2 = meterBandHeaderBuilder2.build(); - List meterBandList = new ArrayList(); + List meterBandList = new ArrayList<>(); meterBandList.add(0, meterBH); meterBandList.add(1, meterBH1); meterBandList.add(2, meterBH2); @@ -394,9 +409,6 @@ public class MeterConvertorTest { AddMeterInputBuilder addMeterFromSAL = new AddMeterInputBuilder(); addMeterFromSAL.setMeterBandHeaders(meterBandHeaders); // MeterBands - // added to the - // meter command. - Long temp = 10L; // NodeKey key = new NodeKey(new NodeId("24")); // InstanceIdentifier path = @@ -409,11 +421,11 @@ public class MeterConvertorTest { addMeterFromSAL.setFlags(flagV); AddMeterInput meterInputCommand = addMeterFromSAL.build(); - MeterModInputBuilder outMeterModInput = MeterConvertor.toMeterModInput(meterInputCommand, (short) 0X4); + MeterModInputBuilder outMeterModInput = convert(meterInputCommand, new VersionConvertorData((short) 0X4)); assertEquals(MeterModCommand.OFPMCADD, outMeterModInput.getCommand()); assertTrue(outMeterModInput.getFlags().isOFPMFBURST()); - assertEquals(temp, outMeterModInput.getMeterId().getValue()); + assertEquals(Uint32.valueOf(10L), outMeterModInput.getMeterId().getValue()); // BandInformation starts here: List bands = outMeterModInput.getBands(); @@ -421,36 +433,41 @@ public class MeterConvertorTest { MeterBand meterBand = currentBand.getMeterBand(); if (meterBand instanceof MeterBandDropCase) { - assertEquals( - org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterBandType.OFPMBTDROP, - ((MeterBandDropCase) meterBand).getMeterBandDrop().getType()); - assertEquals((long) 20, (long) ((MeterBandDropCase) meterBand).getMeterBandDrop().getBurstSize()); - assertEquals((long) 10, (long) ((MeterBandDropCase) meterBand).getMeterBandDrop().getRate()); + assertEquals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731 + .MeterBandType.OFPMBTDROP, ((MeterBandDropCase) meterBand).getMeterBandDrop().getType()); + assertEquals(20, ((MeterBandDropCase) meterBand).getMeterBandDrop().getBurstSize()); + assertEquals(10, ((MeterBandDropCase) meterBand).getMeterBandDrop().getRate()); } if (meterBand instanceof MeterBandDscpRemarkCase) { - assertEquals( - org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterBandType.OFPMBTDSCPREMARK, + assertEquals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731 + .MeterBandType.OFPMBTDSCPREMARK, ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getType()); - assertEquals((long) 11, (long) ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getBurstSize()); - assertEquals((long) 21, (long) ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getRate()); - assertEquals((short) 1, (short) ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getPrecLevel()); + assertEquals(11, + ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getBurstSize().toJava()); + assertEquals(21, + ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getRate().toJava()); + assertEquals((short) 1, + ((MeterBandDscpRemarkCase) meterBand).getMeterBandDscpRemark().getPrecLevel().toJava()); } if (meterBand instanceof MeterBandExperimenterCase) { - assertEquals( - org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterBandType.OFPMBTEXPERIMENTER, + assertEquals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731 + .MeterBandType.OFPMBTEXPERIMENTER, ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getType()); - assertEquals((long) 12, (long) ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getBurstSize()); - assertEquals((long) 22, (long) ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getRate()); + assertEquals(12, + ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getBurstSize()); + assertEquals(22, + ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter().getRate()); ExperimenterIdMeterBand expBand = ((MeterBandExperimenterCase) meterBand).getMeterBandExperimenter() - .getAugmentation(ExperimenterIdMeterBand.class); - assertEquals((long) 23, (long) expBand.getExperimenter().getValue()); - + .augmentation(ExperimenterIdMeterBand.class); + assertEquals(23, expBand.getExperimenter().getValue()); } - } - } + private MeterModInputBuilder convert(final Meter source, final VersionConvertorData data) { + Optional outMeterModInputOptional = convertorManager.convert(source, data); + return outMeterModInputOptional.orElse(MeterConvertor.defaultResult(data.getVersion())); + } }