*/
package org.opendaylight.transportpce.renderer;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
-import org.opendaylight.controller.md.sal.binding.api.MountPointService;
import org.opendaylight.transportpce.common.StringConstants;
import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
import org.opendaylight.transportpce.common.device.DeviceTransactionManagerImpl;
-import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl;
+import org.opendaylight.transportpce.common.fixedflex.FixedFlexImpl;
import org.opendaylight.transportpce.renderer.stub.MountPointServiceStub;
import org.opendaylight.transportpce.renderer.stub.MountPointStub;
import org.opendaylight.transportpce.renderer.utils.ServiceDeleteDataUtils;
import org.opendaylight.transportpce.renderer.utils.WaveLengthServiceUtils;
import org.opendaylight.transportpce.test.AbstractTest;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev171215.degree.used.wavelengths.UsedWavelengthsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.Node1;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.Node1Builder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.TerminationPoint1;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.network.node.DegreeAttributes;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.TerminationPoint1Builder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.network.node.DegreeAttributesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.network.node.SrgAttributesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.network.node.termination.point.CpAttributesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.network.node.termination.point.CtpAttributesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.network.node.termination.point.PpAttributesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.network.node.termination.point.RxTtpAttributesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.network.node.termination.point.TxTtpAttributesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.network.node.termination.point.XpdrClientAttributesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.network.node.termination.point.XpdrNetworkAttributesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.network.node.termination.point.XpdrPortAttributesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.network.node.termination.point.pp.attributes.UsedWavelengthBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev171215.OpenroadmNodeType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev171215.OpenroadmTpType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev171215.xpdr.port.connection.attributes.WavelengthBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev181130.FrequencyGHz;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.optical.channel.types.rev181130.FrequencyTHz;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.used.wavelengths.UsedWavelengthsBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CpAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CtpAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.PpAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.RxTtpAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.TxTtpAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrClientAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrNetworkAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrPortAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.pp.attributes.UsedWavelengthBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev181130.xpdr.port.connection.attributes.WavelengthBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.PathDescription;
+
@RunWith(Parameterized.class)
public class NetworkModelWaveLengthServiceFreeTest extends AbstractTest {
-
private static final Long WAVE_LENGTH = 20L;
private NetworkModelWavelengthService networkModelWavelengthService;
private DeviceTransactionManager deviceTransactionManager;
private TerminationPoint1 terminationPoint1;
+ private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130
+ .TerminationPoint1 terminationPoint2;
private PathDescription pathDescription;
private Node1 node1;
+ private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 node2;
public NetworkModelWaveLengthServiceFreeTest(PathDescription pathDescription, TerminationPoint1 terminationPoint1,
- Node1 node1) {
+ Node1 node1,
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1 terminationPoint2,
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 node2) {
+
this.pathDescription = pathDescription;
this.terminationPoint1 = terminationPoint1;
+ this.terminationPoint2 = terminationPoint2;
this.node1 = node1;
+ this.node2 = node2;
+
}
@Parameterized.Parameters
PathDescription pathDescription =
ServiceDeleteDataUtils.createTransactionPathDescription(StringConstants.TTP_TOKEN);
- TerminationPoint1Builder terminationPoint1Builder = new TerminationPoint1Builder();
- terminationPoint1Builder.setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(Collections
- .singletonList((new UsedWavelengthsBuilder()).setIndex(WAVE_LENGTH).build())).build());
- terminationPoint1Builder.setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(Collections
- .singletonList((new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev171215.network
- .node.termination.point.cp.attributes.UsedWavelengthsBuilder())
- .setIndex(WAVE_LENGTH).build())).build());
- terminationPoint1Builder.setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(Collections
- .singletonList((new UsedWavelengthsBuilder()).setIndex(WAVE_LENGTH).build())).build());
- terminationPoint1Builder.setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(Collections
- .singletonList((new UsedWavelengthsBuilder()).setIndex(WAVE_LENGTH).build())).build());
- terminationPoint1Builder.setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(Collections
- .singletonList((new UsedWavelengthBuilder()).setIndex(WAVE_LENGTH).build())).build());
- terminationPoint1Builder.setXpdrClientAttributes((new XpdrClientAttributesBuilder())
- .setWavelength((new WavelengthBuilder()).setIndex(WAVE_LENGTH).build()).build());
- terminationPoint1Builder.setXpdrNetworkAttributes((new XpdrNetworkAttributesBuilder())
- .setWavelength((new WavelengthBuilder()).setIndex(WAVE_LENGTH).build()).build());
- terminationPoint1Builder.setXpdrPortAttributes((new XpdrPortAttributesBuilder())
- .setWavelength((new WavelengthBuilder()).setIndex(WAVE_LENGTH).build()).build());
+ FixedFlexImpl fixedFlex = new FixedFlexImpl();
+ fixedFlex = fixedFlex.getFixedFlexWaveMapping(WAVE_LENGTH);
+ FrequencyGHz frequencyGHz = new FrequencyGHz(new BigDecimal(fixedFlex.getWavelength()));
+ FrequencyTHz frequencyTHz = new FrequencyTHz(new BigDecimal(fixedFlex.getCenterFrequency()));
+
+ TerminationPoint1Builder terminationPoint1Builder = new TerminationPoint1Builder()
+ .setCtpAttributes((new CtpAttributesBuilder())
+ .setUsedWavelengths(
+ Collections.singletonList((new UsedWavelengthsBuilder()).setIndex(WAVE_LENGTH).build()))
+ .build())
+ .setCpAttributes((new CpAttributesBuilder())
+ .setUsedWavelengths(
+ Collections.singletonList(
+ (new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks
+ .network.node.termination.point.cp.attributes.UsedWavelengthsBuilder())
+ .setIndex(WAVE_LENGTH)
+ .build()))
+ .build())
+ .setTxTtpAttributes((new TxTtpAttributesBuilder())
+ .setUsedWavelengths(
+ Collections.singletonList((new UsedWavelengthsBuilder()).setIndex(WAVE_LENGTH).build()))
+ .build())
+ .setRxTtpAttributes((new RxTtpAttributesBuilder())
+ .setUsedWavelengths(
+ Collections.singletonList((new UsedWavelengthsBuilder()).setIndex(WAVE_LENGTH).build()))
+ .build())
+ .setPpAttributes((new PpAttributesBuilder())
+ .setUsedWavelength(
+ Collections.singletonList((new UsedWavelengthBuilder()).setIndex(WAVE_LENGTH).build()))
+ .build())
+ .setXpdrClientAttributes((new XpdrClientAttributesBuilder())
+ .setWavelength((new WavelengthBuilder())
+ .setFrequency(frequencyTHz)
+ .setWidth(frequencyGHz)
+ .build())
+ .build())
+ .setXpdrNetworkAttributes((new XpdrNetworkAttributesBuilder())
+ .setWavelength((new WavelengthBuilder())
+ .setFrequency(frequencyTHz)
+ .setWidth(frequencyGHz)
+ .build())
+ .build())
+ .setXpdrPortAttributes((new XpdrPortAttributesBuilder())
+ .setWavelength((new WavelengthBuilder())
+ .setFrequency(frequencyTHz)
+ .setWidth(frequencyGHz)
+ .build())
+ .build());
+
+ Node1Builder node1Builder = new Node1Builder()
+ .setDegreeAttributes((new DegreeAttributesBuilder()).setAvailableWavelengths(new ArrayList<>()).build())
+ .setSrgAttributes((new SrgAttributesBuilder()).setAvailableWavelengths(new ArrayList<>()).build());
- Node1Builder node1Builder = new Node1Builder();
- node1Builder.setDegreeAttributes((new DegreeAttributesBuilder()).setAvailableWavelengths(new ArrayList<>())
- .build());
- node1Builder.setSrgAttributes((new SrgAttributesBuilder()).setAvailableWavelengths(new ArrayList<>()).build());
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder
+ terminationPoint2Builder =
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder();
+
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder node2Builder =
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1Builder();
for (OpenroadmNodeType nodeType : Arrays.asList(OpenroadmNodeType.XPONDER, OpenroadmNodeType.DEGREE,
OpenroadmNodeType.SRG)) {
- node1Builder.setNodeType(nodeType);
- terminationPoint1Builder.setTpType(OpenroadmTpType.DEGREETXTTP);
- parameters.add(new Object[] { pathDescription, terminationPoint1Builder.build(), node1Builder.build() });
+ node2Builder.setNodeType(nodeType);
+ terminationPoint2Builder.setTpType(OpenroadmTpType.DEGREETXTTP);
+ parameters.add(new Object[] { pathDescription, terminationPoint1Builder.build(), node1Builder.build(),
+ terminationPoint2Builder.build(), node2Builder.build() });
}
for (OpenroadmTpType tpType : OpenroadmTpType.values()) {
- node1Builder.setNodeType(OpenroadmNodeType.DEGREE);
+ node2Builder.setNodeType(OpenroadmNodeType.DEGREE);
node1Builder.setDegreeAttributes(null);
- terminationPoint1Builder.setTpType(tpType);
- parameters.add(new Object[] { pathDescription, terminationPoint1Builder.build(), node1Builder.build() });
+ terminationPoint2Builder.setTpType(tpType);
+ parameters.add(new Object[] { pathDescription, terminationPoint1Builder.build(), node1Builder.build(),
+ terminationPoint2Builder.build(), node2Builder.build() });
}
- node1Builder.setNodeType(OpenroadmNodeType.SRG);
- node1Builder.setDegreeAttributes((new DegreeAttributesBuilder()).setAvailableWavelengths(new ArrayList<>())
- .build());
- node1Builder.setSrgAttributes(null);
- terminationPoint1Builder.setTpType(OpenroadmTpType.DEGREETXTTP);
- parameters.add(new Object[] { pathDescription, terminationPoint1Builder.build(), node1Builder.build() });
-
+ node2Builder.setNodeType(OpenroadmNodeType.SRG);
+ node1Builder
+ .setDegreeAttributes((new DegreeAttributesBuilder())
+ .setAvailableWavelengths(new ArrayList<>())
+ .build())
+ .setSrgAttributes(null);
+ terminationPoint2Builder.setTpType(OpenroadmTpType.DEGREETXTTP);
+ parameters.add(new Object[] { pathDescription, terminationPoint1Builder.build(), node1Builder.build(),
+ terminationPoint2Builder.build(), node2Builder.build() });
return parameters;
}
@Before
public void setMountPoint() {
- MountPointService mountPointService = new MountPointServiceStub(new MountPointStub(this.getDataBroker()));
+ MountPointServiceStub mountPointService = new MountPointServiceStub(new MountPointStub(this.getDataBroker()));
this.deviceTransactionManager = new DeviceTransactionManagerImpl(mountPointService, 3000);
networkModelWavelengthService = new NetworkModelWavelengthServiceImpl(this.getDataBroker());
}
@Test
public void freeWavelengthsTest() throws ExecutionException, InterruptedException {
WaveLengthServiceUtils.putTerminationPoint1ToDatastore("node1" + StringConstants.TTP_TOKEN,
- StringConstants.TTP_TOKEN,
- this.terminationPoint1, this.deviceTransactionManager);
+ StringConstants.TTP_TOKEN, this.terminationPoint1, this.deviceTransactionManager);
+ WaveLengthServiceUtils.putTerminationPoint2ToDatastore("node1" + StringConstants.TTP_TOKEN,
+ StringConstants.TTP_TOKEN, this.terminationPoint2, this.deviceTransactionManager);
WaveLengthServiceUtils.putNode1ToDatastore("node1" + StringConstants.TTP_TOKEN, this.node1,
this.deviceTransactionManager);
+ WaveLengthServiceUtils.putNode2ToDatastore("node1" + StringConstants.TTP_TOKEN, this.node2,
+ this.deviceTransactionManager);
this.networkModelWavelengthService.freeWavelengths(this.pathDescription);
Node1 updatedNode1 = WaveLengthServiceUtils.getNode1FromDatastore("node1" + StringConstants.TTP_TOKEN,
this.deviceTransactionManager);
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1 updatedNode2 =
+ WaveLengthServiceUtils.getNode2FromDatastore("node1" + StringConstants.TTP_TOKEN,
+ this.deviceTransactionManager);
TerminationPoint1 updatedTerminationPoint1 =
WaveLengthServiceUtils.getTerminationPoint1FromDatastore("node1" + StringConstants.TTP_TOKEN,
- StringConstants.TTP_TOKEN, this.deviceTransactionManager);
- switch (updatedTerminationPoint1.getTpType()) {
+ StringConstants.TTP_TOKEN, this.deviceTransactionManager);
+ org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130
+ .TerminationPoint1 updatedTerminationPoint2 = WaveLengthServiceUtils
+ .getTerminationPoint2FromDatastore("node1" + StringConstants.TTP_TOKEN, StringConstants.TTP_TOKEN,
+ this.deviceTransactionManager);
+ switch (updatedTerminationPoint2.getTpType()) {
+ //switch (((org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1)
+ // updatedTerminationPoint1).getTpType()) {
case DEGREETXRXCTP:
case DEGREETXCTP:
case DEGREERXCTP:
Assert.assertNotNull(updatedTerminationPoint1.getXpdrPortAttributes().getWavelength());
break;
}
- switch (updatedNode1.getNodeType()) {
+ switch (updatedNode2.getNodeType()) {
+ //switch (((org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Node1) updatedNode1)
+ // .getNodeType()) {
case DEGREE:
Assert.assertEquals(1, updatedNode1.getDegreeAttributes().getAvailableWavelengths().size());
Assert.assertEquals(WAVE_LENGTH,