2 * Copyright © 2020 Orange. 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
9 package org.opendaylight.transportpce.common.mapping;
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertNull;
14 import java.util.concurrent.ExecutionException;
15 import org.junit.Before;
16 import org.junit.Ignore;
17 import org.junit.Test;
18 import org.opendaylight.mdsal.binding.api.DataBroker;
19 import org.opendaylight.mdsal.binding.api.WriteTransaction;
20 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
21 import org.opendaylight.transportpce.common.StringConstants;
22 import org.opendaylight.transportpce.test.DataStoreContext;
23 import org.opendaylight.transportpce.test.DataStoreContextImpl;
24 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.Network;
25 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.network.Nodes;
26 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.network.NodesBuilder;
27 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.network.NodesKey;
28 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.network.nodes.NodeInfo;
29 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200827.network.nodes.NodeInfoBuilder;
30 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
33 public class MappingUtilsImplTest {
35 private DataBroker dataBroker = null;
38 public void setUp() throws Exception {
39 DataStoreContext dataStoreContext = new DataStoreContextImpl();
40 dataBroker = dataStoreContext.getDataBroker();
44 public void getOpenRoadmVersionTest() throws ExecutionException, InterruptedException {
45 final MappingUtils mappingUtils = new MappingUtilsImpl(dataBroker);
46 final NodeInfo nodeInfo = new NodeInfoBuilder().setOpenroadmVersion(NodeInfo.OpenroadmVersion._121).build();
47 final NodeInfo nodeInfo2 = new NodeInfoBuilder().setOpenroadmVersion(NodeInfo.OpenroadmVersion._221).build();
48 Nodes nodes = new NodesBuilder().setNodeId("nodes").setNodeInfo(nodeInfo).build();
49 Nodes nodes2 = new NodesBuilder().setNodeId("nodes2").setNodeInfo(nodeInfo2).build();
50 Nodes nodes3 = new NodesBuilder().setNodeId("nodes3").build();
51 InstanceIdentifier<Nodes> nodeIID = InstanceIdentifier.builder(Network.class).child(Nodes.class,
52 new NodesKey("nodes")).build();
53 InstanceIdentifier<Nodes> nodeIID2 = InstanceIdentifier.builder(Network.class).child(Nodes.class,
54 new NodesKey("nodes2")).build();
55 InstanceIdentifier<Nodes> nodeIID3 = InstanceIdentifier.builder(Network.class).child(Nodes.class,
56 new NodesKey("nodes3")).build();
57 WriteTransaction wr = dataBroker.newWriteOnlyTransaction();
59 //Create a node version 1, a node version 2, and a node no version
60 wr.merge(LogicalDatastoreType.CONFIGURATION, nodeIID, nodes);
61 wr.merge(LogicalDatastoreType.CONFIGURATION, nodeIID2, nodes2);
62 wr.merge(LogicalDatastoreType.CONFIGURATION, nodeIID3, nodes3);
64 //Test the versions are returned OK
65 assertEquals("NodeInfo with nodes as id should be 1.2.1 version",
66 StringConstants.OPENROADM_DEVICE_VERSION_1_2_1,
67 mappingUtils.getOpenRoadmVersion("nodes"));
68 assertEquals("NodeInfo with nodes as id should be 2.2.1 version",
69 StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
70 mappingUtils.getOpenRoadmVersion("nodes2"));
71 assertNull("NodeInfo with nodes3 as id should not exist", mappingUtils.getOpenRoadmVersion("nodes3"));