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