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;
32 public class TpceNetworkTest extends AbstractTest {
33 TpceNetwork tpceNetwork = new TpceNetwork(new NetworkTransactionImpl(new RequestProcessor(getDataBroker())));
36 public 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().get();
42 assertNotNull("Clli layer should be created and not null", createdClli);
44 Augmentation<NetworkTypes> ordClli = new NetworkTypes1Builder()
45 .setClliNetwork(new ClliNetworkBuilder().build())
47 assertNotNull("clli augmentation should not be null", createdClli.getNetworkTypes()
48 .augmentation(NetworkTypes1.class));
49 assertEquals("bad clli augmentation for network-types", ordClli,
50 createdClli.getNetworkTypes().augmentation(NetworkTypes1.class));
54 public 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().get();
60 assertNotNull("openroadm-network layer should be created and not null", createdOrdNetwork);
61 commonNetworkAugmentationTest(createdOrdNetwork);
65 public 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().get();
71 assertNotNull("openroadm-logpology layer should be created and not null", createdOrdNetwork);
72 commonNetworkAugmentationTest(createdOrdNetwork);
76 public 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().get();
82 assertNotNull("otn-logpology layer should be created and not null", createdOrdNetwork);
83 commonNetworkAugmentationTest(createdOrdNetwork);
87 public 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().get();
93 assertNotNull("toto layer should be created and not null", createdOrdNetwork);
94 assertNull("toto layer should not have any network-type augmentation", createdOrdNetwork.getNetworkTypes()
95 .augmentation(NetworkTypes1.class));
96 assertNull("toto layer should not have any network-type augmentation", createdOrdNetwork.getNetworkTypes()
97 .augmentation(org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130
98 .NetworkTypes1.class));
101 private void commonNetworkAugmentationTest(Network createdOrdNetwork) {
102 Augmentation<NetworkTypes> ordComNet
103 = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1Builder()
104 .setOpenroadmCommonNetwork(new OpenroadmCommonNetworkBuilder().build())
106 assertNotNull("common-network augmentation should not be null", createdOrdNetwork.getNetworkTypes()
108 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1.class));
109 assertEquals("bad common-network augmentation for network-types", ordComNet, createdOrdNetwork.getNetworkTypes()
111 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1.class));