/*
* Copyright © 2016 Inocybe Technologies and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.nic.of.renderer.utils;
import com.google.common.base.Optional;
import com.google.common.util.concurrent.CheckedFuture;
import org.junit.Test;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.powermock.api.mockito.PowerMockito.when;
public class TopologyUtilsTests {
@Test
public void testextractTopologyNodeId(){
String nodeConnectorId = "openflow2:1";
org.opendaylight.yang.gen.v1.urn
.tbd.params.xml.ns.yang.network
.topology.rev131021.NodeId nodeId = TopologyUtils.extractTopologyNodeId(nodeConnectorId);
assertNotNull(nodeId);
}
@Test
public void testGetNodes() throws ReadFailedException {
List<NodeConnector> connectors = new ArrayList<>();
List<Node> nodess = new ArrayList<>();
NodeConnector nodeConnector = mock(NodeConnector.class);
connectors.add(nodeConnector);
Node node1 = mock(Node.class);
when(node1.getNodeConnector()).thenReturn(connectors);
nodess.add(node1);
org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes nodes =
mock(org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes.class);
DataBroker dataBroker = mock(DataBroker.class);
ReadOnlyTransaction tx = mock(ReadOnlyTransaction.class);
CheckedFuture<Optional<DataObject>, ReadFailedException> checkedFuture = mock(CheckedFuture.class);
Optional<DataObject> checkedGet = mock(Optional.class);
when(nodes.getNode()).thenReturn(nodess);
when(checkedGet.get()).thenReturn(nodes);
when(checkedFuture.checkedGet()).thenReturn(checkedGet);
when(tx.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);
when(dataBroker.newReadOnlyTransaction()).thenReturn(tx);
Map<Node, List<NodeConnector>> returnedNodes = TopologyUtils.getNodes(dataBroker);
assertTrue(returnedNodes.size() == connectors.size());
}
}