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;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotNull;
12 import static org.junit.Assert.assertNull;
14 import java.util.concurrent.ExecutionException;
15 import org.junit.Test;
16 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
17 import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
18 import org.opendaylight.transportpce.test.AbstractTest;
19 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.NetworkTypes1;
20 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.NetworkTypes1Builder;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.networks.network.network.types.ClliNetworkBuilder;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.networks.network.network.types.OpenroadmCommonNetworkBuilder;
23 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
24 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks;
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network;
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkKey;
27 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NetworkTypes;
28 import org.opendaylight.yangtools.yang.binding.Augmentation;
29 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
31 public class TpceNetworkTest extends AbstractTest {
32 TpceNetwork tpceNetwork = new TpceNetwork(new NetworkTransactionImpl(getDataBroker()));
35 public void createLayerClliTest() throws InterruptedException, ExecutionException {
36 tpceNetwork.createLayer("clli-network");
37 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
38 .child(Network.class, new NetworkKey(new NetworkId("clli-network")));
39 Network createdClli = getDataBroker().newReadOnlyTransaction()
40 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
41 assertNotNull("Clli layer should be created and not null", createdClli);
43 Augmentation<NetworkTypes> ordClli = new NetworkTypes1Builder()
44 .setClliNetwork(new ClliNetworkBuilder().build())
46 assertNotNull("clli augmentation should not be null", createdClli.getNetworkTypes()
47 .augmentation(NetworkTypes1.class));
48 assertEquals("bad clli augmentation for network-types", ordClli,
49 createdClli.getNetworkTypes().augmentation(NetworkTypes1.class));
53 public void createLayerNetworkTest() throws InterruptedException, ExecutionException {
54 tpceNetwork.createLayer("openroadm-network");
55 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
56 .child(Network.class, new NetworkKey(new NetworkId("openroadm-network")));
57 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
58 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
59 assertNotNull("openroadm-network layer should be created and not null", createdOrdNetwork);
60 commonNetworkAugmentationTest(createdOrdNetwork);
64 public void createLayerTopologyTest() throws InterruptedException, ExecutionException {
65 tpceNetwork.createLayer("openroadm-topology");
66 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
67 .child(Network.class, new NetworkKey(new NetworkId("openroadm-topology")));
68 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
69 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
70 assertNotNull("openroadm-logpology layer should be created and not null", createdOrdNetwork);
71 commonNetworkAugmentationTest(createdOrdNetwork);
75 public void createLayerOtnTest() throws InterruptedException, ExecutionException {
76 tpceNetwork.createLayer("otn-topology");
77 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
78 .child(Network.class, new NetworkKey(new NetworkId("otn-topology")));
79 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
80 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
81 assertNotNull("otn-logpology layer should be created and not null", createdOrdNetwork);
82 commonNetworkAugmentationTest(createdOrdNetwork);
86 public void createBadLayerTest() throws InterruptedException, ExecutionException {
87 tpceNetwork.createLayer("toto");
88 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
89 .child(Network.class, new NetworkKey(new NetworkId("toto")));
90 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
91 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
92 assertNotNull("toto layer should be created and not null", createdOrdNetwork);
93 assertNull("toto layer should not have any network-type augmentation", createdOrdNetwork.getNetworkTypes()
94 .augmentation(NetworkTypes1.class));
95 assertNull("toto layer should not have any network-type augmentation", createdOrdNetwork.getNetworkTypes()
96 .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210
97 .NetworkTypes1.class));
100 private void commonNetworkAugmentationTest(Network createdOrdNetwork) {
101 Augmentation<NetworkTypes> ordComNet
102 = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.NetworkTypes1Builder()
103 .setOpenroadmCommonNetwork(new OpenroadmCommonNetworkBuilder().build())
105 assertNotNull("common-network augmentation should not be null", createdOrdNetwork.getNetworkTypes()
107 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.NetworkTypes1.class));
108 assertEquals("bad common-network augmentation for network-types", ordComNet, createdOrdNetwork.getNetworkTypes()
110 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.NetworkTypes1.class));