package org.opendaylight.transportpce.common.mapping;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.Reader;
+import java.nio.charset.StandardCharsets;
import java.util.concurrent.ExecutionException;
-import org.junit.Before;
+import org.junit.BeforeClass;
import org.junit.Test;
-import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.WriteTransaction;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.transportpce.common.DataStoreContext;
-import org.opendaylight.transportpce.common.DataStoreContextImpl;
import org.opendaylight.transportpce.common.StringConstants;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.Network;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.Nodes;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.NodesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.NodesKey;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.nodes.NodeInfo;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.nodes.NodeInfoBuilder;
+import org.opendaylight.transportpce.test.AbstractTest;
+import org.opendaylight.transportpce.test.converter.DataObjectConverter;
+import org.opendaylight.transportpce.test.converter.JSONDataObjectConverter;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210315.Network;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+public class MappingUtilsImplTest extends AbstractTest {
+ private static final Logger LOG = LoggerFactory.getLogger(MappingUtilsImplTest.class);
+ private static MappingUtils mappingUtils;
-public class MappingUtilsImplTest {
-
- private DataBroker dataBroker = null;
-
- @Before
- public void setUp() throws Exception {
- DataStoreContext dataStoreContext = new DataStoreContextImpl();
- dataBroker = dataStoreContext.getDataBroker();
+ @BeforeClass
+ public static void setUp() throws InterruptedException, ExecutionException, FileNotFoundException {
+ DataObjectConverter dataObjectConverter = JSONDataObjectConverter
+ .createWithDataStoreUtil(getDataStoreContextUtil());
+ try (Reader reader = new FileReader("src/test/resources/network.json", StandardCharsets.UTF_8)) {
+ NormalizedNode<? extends PathArgument, ?> normalizedNode = dataObjectConverter
+ .transformIntoNormalizedNode(reader).get();
+ Network network = (Network) getDataStoreContextUtil()
+ .getBindingDOMCodecServices().fromNormalizedNode(YangInstanceIdentifier
+ .of(Network.QNAME), normalizedNode).getValue();
+ WriteTransaction writeNetworkTransaction = getDataBroker().newWriteOnlyTransaction();
+ writeNetworkTransaction.put(LogicalDatastoreType.CONFIGURATION,
+ InstanceIdentifier.builder(Network.class).build(), network);
+ writeNetworkTransaction.commit().get();
+ } catch (IOException e) {
+ LOG.error("Cannot load network ", e);
+ fail("Cannot load network");
+ }
+ mappingUtils = new MappingUtilsImpl(getDataBroker());
}
@Test
public void getOpenRoadmVersionTest() throws ExecutionException, InterruptedException {
- final MappingUtils mappingUtils = new MappingUtilsImpl(dataBroker);
- final NodeInfo nodeInfo = new NodeInfoBuilder().setOpenroadmVersion(NodeInfo.OpenroadmVersion._121).build();
- final NodeInfo nodeInfo2 = new NodeInfoBuilder().setOpenroadmVersion(NodeInfo.OpenroadmVersion._221).build();
- Nodes nodes = new NodesBuilder().setNodeId("node3").build();
- InstanceIdentifier<NodeInfo> nodeInfoIID = InstanceIdentifier.builder(Network.class).child(Nodes.class,
- new NodesKey("node")).child(NodeInfo.class).build();
- InstanceIdentifier<NodeInfo> nodeInfoIID2 = InstanceIdentifier.builder(Network.class).child(Nodes.class,
- new NodesKey("node2")).child(NodeInfo.class).build();
- InstanceIdentifier<Nodes> nodeIID = InstanceIdentifier.builder(Network.class).child(Nodes.class,
- new NodesKey("node3")).build();
- WriteTransaction wr = dataBroker.newWriteOnlyTransaction();
+ assertEquals("NodeInfo with ROADM-C1 as id should be 1.2.1 version",
+ StringConstants.OPENROADM_DEVICE_VERSION_1_2_1,
+ mappingUtils.getOpenRoadmVersion("ROADM-C1"));
+ assertEquals("NodeInfo with ROADM-A1 as id should be 2.2.1 version",
+ StringConstants.OPENROADM_DEVICE_VERSION_2_2_1,
+ mappingUtils.getOpenRoadmVersion("ROADM-A1"));
+ assertNull("NodeInfo with nodes3 as id should not exist", mappingUtils.getOpenRoadmVersion("nodes3"));
+ }
- //Create a node version 1, a node version 2, and a node no version
- wr.merge(LogicalDatastoreType.CONFIGURATION, nodeInfoIID, nodeInfo, true);
- wr.merge(LogicalDatastoreType.CONFIGURATION, nodeInfoIID2, nodeInfo2, true);
- wr.merge(LogicalDatastoreType.CONFIGURATION, nodeIID, nodes, true);
- wr.commit().get();
- //Test the versions are returned OK
- assertEquals("They have the same openroadmVersion",
- mappingUtils.getOpenRoadmVersion("node"), StringConstants.OPENROADM_DEVICE_VERSION_1_2_1);
- assertEquals("They have the same openroadmVersion",
- mappingUtils.getOpenRoadmVersion("node2"), StringConstants.OPENROADM_DEVICE_VERSION_2_2_1);
- assertNull("node3 isn't exists", mappingUtils.getOpenRoadmVersion("node3"));
- assertNotNull("node is existed", mappingUtils.getOpenRoadmVersion("node"));
- assertNotNull("node2 is existed", mappingUtils.getOpenRoadmVersion("node2"));
+ @Test
+ public void getMcCapabilitiesForNodeTest() {
+ assertEquals("Mc capabilities list size should be 2", 2,
+ mappingUtils.getMcCapabilitiesForNode("ROADM-A1").size());
+ assertTrue("Mc capabilities list size should be empty",
+ mappingUtils.getMcCapabilitiesForNode("ROADM-A2").isEmpty());
}