Convert DataChangeListeners to DataTreeChangeListeners
[groupbasedpolicy.git] / neutron-ovsdb / src / test / java / org / opendaylight / groupbasedpolicy / neutron / ovsdb / TerminationPointDataChangeListenerTest.java
index b928eb5fa1d9d5be22d3201d483ff91545e3dc37..e6bb325724a29da5ef87face9e1ec3f7c6e82239 100644 (file)
@@ -9,31 +9,31 @@
 package org.opendaylight.groupbasedpolicy.neutron.ovsdb;
 
 import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 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.Map;
-import java.util.Set;
+import com.google.common.base.Optional;
+import com.google.common.util.concurrent.CheckedFuture;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.UUID;
-
 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.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.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
-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.common.api.data.ReadFailedException;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
 import org.opendaylight.ovsdb.southbound.SouthboundConstants;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L2BridgeDomainId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.EndpointService;
@@ -54,23 +54,18 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
-
 public class TerminationPointDataChangeListenerTest {
 
     private TerminationPointDataChangeListener listener;
 
     private DataBroker dataBroker;
     private EndpointService epService;
-    private ListenerRegistration<DataChangeListener> registration;
-    private AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change;
+    private ListenerRegistration<?> registration;
 
-    private Map<InstanceIdentifier<?>, DataObject> dataMap;
-    private Set<InstanceIdentifier<?>> dataSet;
+    private DataObjectModification<OvsdbTerminationPointAugmentation> mockModification;
+    private Collection<DataTreeModification<OvsdbTerminationPointAugmentation>> changeEvent;
     private Node node;
 
     private CheckedFuture<Optional<OvsdbBridgeAugmentation>, ReadFailedException> ovsdbBridgeFuture;
@@ -85,14 +80,12 @@ public class TerminationPointDataChangeListenerTest {
 
     @SuppressWarnings({"unchecked", "rawtypes"})
     @Before
-    public void initialise() throws Exception {
+    public void init() throws Exception {
         dataBroker = mock(DataBroker.class);
         epService = mock(EndpointService.class);
         registration = mock(ListenerRegistration.class);
-        when(
-                dataBroker.registerDataChangeListener(any(LogicalDatastoreType.class), any(InstanceIdentifier.class),
-                        any(DataChangeListener.class), any(DataChangeScope.class))).thenReturn(registration);
-        change = mock(AsyncDataChangeEvent.class);
+        when(dataBroker.registerDataTreeChangeListener(any(DataTreeIdentifier.class),
+                        any(DataTreeChangeListener.class))).thenReturn(registration);
 
         InstanceIdentifier<OvsdbTerminationPointAugmentation> ovsdbTpIid = InstanceIdentifier.create(
                 NetworkTopology.class)
@@ -103,14 +96,10 @@ public class TerminationPointDataChangeListenerTest {
         ovsdbTp = mock(OvsdbTerminationPointAugmentation.class);
         when(ovsdbTp.getInterfaceType()).thenReturn((Class) Object.class);
         InterfaceExternalIds externalId = mock(InterfaceExternalIds.class);
-        when(ovsdbTp.getInterfaceExternalIds()).thenReturn(Arrays.asList(externalId));
+        when(ovsdbTp.getInterfaceExternalIds()).thenReturn(Collections.singletonList(externalId));
         when(externalId.getExternalIdKey()).thenReturn("iface-id");
         when(externalId.getExternalIdValue()).thenReturn(UUID.randomUUID().toString());
 
-        dataMap = new HashMap<InstanceIdentifier<?>, DataObject>();
-        dataMap.put(ovsdbTpIid, ovsdbTp);
-        dataSet = new HashSet<InstanceIdentifier<?>>(Arrays.asList(ovsdbTpIid));
-
         readTransaction = mock(ReadOnlyTransaction.class);
         when(dataBroker.newReadOnlyTransaction()).thenReturn(readTransaction);
         readWriteTransaction = mock(ReadWriteTransaction.class);
@@ -178,18 +167,28 @@ public class TerminationPointDataChangeListenerTest {
         when(ofOverlayNodeConfigOptional.get()).thenReturn(ofOverlayNodeConfig);
 
         listener = new TerminationPointDataChangeListener(dataBroker, epService);
+
+        DataTreeModification<OvsdbTerminationPointAugmentation> mockDataTreeModification =
+                mock(DataTreeModification.class);
+        mockModification = mock(DataObjectModification.class);
+        doReturn(mockModification).when(mockDataTreeModification).getRootNode();
+        doReturn(new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL, ovsdbTpIid))
+                .when(mockDataTreeModification).getRootPath();
+        changeEvent = Collections.singletonList(mockDataTreeModification);
     }
 
     @Test
-    public void constructorTest() throws Exception {
+    public void testConstructor() throws Exception {
         listener.close();
         verify(registration).close();
     }
 
     @SuppressWarnings("unchecked")
     @Test
-    public void onDataChangedTestCreation() {
-        when(change.getCreatedData()).thenReturn(dataMap);
+    public void testOnDataChanged_Creation() {
+        doReturn(DataObjectModification.ModificationType.WRITE).when(mockModification).getModificationType();
+        doReturn(ovsdbTp).when(mockModification).getDataAfter();
+
         when(readTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(
                 ovsdbBridgeFuture)
             .thenReturn(endpointFuture)
@@ -198,26 +197,31 @@ public class TerminationPointDataChangeListenerTest {
         when(readWriteTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(
                 endpointByPortFuture).thenReturn(ofOverlayNodeConfigFuture);
 
-        listener.onDataChanged(change);
+        listener.onDataTreeChanged(changeEvent);
         verify(readWriteTransaction).submit();
     }
 
     @SuppressWarnings("unchecked")
     @Test
-    public void onDataChangedTestCreationExternalIdNull() {
-        when(change.getCreatedData()).thenReturn(dataMap);
+    public void testOnDataChanged_CreationExternalIdNull() {
+        doReturn(DataObjectModification.ModificationType.WRITE).when(mockModification).getModificationType();
+        doReturn(ovsdbTp).when(mockModification).getDataAfter();
+
         when(readTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(
                 ovsdbBridgeFuture).thenReturn(nodeFuture);
         when(ovsdbTp.getInterfaceExternalIds()).thenReturn(null);
 
-        listener.onDataChanged(change);
+        listener.onDataTreeChanged(changeEvent);
         verify(readWriteTransaction, never()).submit();
     }
 
     @SuppressWarnings("unchecked")
     @Test
-    public void onDataChangedTestUpdate() {
-        when(change.getUpdatedData()).thenReturn(dataMap);
+    public void testOnDataChanged_Update() {
+        doReturn(DataObjectModification.ModificationType.WRITE).when(mockModification).getModificationType();
+        doReturn(ovsdbTp).when(mockModification).getDataBefore();
+        doReturn(ovsdbTp).when(mockModification).getDataAfter();
+
         when(readTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(
                 ovsdbBridgeFuture)
             .thenReturn(endpointFuture)
@@ -225,21 +229,22 @@ public class TerminationPointDataChangeListenerTest {
         when(readWriteTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(
                 endpointByPortFuture).thenReturn(ofOverlayNodeConfigFuture);
 
-        listener.onDataChanged(change);
+        listener.onDataTreeChanged(changeEvent);
         verify(readWriteTransaction).submit();
     }
 
     @SuppressWarnings("unchecked")
     @Test
-    public void onDataChangedTestRemoval() {
-        when(change.getRemovedPaths()).thenReturn(dataSet);
-        when(change.getOriginalData()).thenReturn(dataMap);
+    public void testOnDataChanged_Removal() {
+        doReturn(DataObjectModification.ModificationType.DELETE).when(mockModification).getModificationType();
+        doReturn(ovsdbTp).when(mockModification).getDataBefore();
+
         when(readWriteTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(
                 endpointByPortFuture);
         when(readTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(
                 endpointFuture);
 
-        listener.onDataChanged(change);
+        listener.onDataTreeChanged(changeEvent);
         verify(readWriteTransaction).submit();
     }
 }