Convert DataChangeListeners to DataTreeChangeListeners
[groupbasedpolicy.git] / renderers / faas / src / test / java / org / opendaylight / groupbasedpolicy / renderer / faas / FaasContractManagerListenerTest.java
index ea345afa18cba1584cb0eb0b46bed4d5766aec26..3049fabc8540c2ac2920a9047bcb1d7d20e22b7c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2016 Huawei Technologies and others. All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -9,24 +9,21 @@ package org.opendaylight.groupbasedpolicy.renderer.faas;
 
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-
+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.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
 import org.opendaylight.faas.uln.datastore.api.UlnDatastoreApi;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Uuid;
@@ -41,25 +38,19 @@ import org.powermock.api.mockito.PowerMockito;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 
-import com.google.common.util.concurrent.CheckedFuture;
-
 @PrepareForTest(UlnDatastoreApi.class)
 @RunWith(PowerMockRunner.class)
 public class FaasContractManagerListenerTest {
 
     private InstanceIdentifier<DataObject> contractId;
-    private AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change;
     private MockFaasContractManagerListener contractManagerListener;
-    private final ScheduledExecutorService executor = Executors.newScheduledThreadPool(Runtime.getRuntime()
-        .availableProcessors());
-    private TenantId gbpTenantId = new TenantId("b4511aac-ae43-11e5-bf7f-feff819cdc9f");
-    private Uuid faasTenantId = new Uuid("b4511aac-ae43-11e5-bf7f-feff819cdc9f");
+    private final TenantId gbpTenantId = new TenantId("b4511aac-ae43-11e5-bf7f-feff819cdc9f");
+    private final Uuid faasTenantId = new Uuid("b4511aac-ae43-11e5-bf7f-feff819cdc9f");
 
     @SuppressWarnings("unchecked")
     @Before
     public void init() {
         contractId = mock(InstanceIdentifier.class);
-        change = mock(AsyncDataChangeEvent.class);
         contractId = mock(InstanceIdentifier.class);
         DataBroker dataProvider = mock(DataBroker.class);
         PowerMockito.mockStatic(UlnDatastoreApi.class);
@@ -67,13 +58,11 @@ public class FaasContractManagerListenerTest {
         when(dataProvider.newWriteOnlyTransaction()).thenReturn(writeTransaction);
         CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = mock(CheckedFuture.class);
         when(writeTransaction.submit()).thenReturn(checkedFuture);
-        contractManagerListener = new MockFaasContractManagerListener(dataProvider, gbpTenantId, faasTenantId, executor);
-
-        Set<InstanceIdentifier<?>> removedPaths = new HashSet<>();
-        removedPaths.add(contractId);
-        when(change.getRemovedPaths()).thenReturn(removedPaths);
+        contractManagerListener = new MockFaasContractManagerListener(dataProvider, gbpTenantId, faasTenantId,
+                MoreExecutors.directExecutor());
     }
 
+    @SuppressWarnings("unchecked")
     @Test
     public void testOnDataChangeContract() {
         // prepare input test data
@@ -83,30 +72,27 @@ public class FaasContractManagerListenerTest {
         } catch (Exception e) {
             fail("testOnDataChangeContract: Exception = " + e.toString());
         }
+
         Uuid expectedFaasSecId = new Uuid("c4511aac-ae43-11e5-bf7f-feff819cdc9f");
         contractManagerListener.setExpectedFaasSecId(expectedFaasSecId);
-        DataObject testContract = makeTestContract();
-        contractManagerListener.setExpectedContract((Contract) testContract);
-        Map<InstanceIdentifier<?>, DataObject> testData = new HashMap<>();
-        testData.put(contractId, testContract);
-        when(change.getCreatedData()).thenReturn(testData);
-        when(change.getOriginalData()).thenReturn(testData);
-        when(change.getUpdatedData()).thenReturn(testData);
+        Contract testContract = makeTestContract();
+        contractManagerListener.setExpectedContract(testContract);
+
+        DataTreeModification<Contract> mockDataTreeModification = mock(DataTreeModification.class);
+        DataObjectModification<Contract> mockModification = mock(DataObjectModification.class);
+        doReturn(mockModification).when(mockDataTreeModification).getRootNode();
+        doReturn(DataObjectModification.ModificationType.WRITE).when(mockModification).getModificationType();
+        doReturn(testContract).when(mockModification).getDataAfter();
+
         // invoke event -- expected data is verified in mocked classes
-        contractManagerListener.onDataChanged(change);
-        // make sure internal threads have completed
-        try {
-            executor.shutdown();
-            executor.awaitTermination(10, TimeUnit.SECONDS);
-        } catch (InterruptedException e) {
-            fail("testOnDataChangeSubnet: Exception = " + e.toString());
-        }
+        contractManagerListener.onDataTreeChanged(Collections.singletonList(mockDataTreeModification));
+
         // Verify passed in values to fabric mapping engine
         assertTrue("testOnDataChangeContract: Actual Faas Security Id is NOT as expected",
                 expectedFaasSecId.equals(captor.getValue().getUuid()));
     }
 
-    private DataObject makeTestContract() {
+    private Contract makeTestContract() {
         ContractBuilder builder = new ContractBuilder();
         builder.setId(new ContractId("b4511aac-ae43-11e5-bf7f-feff819cdc9f"));
         return builder.build();