Convert DataChangeListeners to DataTreeChangeListeners
[groupbasedpolicy.git] / renderers / faas / src / test / java / org / opendaylight / groupbasedpolicy / renderer / faas / FaasTenantManagerListenerCovrgTest.java
index 020c700b8426f14b351e80fd334c5dc8eaefc026..2219c7e4d6ec7247d3cb4cc0cd670249f5761803 100644 (file)
@@ -7,67 +7,51 @@
  */
 package org.opendaylight.groupbasedpolicy.renderer.faas;
 
-import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
 
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.MoreExecutors;
+import java.util.Collections;
 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.WriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.groupbasedpolicy.renderer.faas.test.DataChangeListenerTester;
+import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Uuid;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.Tenant;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.TenantBuilder;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 public class FaasTenantManagerListenerCovrgTest {
 
-    private InstanceIdentifier<Tenant> tenantIid;
-    private FaasPolicyManager faasPolicyManager;
+    private final FaasPolicyManager faasPolicyManager = mock(FaasPolicyManager.class);
     private FaasTenantManagerListener listener;
-    private TenantId gbpTenantId = new TenantId("gbpTenantId");
-    private Uuid faasTenantId = new Uuid("b4511aac-ae43-11e5-bf7f-feff819cdc9f");
-    private final ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
-    private DataChangeListenerTester tester;
-    private DataBroker dataProvider;
+    private final TenantId gbpTenantId = new TenantId("gbpTenantId");
+    private final Uuid faasTenantId = new Uuid("b4511aac-ae43-11e5-bf7f-feff819cdc9f");
 
-    @SuppressWarnings("unchecked")
     @Before
     public void init() {
-        dataProvider = mock(DataBroker.class);
-        WriteTransaction wTx = mock(WriteTransaction.class);
-        CheckedFuture<Void, TransactionCommitFailedException> futureVoid = mock(CheckedFuture.class);
-        when(wTx.submit()).thenReturn(futureVoid);
-        doNothing().when(wTx).put(any(LogicalDatastoreType.class), any(InstanceIdentifier.class),
-                any(DataObject.class));
-        when(dataProvider.newWriteOnlyTransaction()).thenReturn(wTx);
-
-        tenantIid = mock(InstanceIdentifier.class);
-        faasPolicyManager = spy(new FaasPolicyManager(dataProvider, executor));
         doNothing().when(faasPolicyManager).removeTenantLogicalNetwork(gbpTenantId, faasTenantId);
-        listener = new FaasTenantManagerListener(faasPolicyManager, gbpTenantId, faasTenantId, executor);
-        tester = new DataChangeListenerTester(listener);
-        tester.setRemovedPath(tenantIid);
+        listener = new FaasTenantManagerListener(faasPolicyManager, gbpTenantId, faasTenantId,
+                MoreExecutors.directExecutor());
 
     }
 
+    @SuppressWarnings("unchecked")
     @Test
-    public void testOnDataChanged() {
+    public void testOnDataTreeChanged() {
         Tenant tenant = new TenantBuilder().setId(gbpTenantId).build();
-        tester.setDataObject(tenantIid, tenant);
-        tester.callOnDataChanged();
-        listener.executeEvent(tester.getChangeMock());
+
+        DataTreeModification<Tenant> mockDataTreeModification = mock(DataTreeModification.class);
+        DataObjectModification<Tenant> mockModification = mock(DataObjectModification.class);
+        doReturn(mockModification).when(mockDataTreeModification).getRootNode();
+        doReturn(DataObjectModification.ModificationType.DELETE).when(mockModification).getModificationType();
+        doReturn(tenant).when(mockModification).getDataBefore();
+
+        listener.onDataTreeChanged(Collections.singletonList(mockDataTreeModification));
+
+        verify(faasPolicyManager).removeTenantLogicalNetwork(gbpTenantId, faasTenantId);
     }
 
 }