Migrate networkmodel module to JUnit5
[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
11 import static org.junit.jupiter.api.Assertions.assertEquals;
12 import static org.junit.jupiter.api.Assertions.assertNotNull;
13 import static org.junit.jupiter.api.Assertions.assertNull;
14
15 import java.util.concurrent.ExecutionException;
16 import org.junit.jupiter.api.Test;
17 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
18 import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
19 import org.opendaylight.transportpce.test.AbstractTest;
20 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.NetworkTypes1;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.NetworkTypes1Builder;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.clli.network.rev191129.networks.network.network.types.ClliNetworkBuilder;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.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 public class TpceNetworkTest extends AbstractTest {
33     TpceNetwork tpceNetwork = new TpceNetwork(new NetworkTransactionImpl(getDataBroker()));
34
35     @Test
36     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(createdClli, "Clli layer should be created and not null");
43
44         Augmentation<NetworkTypes> ordClli = new NetworkTypes1Builder()
45             .setClliNetwork(new ClliNetworkBuilder().build())
46             .build();
47         assertNotNull(createdClli.getNetworkTypes().augmentation(NetworkTypes1.class),
48             "clli augmentation should not be null");
49         assertEquals(ordClli, createdClli.getNetworkTypes().augmentation(NetworkTypes1.class),
50             "bad clli augmentation for network-types");
51     }
52
53     @Test
54     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(createdOrdNetwork, "openroadm-network layer should be created and not null");
61         commonNetworkAugmentationTest(createdOrdNetwork);
62     }
63
64     @Test
65     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(createdOrdNetwork, "openroadm-logpology layer should be created and not null");
72         commonNetworkAugmentationTest(createdOrdNetwork);
73     }
74
75     @Test
76     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(createdOrdNetwork, "otn-logpology layer should be created and not null");
83         commonNetworkAugmentationTest(createdOrdNetwork);
84     }
85
86     @Test
87     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(createdOrdNetwork, "toto layer should be created and not null");
94         assertNull(createdOrdNetwork.getNetworkTypes().augmentation(NetworkTypes1.class),
95             "toto layer should not have any network-type augmentation");
96         assertNull(
97             createdOrdNetwork.getNetworkTypes().augmentation(
98                     org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.NetworkTypes1.class),
99             "toto layer should not have any network-type augmentation");
100     }
101
102     private void commonNetworkAugmentationTest(Network createdOrdNetwork) {
103         Augmentation<NetworkTypes> ordComNet
104             = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.NetworkTypes1Builder()
105                 .setOpenroadmCommonNetwork(new OpenroadmCommonNetworkBuilder().build())
106                 .build();
107         assertNotNull(
108             createdOrdNetwork.getNetworkTypes().augmentation(
109                     org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.NetworkTypes1.class),
110             "common-network augmentation should not be null");
111         assertEquals(
112             ordComNet, createdOrdNetwork.getNetworkTypes().augmentation(
113                     org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.NetworkTypes1.class),
114             "bad common-network augmentation for network-types");
115     }
116 }