2 * Copyright (c) 2014 Cisco Systems, Inc. and others. 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
8 package org.opendaylight.controller.sample.l2switch.md.topology;
10 import org.junit.Before;
11 import org.junit.Test;
12 import org.opendaylight.controller.sample.l2switch.md.util.InstanceIdentifierUtils;
13 import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent;
14 import org.opendaylight.controller.sal.binding.api.data.DataBrokerService;
15 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
16 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link;
17 import org.opendaylight.yangtools.yang.binding.DataObject;
18 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
20 import java.util.ArrayList;
21 import java.util.HashMap;
22 import java.util.List;
25 import static org.mockito.Mockito.mock;
26 import static org.mockito.Mockito.times;
27 import static org.mockito.Mockito.verify;
28 import static org.mockito.Mockito.when;
32 public class TopologyLinkDataChangeHandlerTest {
33 NetworkGraphService networkGraphService;
34 DataBrokerService dataBrokerService;
35 DataChangeEvent dataChangeEvent;
41 networkGraphService = mock(NetworkGraphService.class);
42 dataBrokerService = mock(DataBrokerService.class);
43 dataChangeEvent = mock(DataChangeEvent.class);
44 link = mock(Link.class);
45 topology = mock(Topology.class);
49 public void testOnDataChange() throws Exception {
50 TopologyLinkDataChangeHandler topologyLinkDataChangeHandler = new TopologyLinkDataChangeHandler(dataBrokerService, networkGraphService, 2);
51 Map<InstanceIdentifier<?>, DataObject> original = new HashMap<InstanceIdentifier<?>, DataObject>();
52 InstanceIdentifier<?> instanceIdentifier = InstanceIdentifierUtils.generateTopologyInstanceIdentifier("flow:1");
53 DataObject dataObject = mock(DataObject.class);
54 Map<InstanceIdentifier<?>, DataObject> updated = new HashMap<InstanceIdentifier<?>, DataObject>();
55 updated.put(instanceIdentifier, dataObject);
56 when(dataChangeEvent.getUpdatedOperationalData()).thenReturn(updated);
57 when(dataChangeEvent.getOriginalOperationalData()).thenReturn(original);
58 List<Link> links = new ArrayList<>();
60 when(dataBrokerService.readOperationalData(instanceIdentifier)).thenReturn(topology);
61 when(topology.getLink()).thenReturn(links);
63 topologyLinkDataChangeHandler.onDataChanged(dataChangeEvent);
65 verify(networkGraphService, times(1)).addLinks(links);