/*
* Copyright (c) 2016 Instituto Atlântico Development Company, L.P. 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.strategy;
import static org.mockito.Mockito.when;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.nic.of.renderer.impl.QosConstraintManager;
import org.opendaylight.nic.of.renderer.utils.TopologyUtils;
import org.opendaylight.nic.utils.FlowAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.intent.rev150122.intents.Intent;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
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.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
/**
* @author victor. Created on 17/11/16.
*/
@PrepareForTest({ TopologyUtils.class })
@RunWith(PowerMockRunner.class)
public class QoSExecutorTest {
@InjectMocks
private QoSExecutor qoSExecutorMock;
@Mock
private QosConstraintManager qosConstraintManagerMock;
@Mock
private DataBroker dataBroker;
@Mock
private Intent intentMock;
@Mock
private Node node;
@Mock
private NodeConnector nodeConnector;
@Mock
private NodeId nodeIdDeprecatedMock;
private Map<Node, List<NodeConnector>> nodeMap;
private List<NodeConnector> nodeConnectorList;
@Before
public void setUp() throws Exception {
nodeConnectorList = Arrays.asList(nodeConnector);
when(node.getId()).thenReturn(nodeIdDeprecatedMock);
nodeMap = new HashMap<>();
nodeMap.put(node, nodeConnectorList);
PowerMockito.mockStatic(TopologyUtils.class);
when(TopologyUtils.getNodes(dataBroker)).thenReturn(nodeMap);
qoSExecutorMock = new QoSExecutor(qosConstraintManagerMock, dataBroker);
}
@Test
public void testExecuteIntentAddFlow() throws Exception {
qoSExecutorMock.execute(intentMock, FlowAction.ADD_FLOW);
}
}