Update MRI projects for Aluminium
[openflowplugin.git] / applications / forwardingrules-sync / src / test / java / org / opendaylight / openflowplugin / applications / frsync / util / ReconcileUtilTest.java
index ca9c73d68abafe7678f65bcfb33aaa482fd3632a..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;
@@ -31,13 +31,14 @@ import org.mockito.ArgumentMatchers;
 import org.mockito.Captor;
 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}.
@@ -97,10 +99,7 @@ public class ReconcileUtilTest {
      */
     @Test
     public void testResolveAndDivideGroupDiffs1() {
-        final Map<Long, Group> installedGroups = new HashMap<>();
-        installedGroups.put(1L, createGroup(1L));
-        installedGroups.put(2L, createGroup(2L));
-        installedGroups.put(3L, createGroup(3L));
+        final Map<Uint32, Group> installedGroups = createGroups(1, 2, 3);
 
         final List<Group> pendingGroups = new ArrayList<>();
         pendingGroups.add(createGroup(2L));
@@ -123,8 +122,7 @@ public class ReconcileUtilTest {
      */
     @Test
     public void testResolveAndDivideGroupDiffs2() {
-        final Map<Long, Group> installedGroups = new HashMap<>();
-        installedGroups.put(1L, createGroup(1L));
+        final Map<Uint32, Group> installedGroups = createGroups(1);
 
         final List<Group> pendingGroups = new ArrayList<>();
         pendingGroups.add(createGroup(2L));
@@ -157,9 +155,9 @@ public class ReconcileUtilTest {
      */
     @Test
     public void testResolveAndDivideGroupDiffs3() {
-        final Map<Long, Group> installedGroups = new HashMap<>();
-        installedGroups.put(1L, createGroup(1L));
-        installedGroups.put(2L, createGroupWithPreconditions(2L, 1L));
+        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));
@@ -176,9 +174,7 @@ public class ReconcileUtilTest {
      */
     @Test
     public void testResolveAndDivideGroupDiffs4() {
-        final Map<Long, Group> installedGroups = new HashMap<>();
-        installedGroups.put(1L, createGroup(1L));
-        installedGroups.put(2L, createGroup(2L));
+        final Map<Uint32, Group> installedGroups = createGroups(1, 2);
 
         final List<Group> pendingGroups = new ArrayList<>();
         pendingGroups.add(createGroupWithPreconditions(1L, 2L));
@@ -201,9 +197,7 @@ public class ReconcileUtilTest {
      */
     @Test
     public void testResolveAndDivideGroupDiffs5() {
-        final Map<Long, Group> installedGroups = new HashMap<>();
-        installedGroups.put(1L, createGroup(1L));
-        installedGroups.put(2L, createGroup(2L));
+        final Map<Uint32, Group> installedGroups = createGroups(1, 2);
 
         final List<Group> pendingGroups = new ArrayList<>();
         pendingGroups.add(createGroupWithPreconditions(1L, 2L));
@@ -220,9 +214,7 @@ public class ReconcileUtilTest {
      */
     @Test
     public void testResolveAndDivideGroupDiffs_negative1() {
-        final Map<Long, Group> installedGroups = new HashMap<>();
-        installedGroups.put(1L, createGroup(1L));
-        installedGroups.put(2L, createGroup(2L));
+        final Map<Uint32, Group> installedGroups = createGroups(1, 2);
 
         final List<Group> pendingGroups = new ArrayList<>();
         pendingGroups.add(createGroupWithPreconditions(3L, 4L));
@@ -237,9 +229,7 @@ public class ReconcileUtilTest {
      */
     @Test
     public void testResolveAndDivideGroupDiffs_negative2() {
-        final Map<Long, Group> installedGroups = new HashMap<>();
-        installedGroups.put(1L, createGroup(1L));
-        installedGroups.put(2L, createGroup(2L));
+        final Map<Uint32, Group> installedGroups = createGroups(1, 2);
 
         final List<Group> pendingGroups = new ArrayList<>();
         pendingGroups.add(createGroupWithPreconditions(1L, 3L));
@@ -251,7 +241,7 @@ public class ReconcileUtilTest {
 
     @Test
     public void testCheckGroupPrecondition() {
-        final Set<Long> installedGroups = new HashSet<>(Arrays.asList(new Long[]{1L, 2L}));
+        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,7 +283,15 @@ 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.emptyList())
                 .build();