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.faas.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.DataChangeListener;
19 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
20 import org.opendaylight.yangtools.yang.binding.DataObject;
21 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
23 public class DataChangeListenerTester {
25 private AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> changeMock;
26 private DataChangeListener listener;
28 private Map<InstanceIdentifier<?>, DataObject> testData;
29 private Set<InstanceIdentifier<?>> removedPaths;
31 @SuppressWarnings("unchecked")
32 public DataChangeListenerTester(DataChangeListener listener) {
33 changeMock = mock(AsyncDataChangeEvent.class);
34 testData = new HashMap<>();
35 removedPaths = new HashSet<>();
37 this.listener = listener;
39 when(changeMock.getCreatedData()).thenReturn(testData);
40 when(changeMock.getOriginalData()).thenReturn(testData);
41 when(changeMock.getUpdatedData()).thenReturn(testData);
42 when(changeMock.getRemovedPaths()).thenReturn(removedPaths);
45 public AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> getChangeMock() {
49 public DataChangeListenerTester setDataObject(InstanceIdentifier<? extends DataObject> iid, DataObject dataObject){
51 return addDataObject(iid, dataObject);
54 public DataChangeListenerTester addDataObject(InstanceIdentifier<? extends DataObject> iid, DataObject dataObject){
55 testData.put(iid, dataObject);
59 public DataChangeListenerTester setRemovedPath(InstanceIdentifier<? extends DataObject> iid){
61 return addRemovedPath(iid);
64 public DataChangeListenerTester addRemovedPath(InstanceIdentifier<? extends DataObject> iid){
65 removedPaths.add(iid);
69 public void callOnDataChanged(){
70 listener.onDataChanged(changeMock);