2 * Copyright (c) 2016 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.groupbasedpolicy.renderer.ofoverlay.test;
10 import static org.mockito.Mockito.mock;
11 import static org.mockito.Mockito.when;
13 import java.util.HashMap;
14 import java.util.HashSet;
18 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
19 import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
20 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
21 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.endpoint.EndpointManager;
22 import org.opendaylight.yangtools.yang.binding.DataObject;
23 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
25 public class DataChangeListenerTester {
27 private AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> changeMock;
28 private DataChangeListener listener;
30 private Map<InstanceIdentifier<?>, DataObject> testData;
31 private Set<InstanceIdentifier<?>> removedPaths;
33 @SuppressWarnings("unchecked")
34 public DataChangeListenerTester(DataChangeListener listener) {
35 changeMock = mock(AsyncDataChangeEvent.class);
36 testData = new HashMap<>();
37 removedPaths = new HashSet<>();
39 this.listener = listener;
41 when(changeMock.getCreatedData()).thenReturn(testData);
42 when(changeMock.getOriginalData()).thenReturn(testData);
43 when(changeMock.getUpdatedData()).thenReturn(testData);
44 when(changeMock.getRemovedPaths()).thenReturn(removedPaths);
47 public DataChangeListenerTester setDataObject(InstanceIdentifier<DataObject> iid, DataObject dataObject){
49 return addDataObject(iid, dataObject);
52 public DataChangeListenerTester addDataObject(InstanceIdentifier<DataObject> iid, DataObject dataObject){
53 testData.put(iid, dataObject);
57 public DataChangeListenerTester setRemovedPath(InstanceIdentifier<DataObject> iid){
59 return addRemovedPath(iid);
62 public DataChangeListenerTester addRemovedPath(InstanceIdentifier<DataObject> iid){
63 removedPaths.add(iid);
67 public void callOnDataChanged(){
68 listener.onDataChanged(changeMock);