Convert DataChangeListeners to DataTreeChangeListeners
[groupbasedpolicy.git] / renderers / ofoverlay / src / test / java / org / opendaylight / groupbasedpolicy / renderer / ofoverlay / SfcManagerTest.java
index 94640a9b8c0c965a2957b5e096945c872a0edffe..689561b39ce4593bbb2860074ff46b66d8feda65 100644 (file)
@@ -9,66 +9,55 @@
 package org.opendaylight.groupbasedpolicy.renderer.ofoverlay;
 
 import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.concurrent.ExecutorService;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-import org.opendaylight.groupbasedpolicy.resolver.PolicyResolver;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ActionInstance;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ActionInstance;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 public class SfcManagerTest {
 
     private SfcManager manager;
 
     private DataBroker dataBroker;
-    private PolicyResolver policyResolver;
     private RpcProviderRegistry rpcRegistry;
     private ExecutorService executor;
-    private ListenerRegistration<DataChangeListener> actionListener;
+    private ListenerRegistration<?> actionListener;
 
-    private AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> actionInstanceNotification;
-    private InstanceIdentifier<DataObject> pathIdentifier;
+    private DataObjectModification<ActionInstance> mockModification;
+    private Collection<DataTreeModification<ActionInstance>> changeEvent;
     private ActionInstance dataObject;
-    private HashMap<InstanceIdentifier<?>, DataObject> dataMap;
-    private Set<InstanceIdentifier<?>> dataSet;
 
     @SuppressWarnings("unchecked")
     @Before
     public void initialise() {
         dataBroker = mock(DataBroker.class);
-        policyResolver = mock(PolicyResolver.class);
         rpcRegistry = mock(RpcProviderRegistry.class);
         executor = mock(ExecutorService.class);
         actionListener = mock(ListenerRegistration.class);
-        actionInstanceNotification = mock(AsyncDataChangeEvent.class);
-        pathIdentifier = mock(InstanceIdentifier.class);
         dataObject = mock(ActionInstance.class);
 
-        when(
-                dataBroker.registerDataChangeListener(any(LogicalDatastoreType.class), any(InstanceIdentifier.class),
-                        any(DataChangeListener.class), any(DataChangeScope.class))).thenReturn(actionListener);
-        dataMap = new HashMap<InstanceIdentifier<?>, DataObject>();
-        dataMap.put(pathIdentifier, dataObject);
-        dataSet = new HashSet<InstanceIdentifier<?>>(Arrays.asList(pathIdentifier));
+        doReturn(actionListener).when(dataBroker).registerDataTreeChangeListener(
+                any(DataTreeIdentifier.class), any(DataTreeChangeListener.class));
+
+        manager = new SfcManager(dataBroker, rpcRegistry, executor);
 
-        manager = new SfcManager(dataBroker, policyResolver, rpcRegistry, executor);
+        DataTreeModification<ActionInstance> mockDataTreeModification = mock(DataTreeModification.class);
+        mockModification = mock(DataObjectModification.class);
+        doReturn(mockModification).when(mockDataTreeModification).getRootNode();
+        changeEvent = Collections.singletonList(mockDataTreeModification);
     }
 
     @Test
@@ -79,24 +68,29 @@ public class SfcManagerTest {
 
     @Test
     public void onDataChangedTestAdd() {
-        when(actionInstanceNotification.getCreatedData()).thenReturn(dataMap);
-        manager.onDataChanged(actionInstanceNotification);
+        doReturn(DataObjectModification.ModificationType.WRITE).when(mockModification).getModificationType();
+        doReturn(dataObject).when(mockModification).getDataAfter();
+
+        manager.onDataTreeChanged(changeEvent);
         verify(executor).execute(any(Runnable.class));
     }
 
     @Test
     public void onDataChangedTestDelete() {
-        when(actionInstanceNotification.getRemovedPaths()).thenReturn(dataSet);
-        when(actionInstanceNotification.getOriginalData()).thenReturn(dataMap);
-        manager.onDataChanged(actionInstanceNotification);
+        doReturn(DataObjectModification.ModificationType.DELETE).when(mockModification).getModificationType();
+        doReturn(dataObject).when(mockModification).getDataBefore();
+
+        manager.onDataTreeChanged(changeEvent);
         verify(executor).execute(any(Runnable.class));
     }
 
     @Test
     public void onDataChangedTestChange() {
-        when(actionInstanceNotification.getOriginalData()).thenReturn(dataMap);
-        when(actionInstanceNotification.getUpdatedData()).thenReturn(dataMap);
-        manager.onDataChanged(actionInstanceNotification);
+        doReturn(DataObjectModification.ModificationType.SUBTREE_MODIFIED).when(mockModification).getModificationType();
+        doReturn(dataObject).when(mockModification).getDataBefore();
+        doReturn(dataObject).when(mockModification).getDataAfter();
+
+        manager.onDataTreeChanged(changeEvent);
         verify(executor).execute(any(Runnable.class));
     }
 }