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