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.common.network.RequestProcessor;
19 import org.opendaylight.transportpce.test.AbstractTest;
20 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.NetworkTypes1;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.NetworkTypes1Builder;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev181130.networks.network.network.types.ClliNetworkBuilder;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.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;
33 public class TpceNetworkTest extends AbstractTest {
34 TpceNetwork tpceNetwork = new TpceNetwork(new NetworkTransactionImpl(new RequestProcessor(getDataBroker())));
37 public void createLayerClliTest() throws InterruptedException, ExecutionException {
38 tpceNetwork.createLayer("clli-network");
39 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
40 .child(Network.class, new NetworkKey(new NetworkId("clli-network")));
41 Network createdClli = getDataBroker().newReadOnlyTransaction()
42 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
43 assertNotNull("Clli layer should be created and not null", createdClli);
45 Augmentation<NetworkTypes> ordClli = new NetworkTypes1Builder()
46 .setClliNetwork(new ClliNetworkBuilder().build())
48 assertNotNull("clli augmentation should not be null", createdClli.getNetworkTypes()
49 .augmentation(NetworkTypes1.class));
50 assertEquals("bad clli augmentation for network-types", ordClli,
51 createdClli.getNetworkTypes().augmentation(NetworkTypes1.class));
55 public void createLayerNetworkTest() throws InterruptedException, ExecutionException {
56 tpceNetwork.createLayer("openroadm-network");
57 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
58 .child(Network.class, new NetworkKey(new NetworkId("openroadm-network")));
59 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
60 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
61 assertNotNull("openroadm-network layer should be created and not null", createdOrdNetwork);
62 commonNetworkAugmentationTest(createdOrdNetwork);
66 public void createLayerTopologyTest() throws InterruptedException, ExecutionException {
67 tpceNetwork.createLayer("openroadm-topology");
68 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
69 .child(Network.class, new NetworkKey(new NetworkId("openroadm-topology")));
70 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
71 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
72 assertNotNull("openroadm-logpology layer should be created and not null", createdOrdNetwork);
73 commonNetworkAugmentationTest(createdOrdNetwork);
77 public void createLayerOtnTest() throws InterruptedException, ExecutionException {
78 tpceNetwork.createLayer("otn-topology");
79 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
80 .child(Network.class, new NetworkKey(new NetworkId("otn-topology")));
81 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
82 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
83 assertNotNull("otn-logpology layer should be created and not null", createdOrdNetwork);
84 commonNetworkAugmentationTest(createdOrdNetwork);
88 public void createBadLayerTest() throws InterruptedException, ExecutionException {
89 tpceNetwork.createLayer("toto");
90 InstanceIdentifier<Network> nwIID = InstanceIdentifier.create(Networks.class)
91 .child(Network.class, new NetworkKey(new NetworkId("toto")));
92 Network createdOrdNetwork = getDataBroker().newReadOnlyTransaction()
93 .read(LogicalDatastoreType.CONFIGURATION, nwIID).get().get();
94 assertNotNull("toto layer should be created and not null", createdOrdNetwork);
95 assertNull("toto layer should not have any network-type augmentation", createdOrdNetwork.getNetworkTypes()
96 .augmentation(NetworkTypes1.class));
97 assertNull("toto layer should not have any network-type augmentation", createdOrdNetwork.getNetworkTypes()
98 .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130
99 .NetworkTypes1.class));
102 private void commonNetworkAugmentationTest(Network createdOrdNetwork) {
103 Augmentation<NetworkTypes> ordComNet
104 = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1Builder()
105 .setOpenroadmCommonNetwork(new OpenroadmCommonNetworkBuilder().build())
107 assertNotNull("common-network augmentation should not be null", createdOrdNetwork.getNetworkTypes()
109 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1.class));
110 assertEquals("bad common-network augmentation for network-types", ordComNet, createdOrdNetwork.getNetworkTypes()
112 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1.class));