*/
package org.opendaylight.transportpce.networkmodel.util;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.either;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.CoreMatchers.hasItems;
import static org.hamcrest.CoreMatchers.not;
import org.opendaylight.transportpce.networkmodel.dto.TopologyShard;
import org.opendaylight.transportpce.networkmodel.util.test.JsonUtil;
import org.opendaylight.transportpce.networkmodel.util.test.NetworkmodelTestUtil;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.Network;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.Nodes;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.NodesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.Mapping;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.MappingBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.MappingKey;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev201012.network.nodes.NodeInfoBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.Network;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.MappingBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.mapping.MappingKey;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.NodesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.network.nodes.NodeInfoBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1;
import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.types.rev200327.xpdr.odu.switching.pools.OduSwitchingPools;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmLinkType;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmNodeType;
import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.OpenroadmTpType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.xpdr.tp.supported.interfaces.SupportedInterfaceCapability;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU2;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU2e;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.common.types.rev200327.ODU4;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.Link1;
import org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529.networks.network.node.SwitchingPools;
import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If100GE;
import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If100GEODU4;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If10GE;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If10GEODU2;
import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.If10GEODU2e;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.IfOCH;
import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev200327.IfOCHOTU4ODU4;
import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.OtnLinkType;
import org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1;
try (Reader reader = new FileReader("src/test/resources/portMapping.json", StandardCharsets.UTF_8);
JsonReader portMappingReader = new JsonReader(reader)) {
Network portMapping = (Network) JsonUtil.getInstance().getDataObjectFromJson(portMappingReader,
- QName.create("http://org/opendaylight/transportpce/portmapping", "2020-10-12", "network"));
+ QName.create("http://org/opendaylight/transportpce/portmapping", "2021-03-15", "network"));
for (Nodes nodes : portMapping.nonnullNodes().values()) {
if (nodes.getNodeId().equals("XPDR-A1")) {
this.portMappingTpdr = nodes;
"XPDR1-CLIENT1",
tps.get(2).augmentation(TerminationPoint1.class).getAssociatedConnectionMapPort());
assertEquals(
- "only IfOCHOTU4ODU4 interface capabitily expected",
+ "only IfOCH interface capabitily expected",
1,
tps.get(2).augmentation(
org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529
.getSupportedInterfaceCapability()
.size());
assertEquals(
- IfOCHOTU4ODU4.class.getName(),
+ IfOCH.class.getName(),
tps.get(2).augmentation(
org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529
.TerminationPoint1.class)
.get()
.getIfCapType()
.getName());
- assertEquals(
- "the rate should be ODU4",
- ODU4.class.getName(),
+ assertNull(
+ "the rate should be null",
tps.get(2).augmentation(
org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529
.TerminationPoint1.class)
.getXpdrTpPortConnectionAttributes()
- .getRate()
- .getName());
+ .getRate());
assertEquals(
"third TP must be of type network",
OpenroadmTpType.XPONDERNETWORK,
assertThat(
nbl.getTpList(),
containsInAnyOrder(new TpId("XPDR1-NETWORK1"),
- new TpId("XPDR1-CLIENT" + nb)));
+ new TpId("XPDR1-CLIENT" + nb)));
}
} else if (xpdrNb.equals(Uint16.valueOf(2))) {
assertEquals(
}
private void checkSpdrTpList(Uint16 xpdrNb, List<TerminationPoint> tpList) {
+ LOG.info("tpList = {}", tpList);
assertEquals(
"only IfOCHOTU4ODU4 interface capabitily expected",
IfOCHOTU4ODU4.class,
assertEquals(
"XPDR" + xpdrNb + "-NETWORK1",
tpList.get(4).getSupportingTerminationPoint().values().stream().findFirst()
- .get().getTpRef());
+ .get().getTpRef().toString());
if (xpdrNb.equals(Uint16.valueOf(1))) {
assertEquals("should contain 5 TPs", 5, tpList.size());
assertEquals("XPDR1-CLIENT1", tpList.get(0).getTpId().getValue());
assertEquals("XPDR1-CLIENT2", tpList.get(1).getTpId().getValue());
assertEquals("XPDR1-NETWORK1", tpList.get(4).getTpId().getValue());
assertEquals(
- "only If10GEODU2e interface capabitily expected",
- If10GEODU2e.class,
- tpList.get(2)
+ "supported interface capability of tp-id XPDR1-CLIENT2 should contain 2 if-cap-type",
+ 2,
+ tpList.get(1)
.augmentation(
org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529
.TerminationPoint1.class)
.getTpSupportedInterfaces()
- .getSupportedInterfaceCapability().values().stream().findFirst()
- .get()
- .getIfCapType());
+ .getSupportedInterfaceCapability().values().size());
assertEquals(
- "the rate should be ODU2e",
- ODU2e.class,
+ "supported interface capability of tp-id XPDR1-CLIENT3 should contain 3 if-cap-type",
+ 3,
tpList.get(2)
+ .augmentation(
+ org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529
+ .TerminationPoint1.class)
+ .getTpSupportedInterfaces()
+ .getSupportedInterfaceCapability().values().size());
+ List<SupportedInterfaceCapability> sicListClient1 = tpList.get(0)
+ .augmentation(
+ org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529
+ .TerminationPoint1.class)
+ .getTpSupportedInterfaces()
+ .getSupportedInterfaceCapability().values().stream().collect(Collectors.toList());
+ for (SupportedInterfaceCapability supportedInterfaceCapability : sicListClient1) {
+ assertThat("tp should have 2 if-cap-type: if-10GE-ODU2e, if-10GE-ODU2",
+ String.valueOf(supportedInterfaceCapability.getIfCapType()),
+ either(containsString(String.valueOf(If10GEODU2e.class)))
+ .or(containsString(String.valueOf(If10GEODU2.class))));
+ }
+ List<SupportedInterfaceCapability> sicListClient3 = tpList.get(3)
+ .augmentation(
+ org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529
+ .TerminationPoint1.class)
+ .getTpSupportedInterfaces()
+ .getSupportedInterfaceCapability().values().stream().collect(Collectors.toList());
+ for (SupportedInterfaceCapability supportedInterfaceCapability : sicListClient3) {
+ assertThat("tp should have 3 if-cap-type: if-10GE-ODU2e, if-10GE-ODU2, if-10GE",
+ String.valueOf(supportedInterfaceCapability.getIfCapType()),
+ either(containsString(String.valueOf(If10GEODU2e.class)))
+ .or(containsString(String.valueOf(If10GEODU2.class)))
+ .or(containsString(String.valueOf(If10GE.class))));
+ }
+ assertThat("the rate should be ODU2 or ODU2e or 10GE",
+ String.valueOf(tpList.get(2)
.augmentation(
org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529
.TerminationPoint1.class)
.getXpdrTpPortConnectionAttributes()
- .getRate());
+ .getRate()),
+ either(containsString(String.valueOf(ODU2e.class)))
+ .or(containsString(String.valueOf(ODU2.class))));
assertEquals(
"TP should be of type client",
OpenroadmTpType.XPONDERCLIENT,
assertEquals("XPDR2-NETWORK1", tpList.get(4).getTpId().getValue());
assertEquals("XPDR2-NETWORK2", tpList.get(5).getTpId().getValue());
assertEquals(
- "only If100GEODU4 interface capabitily expected",
- If100GEODU4.class,
- tpList.get(2)
+ "only IfOCHOTU4ODU4 interface capabitily expected",
+ IfOCHOTU4ODU4.class,
+ tpList.get(5)
.augmentation(
org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529
.TerminationPoint1.class)
.get()
.getIfCapType());
assertEquals(
- "the rate should be ODU4",
- ODU4.class,
+ "supported interface capability of tp should contain 2 IfCapType",
+ 2,
tpList.get(2)
.augmentation(
org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529
.TerminationPoint1.class)
- .getXpdrTpPortConnectionAttributes()
- .getRate());
+ .getTpSupportedInterfaces()
+ .getSupportedInterfaceCapability().values().size());
+ List<SupportedInterfaceCapability> sicListClient3 = tpList.get(2)
+ .augmentation(
+ org.opendaylight.yang.gen.v1.http.org.openroadm.otn.network.topology.rev200529
+ .TerminationPoint1.class)
+ .getTpSupportedInterfaces()
+ .getSupportedInterfaceCapability().values().stream().collect(Collectors.toList());
+ for (SupportedInterfaceCapability supportedInterfaceCapability : sicListClient3) {
+ assertThat("tp should have 2 if-cap-type: if-100GE-ODU4, if-100GE",
+ String.valueOf(supportedInterfaceCapability.getIfCapType()),
+ either(containsString(String.valueOf(If100GEODU4.class)))
+ .or(containsString(String.valueOf(If100GE.class))));
+ }
assertEquals(
"TP should be of type client", OpenroadmTpType.XPONDERCLIENT,
tpList.get(2)