Update MRI projects for Aluminium
[openflowplugin.git] / applications / forwardingrules-sync / src / test / java / org / opendaylight / openflowplugin / applications / frsync / util / ReconcileUtilTest.java
index 379eb257b88379f24631f93fe79f3dab2ff06cb7..a4cd934b7439e7e5693957640b37b5ecb220a96b 100644 (file)
@@ -1,14 +1,14 @@
-/**
+/*
  * Copyright (c) 2016 Cisco Systems, Inc. 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
  */
-
 package org.opendaylight.openflowplugin.applications.frsync.util;
 
 import com.google.common.base.Splitter;
+import com.google.common.collect.Maps;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
@@ -27,17 +27,18 @@ import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
+import org.mockito.ArgumentMatchers;
 import org.mockito.Captor;
-import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
+import org.mockito.junit.MockitoJUnitRunner;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.group.action._case.GroupAction;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.group.action._case.GroupActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.FlowCapableTransactionService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.SendBarrierInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.SendBarrierOutput;
@@ -55,6 +56,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.N
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint32;
 
 /**
  * Test for {@link ReconcileUtil}.
@@ -83,11 +85,11 @@ public class ReconcileUtilTest {
         Mockito.when(flowCapableService.sendBarrier(barrierInputCaptor.capture()))
                 .thenReturn(RpcResultBuilder.<SendBarrierOutput>success().buildFuture());
 
-        Mockito.verify(flowCapableService, Mockito.never()).sendBarrier(Matchers.<SendBarrierInput>any());
+        Mockito.verify(flowCapableService, Mockito.never()).sendBarrier(ArgumentMatchers.any());
         Assert.assertFalse(vehicle.isDone());
 
         testRabbit.set(RpcResultBuilder.<Void>success().build());
-        Mockito.verify(flowCapableService).sendBarrier(Matchers.<SendBarrierInput>any());
+        Mockito.verify(flowCapableService).sendBarrier(ArgumentMatchers.any());
         Assert.assertTrue(vehicle.isDone());
         Assert.assertTrue(vehicle.get().isSuccessful());
     }
@@ -96,11 +98,8 @@ public class ReconcileUtilTest {
      * add one missing group.
      */
     @Test
