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.Ignore;
16 import org.junit.Test;
17 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
18 import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
19 import org.opendaylight.transportpce.common.network.RequestProcessor;
20 import org.opendaylight.transportpce.test.AbstractTest;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.NetworkTypes1;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.NetworkTypes1Builder;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.networks.network.network.types.ClliNetworkBuilder;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.networks.network.network.types.OpenroadmCommonNetworkBuilder;
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.Networks;
27 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.Network;
28 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.NetworkKey;
29 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NetworkTypes;
30 import org.opendaylight.yangtools.yang.binding.Augmentation;
31 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
34 public class TpceNetworkTest extends AbstractTest {
35 TpceNetwork tpceNetwork = new TpceNetwork(new NetworkTransactionImpl(new RequestProcessor(getDataBroker())));
38 public void createLayerClliTest() throws InterruptedException, ExecutionException {
39 tpceNetwork.createLayer("clli-network");
40 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
41 .child(Network.class, new NetworkKey(new NetworkId("clli-network")));
42 Network createdClli = getDataBroker().newReadOnlyTransaction()
43 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
44 assertNotNull("Clli layer should be created and not null", createdClli);
46 Augmentation<NetworkTypes> ordClli = new NetworkTypes1Builder()
47 .setClliNetwork(new ClliNetworkBuilder().build())
49 assertNotNull("clli augmentation should not be null", createdClli.getNetworkTypes()
50 .augmentation(NetworkTypes1.class));
51 assertEquals("bad clli augmentation for network-types", ordClli,
52 createdClli.getNetworkTypes().augmentation(NetworkTypes1.class));
56 public void createLayerNetworkTest() throws InterruptedException, ExecutionException {
57 tpceNetwork.createLayer("openroadm-network");
58 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
59 .child(Network.class, new NetworkKey(new NetworkId("openroadm-network")));
60 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
61 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
62 assertNotNull("openroadm-network layer should be created and not null", createdOrdNetwork);
63 commonNetworkAugmentationTest(createdOrdNetwork);
67 public void createLayerTopologyTest() throws InterruptedException, ExecutionException {
68 tpceNetwork.createLayer("openroadm-topology");
69 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
70 .child(Network.class, new NetworkKey(new NetworkId("openroadm-topology")));
71 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
72 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
73 assertNotNull("openroadm-logpology layer should be created and not null", createdOrdNetwork);
74 commonNetworkAugmentationTest(createdOrdNetwork);
78 public void createLayerOtnTest() throws InterruptedException, ExecutionException {
79 tpceNetwork.createLayer("otn-topology");
80 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
81 .child(Network.class, new NetworkKey(new NetworkId("otn-topology")));
82 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
83 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
84 assertNotNull("otn-logpology layer should be created and not null", createdOrdNetwork);
85 commonNetworkAugmentationTest(createdOrdNetwork);
89 public void createBadLayerTest() throws InterruptedException, ExecutionException {
90 tpceNetwork.createLayer("toto");
91 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
92 .child(Network.class, new NetworkKey(new NetworkId("toto")));
93 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
94 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
95 assertNotNull("toto layer should be created and not null", createdOrdNetwork);
96 assertNull("toto layer should not have any network-type augmentation", createdOrdNetwork.getNetworkTypes()
97 .augmentation(NetworkTypes1.class));
98 assertNull("toto layer should not have any network-type augmentation", createdOrdNetwork.getNetworkTypes()
99 .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130
100 .NetworkTypes1.class));
103 private void commonNetworkAugmentationTest(Network createdOrdNetwork) {
104 Augmentation<NetworkTypes> ordComNet
105 = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1Builder()
106 .setOpenroadmCommonNetwork(new OpenroadmCommonNetworkBuilder().build())
108 assertNotNull("common-network augmentation should not be null", createdOrdNetwork.getNetworkTypes()
110 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1.class));
111 assertEquals("bad common-network augmentation for network-types", ordComNet, createdOrdNetwork.getNetworkTypes()
113 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1.class));