2 * Copyright © 2020 Orange, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.transportpce.networkmodel.util;
11 import static org.junit.jupiter.api.Assertions.assertEquals;
12 import static org.junit.jupiter.api.Assertions.assertNotNull;
13 import static org.junit.jupiter.api.Assertions.assertNull;
15 import java.util.concurrent.ExecutionException;
16 import org.junit.jupiter.api.Test;
17 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
18 import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
19 import org.opendaylight.transportpce.test.AbstractTest;
20 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.NetworkTypes1;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.NetworkTypes1Builder;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.networks.network.network.types.ClliNetworkBuilder;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.networks.network.network.types.OpenroadmCommonNetworkBuilder;
24 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks;
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network;
27 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkKey;
28 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NetworkTypes;
29 import org.opendaylight.yangtools.yang.binding.Augmentation;
30 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
32 public class TpceNetworkTest extends AbstractTest {
33 TpceNetwork tpceNetwork = new TpceNetwork(new NetworkTransactionImpl(getDataBroker()));
36 void createLayerClliTest() throws InterruptedException, ExecutionException {
37 tpceNetwork.createLayer("clli-network");
38 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
39 .child(Network.class, new NetworkKey(new NetworkId("clli-network")));
40 Network createdClli = getDataBroker().newReadOnlyTransaction()
41 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().orElseThrow();
42 assertNotNull(createdClli, "Clli layer should be created and not null");
44 Augmentation<NetworkTypes> ordClli = new NetworkTypes1Builder()
45 .setClliNetwork(new ClliNetworkBuilder().build())
47 assertNotNull(createdClli.getNetworkTypes().augmentation(NetworkTypes1.class),
48 "clli augmentation should not be null");
49 assertEquals(ordClli, createdClli.getNetworkTypes().augmentation(NetworkTypes1.class),
50 "bad clli augmentation for network-types");
54 void createLayerNetworkTest() throws InterruptedException, ExecutionException {
55 tpceNetwork.createLayer("openroadm-network");
56 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
57 .child(Network.class, new NetworkKey(new NetworkId("openroadm-network")));
58 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
59 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().orElseThrow();
60 assertNotNull(createdOrdNetwork, "openroadm-network layer should be created and not null");
61 commonNetworkAugmentationTest(createdOrdNetwork);
65 void createLayerTopologyTest() throws InterruptedException, ExecutionException {
66 tpceNetwork.createLayer("openroadm-topology");
67 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
68 .child(Network.class, new NetworkKey(new NetworkId("openroadm-topology")));
69 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
70 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().orElseThrow();
71 assertNotNull(createdOrdNetwork, "openroadm-logpology layer should be created and not null");
72 commonNetworkAugmentationTest(createdOrdNetwork);
76 void createLayerOtnTest() throws InterruptedException, ExecutionException {
77 tpceNetwork.createLayer("otn-topology");
78 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
79 .child(Network.class, new NetworkKey(new NetworkId("otn-topology")));
80 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
81 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().orElseThrow();
82 assertNotNull(createdOrdNetwork, "otn-logpology layer should be created and not null");
83 commonNetworkAugmentationTest(createdOrdNetwork);
87 void createBadLayerTest() throws InterruptedException, ExecutionException {
88 tpceNetwork.createLayer("toto");
89 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
90 .child(Network.class, new NetworkKey(new NetworkId("toto")));
91 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
92 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().orElseThrow();
93 assertNotNull(createdOrdNetwork, "toto layer should be created and not null");
94 assertNull(createdOrdNetwork.getNetworkTypes().augmentation(NetworkTypes1.class),
95 "toto layer should not have any network-type augmentation");
97 createdOrdNetwork.getNetworkTypes().augmentation(
98 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.NetworkTypes1.class),
99 "toto layer should not have any network-type augmentation");
102 private void commonNetworkAugmentationTest(Network createdOrdNetwork) {
103 Augmentation<NetworkTypes> ordComNet
104 = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.NetworkTypes1Builder()
105 .setOpenroadmCommonNetwork(new OpenroadmCommonNetworkBuilder().build())
108 createdOrdNetwork.getNetworkTypes().augmentation(
109 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.NetworkTypes1.class),
110 "common-network augmentation should not be null");
112 ordComNet, createdOrdNetwork.getNetworkTypes().augmentation(
113 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.NetworkTypes1.class),
114 "bad common-network augmentation for network-types");