Merge "Fixed potential class pool override in integration tests."
[controller.git] / opendaylight / md-sal / samples / l2switch / implementation / src / test / java / org / opendaylight / controller / sample / l2switch / md / topology / TopologyLinkDataChangeHandlerTest.java
1 /**
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.controller.sample.l2switch.md.topology;
9
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;
19
20 import java.util.ArrayList;
21 import java.util.HashMap;
22 import java.util.List;
23 import java.util.Map;
24
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;
29
30 /**
31  */
32 public class TopologyLinkDataChangeHandlerTest {
33   NetworkGraphService networkGraphService;
34   DataBrokerService dataBrokerService;
35   DataChangeEvent dataChangeEvent;
36   Topology topology;
37   Link link;
38
39   @Before
40   public void init() {
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);
46   }
47
48   @Test
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<>();
59     links.add(link);
60     when(dataBrokerService.readOperationalData(instanceIdentifier)).thenReturn(topology);
61     when(topology.getLink()).thenReturn(links);
62
63     topologyLinkDataChangeHandler.onDataChanged(dataChangeEvent);
64     Thread.sleep(2100);
65     verify(networkGraphService, times(1)).addLinks(links);
66   }
67 }