Junit tests for network model
[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.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;
31
32
33 public class TpceNetworkTest extends AbstractTest {
34     TpceNetwork tpceNetwork = new TpceNetwork(new NetworkTransactionImpl(new RequestProcessor(getDataBroker())));
35
36     @Test
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);
44
45         Augmentation<NetworkTypes> ordClli = new NetworkTypes1Builder()
46             .setClliNetwork(new ClliNetworkBuilder().build())
47             .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));
52     }
53
54     @Test
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);
63     }
64
65     @Test
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);
74     }
75
76     @Test
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);
85     }
86
87     @Test
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));
100     }
101
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())
106             .build();
107         assertNotNull("common-network augmentation should not be null", createdOrdNetwork.getNetworkTypes()
108             .augmentation(
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()
111             .augmentation(
112                 org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.NetworkTypes1.class));
113     }
114 }