667997583e6b4f1ae58d20a9342543803d9bf152
[transportpce.git] / networkmodel / src / test / java / org / opendaylight / transportpce / networkmodel / util / TpceNetworkTest.java
1 /*
2  * Copyright © 2020 Orange, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.transportpce.networkmodel.util;
9
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotNull;
12 import static org.junit.Assert.assertNull;
13
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;
30
31 public class TpceNetworkTest extends AbstractTest {
32     TpceNetwork tpceNetwork = new TpceNetwork(new NetworkTransactionImpl(getDataBroker()));
33
34     @Test
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);
42
43         Augmentation<NetworkTypes> ordClli = new NetworkTypes1Builder()
44             .setClliNetwork(new ClliNetworkBuilder().build())
45             .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));
50     }
51
52     @Test
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);
61     }
62
63     @Test
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);
72     }
73
74     @Test
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);
83     }
84
85     @Test
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));
98     }
99
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())
104             .build();
105         assertNotNull("common-network augmentation should not be null", createdOrdNetwork.getNetworkTypes()
106             .augmentation(
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()
109             .augmentation(
110                 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.NetworkTypes1.class));
111     }
112 }