-    public void testResolveAndDivideGroupDiffs1() throws Exception {
-        final Map<Long, Group> installedGroups = new HashMap<>();
-        installedGroups.put(1L, createGroup(1L));
-        installedGroups.put(2L, createGroup(2L));
-        installedGroups.put(3L, createGroup(3L));
+    public void testResolveAndDivideGroupDiffs1() {
+        final Map<Uint32, Group> installedGroups = createGroups(1, 2, 3);
 
         final List<Group> pendingGroups = new ArrayList<>();
         pendingGroups.add(createGroup(2L));
@@ -122,9 +121,8 @@ public class ReconcileUtilTest {
      * add 3 groups with dependencies - 3 steps involved.
      */
     @Test
-    public void testResolveAndDivideGroupDiffs2() throws Exception {
-        final Map<Long, Group> installedGroups = new HashMap<>();
-        installedGroups.put(1L, createGroup(1L));
+    public void testResolveAndDivideGroupDiffs2() {
+        final Map<Uint32, Group> installedGroups = createGroups(1);
 
         final List<Group> pendingGroups = new ArrayList<>();
         pendingGroups.add(createGroup(2L));
@@ -156,10 +154,10 @@ public class ReconcileUtilTest {
      * no actions taken - installed and pending groups are the same.
      */
     @Test
-    public void testResolveAndDivideGroupDiffs3() throws Exception {
-        final Map<Long, Group> installedGroups = new HashMap<>();
-        installedGroups.put(1L, createGroup(1L));
-        installedGroups.put(2L, createGroupWithPreconditions(2L, 1L));
+    public void testResolveAndDivideGroupDiffs3() {
+        final Map<Uint32, Group> installedGroups = new HashMap<>();
+        installedGroups.put(Uint32.ONE, createGroup(1L));
+        installedGroups.put(Uint32.valueOf(2), createGroupWithPreconditions(2L, 1L));
 
         final List<Group> pendingGroups = new ArrayList<>();
         pendingGroups.add(createGroup(1L));
@@ -175,10 +173,8 @@ public class ReconcileUtilTest {
      * update 1 group.
      */
     @Test
-    public void testResolveAndDivideGroupDiffs4() throws Exception {
-        final Map<Long, Group> installedGroups = new HashMap<>();
-        installedGroups.put(1L, createGroup(1L));
-        installedGroups.put(2L, createGroup(2L));
+    public void testResolveAndDivideGroupDiffs4() {
+        final Map<Uint32, Group> installedGroups = createGroups(1, 2);
 
         final List<Group> pendingGroups = new ArrayList<>();
         pendingGroups.add(createGroupWithPreconditions(1L, 2L));
@@ -200,10 +196,8 @@ public class ReconcileUtilTest {
      * no action taken - update 1 group will be ignored.
      */
     @Test
-    public void testResolveAndDivideGroupDiffs5() throws Exception {
-        final Map<Long, Group> installedGroups = new HashMap<>();
-        installedGroups.put(1L, createGroup(1L));
-        installedGroups.put(2L, createGroup(2L));
+    public void testResolveAndDivideGroupDiffs5() {
+        final Map<Uint32, Group> installedGroups = createGroups(1, 2);
 
         final List<Group> pendingGroups = new ArrayList<>();
         pendingGroups.add(createGroupWithPreconditions(1L, 2L));
@@ -219,10 +213,8 @@ public class ReconcileUtilTest {
      * should add 1 group but preconditions are not met.
      */
     @Test
-    public void testResolveAndDivideGroupDiffs_negative1() throws Exception {
-        final Map<Long, Group> installedGroups = new HashMap<>();
-        installedGroups.put(1L, createGroup(1L));
-        installedGroups.put(2L, createGroup(2L));
+    public void testResolveAndDivideGroupDiffs_negative1() {
+        final Map<Uint32, Group> installedGroups = createGroups(1, 2);
 
         final List<Group> pendingGroups = new ArrayList<>();
         pendingGroups.add(createGroupWithPreconditions(3L, 4L));
@@ -236,10 +228,8 @@ public class ReconcileUtilTest {
      * should update 1 group but preconditions are not met.
      */
     @Test
-    public void testResolveAndDivideGroupDiffs_negative2() throws Exception {
-        final Map<Long, Group> installedGroups = new HashMap<>();
-        installedGroups.put(1L, createGroup(1L));
-        installedGroups.put(2L, createGroup(2L));
+    public void testResolveAndDivideGroupDiffs_negative2() {
+        final Map<Uint32, Group> installedGroups = createGroups(1, 2);
 
         final List<Group> pendingGroups = new ArrayList<>();
         pendingGroups.add(createGroupWithPreconditions(1L, 3L));
@@ -250,8 +240,8 @@ public class ReconcileUtilTest {
     }
 
     @Test
-    public void testCheckGroupPrecondition() throws Exception {
-        final Set<Long> installedGroups = new HashSet<>(Arrays.asList(new Long[]{1L, 2L}));
+    public void testCheckGroupPrecondition() {
+        final Set<Uint32> installedGroups = new HashSet<>(Arrays.asList(Uint32.ONE, Uint32.valueOf(2)));
 
         final Group pendingGroup1 = createGroupWithPreconditions(3L, 2L, 4L);
         Assert.assertFalse(ReconcileUtil.checkGroupPrecondition(installedGroups, pendingGroup1));
@@ -263,8 +253,9 @@ public class ReconcileUtilTest {
         Assert.assertTrue(ReconcileUtil.checkGroupPrecondition(installedGroups, pendingGroup3));
     }
 
-    private Group createGroupWithPreconditions(final long groupIdValue, final long... requiredId) {
+    private static Group createGroupWithPreconditions(final long groupIdValue, final long... requiredId) {
         final List<Action> actionBag = new ArrayList<>();
+        int key = 0;
         for (long groupIdPrecondition : requiredId) {
             final GroupAction groupAction = new GroupActionBuilder()
                     .setGroupId(groupIdPrecondition)
@@ -274,6 +265,7 @@ public class ReconcileUtilTest {
                     .build();
             final Action action = new ActionBuilder()
                     .setAction(groupActionCase)
+                    .withKey(new ActionKey(key++))
                     .build();
             actionBag.add(action);
         }
@@ -291,9 +283,17 @@ public class ReconcileUtilTest {
                 .build();
     }
 
-    private Group createGroup(final long groupIdValue) {
+    private static Map<Uint32, Group> createGroups(long... groupIds) {
+        final Map<Uint32, Group> ret = Maps.newHashMapWithExpectedSize(groupIds.length);
+        for (long groupId : groupIds) {
+            ret.put(Uint32.valueOf(groupId), createGroup(groupId));
+        }
+        return ret;
+    }
+
+    private static Group createGroup(final long groupIdValue) {
         final Buckets buckets = new BucketsBuilder()
-                .setBucket(Collections.<Bucket>emptyList())
+                .setBucket(Collections.emptyList())
                 .build();
         return new GroupBuilder()
                 .setGroupId(new GroupId(groupIdValue))
@@ -305,7 +305,7 @@ public class ReconcileUtilTest {
      * covers {@link ReconcileUtil#countTotalUpdated(Iterable)} too.
      */
     @Test
-    public void testCountTotalAdds() throws Exception {
+    public void testCountTotalAdds() {
         List<ItemSyncBox<String>> syncPlan = new ArrayList<>();
         ItemSyncBox<String> syncBox1 = createSyncBox("a,b", "x,y,z");
         syncPlan.add(syncBox1);