2 * Copyright (c) 2015 NEC Corporation
5 * This program and the accompanying materials are made available under the
6 * terms of the Eclipse Public License v1.0 which accompanies this
7 * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
10 package org.opendaylight.vtn.manager.internal.inventory;
12 import org.junit.Test;
13 import org.slf4j.Logger;
14 import org.slf4j.LoggerFactory;
15 import org.opendaylight.vtn.manager.internal.TestBase;
16 import org.mockito.Mockito;
17 import org.opendaylight.vtn.manager.internal.VTNManagerProvider;
18 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
19 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
20 import org.opendaylight.vtn.manager.internal.util.IdentifiedData;
21 import org.opendaylight.vtn.manager.internal.TxQueue;
22 import org.opendaylight.vtn.manager.internal.util.tx.TxQueueImpl;
23 import org.opendaylight.vtn.manager.internal.util.inventory.SalPort;
24 import org.opendaylight.vtn.manager.internal.util.ChangedData;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
28 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
31 * JUnit test for {@link NodeListener}
33 * NodeListener test class is to test Listener class listens
34 * the change of MD-SAL nodes or not.
37 public class NodeListenerTest extends TestBase{
42 private static final Logger LOG = LoggerFactory.getLogger(NodeListenerTest.class);
44 * create a mock object for DataBroker class
46 DataBroker broker = Mockito.mock(DataBroker.class);
48 * create a mock object for VTNManagerProvider class
50 VTNManagerProvider provider = Mockito.mock(VTNManagerProvider.class);
52 * create a mock object for FlowCapableNode class
54 FlowCapableNode fCapableNode = Mockito.mock(FlowCapableNode.class);
56 * create a mock object for AsyncDataChangeEvent class
58 AsyncDataChangeEvent asyncDataChangeEvent = Mockito.mock(AsyncDataChangeEvent.class);
60 * create a object for TxQueue
62 TxQueue txQueue = new TxQueueImpl("QUEUE1", provider);
64 * create a object for NodeListener
66 NodeListener nodeListener = new NodeListener(txQueue, broker);
68 * create a object for NodeUpdateTask
70 NodeUpdateTask nodeUpdateTask = new NodeUpdateTask(LOG);
72 * create a object for InstanceIdentifier
74 InstanceIdentifier<FlowCapableNode> instanceIdentifier = InstanceIdentifier.builder(Nodes.class).child(Node.class).augmentation(FlowCapableNode.class).build();
79 * create a object for SalPort
81 SalPort salPort = new SalPort(nodeId, portId, "port address");
85 * {@link NodeListener#getLogger}.
88 public void testGetLogger() {
90 assertTrue(nodeListener.getLogger() instanceof Logger);
95 * {@link NodeListener#onRemoved}.
98 public void testOnRemoved() {
100 nodeUpdateTask.addUpdated(instanceIdentifier, salPort);
101 IdentifiedData identifiedData = new IdentifiedData(instanceIdentifier, fCapableNode);
102 nodeListener.onRemoved(nodeUpdateTask, identifiedData);
103 } catch (Exception e) {
104 assertTrue(e instanceof ClassCastException);
110 * {@link NodeListener#onUpdated}.
113 public void testOnUpdated() {
115 nodeUpdateTask.addUpdated(instanceIdentifier, salPort);
116 ChangedData changedData = new ChangedData(instanceIdentifier, fCapableNode, fCapableNode);
117 nodeListener.onUpdated(nodeUpdateTask, changedData);
118 } catch (Exception e) {
119 assertTrue(e instanceof Exception);
125 * {@link NodeListener#onCreated}.
128 public void testOnCreated() {
130 nodeUpdateTask.addUpdated(instanceIdentifier, salPort);
131 IdentifiedData identifiedData = new IdentifiedData(instanceIdentifier, fCapableNode);
132 nodeListener.onCreated(nodeUpdateTask, identifiedData);
133 } catch (Exception e) {
134 assertTrue(e instanceof ClassCastException);
140 * {@link NodeListener#enterEvent}.
143 public void testEnterEvent() {
145 assertTrue(nodeListener.enterEvent(asyncDataChangeEvent) instanceof NodeUpdateTask);
146 } catch (Exception e) {
147 assertTrue(e instanceof Exception);
153 * {@link NodeListener#exitEvent}.
156 public void testExitEvent() {
159 nodeListener.exitEvent(nodeUpdateTask);
160 } catch (Exception e) {
161 assertTrue(e instanceof Exception);
165 nodeUpdateTask.addUpdated(instanceIdentifier, salPort);
166 nodeListener.exitEvent(nodeUpdateTask);
167 } catch (Exception e) {
168 assertTrue(e instanceof Exception);
175 * {@link NodeListener#getRequiredEvents}.
178 public void testGetRequiredEvents() {
180 nodeListener.getRequiredEvents();