Decompose RPC implementation classes
[openflowplugin.git] / openflowplugin-impl / src / test / java / org / opendaylight / openflowplugin / impl / services / sal / SalFlowsBatchServiceImplTest.java
index 5825acd5a007d9803b9866cade4a94779ef297da..41ddafa01277de08587ec892720a67e707f8febd 100644 (file)
@@ -5,52 +5,48 @@
  * 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.impl.services.sal;
 
-import java.util.Iterator;
-import java.util.List;
-import java.util.concurrent.Future;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
 import org.junit.After;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
-import org.mockito.ArgumentMatchers;
 import org.mockito.Captor;
-import org.mockito.InOrder;
 import org.mockito.Mock;
-import org.mockito.Mockito;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlow;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlowOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlow;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlowInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlowOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlowOutputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlow;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlowInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlowOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlowOutputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.FlowCapableTransactionService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.SendBarrier;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.SendBarrierOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.AddFlowsBatchInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.AddFlowsBatchInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.AddFlowsBatchOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.RemoveFlowsBatchInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.RemoveFlowsBatchInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.RemoveFlowsBatchOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.UpdateFlowsBatchInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.UpdateFlowsBatchInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.UpdateFlowsBatchOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.add.flows.batch.input.BatchAddFlows;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.add.flows.batch.input.BatchAddFlowsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.batch.flow.input.update.grouping.OriginalBatchedFlowBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.batch.flow.input.update.grouping.UpdatedBatchedFlowBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.batch.flow.output.list.grouping.BatchFailedFlowsOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.remove.flows.batch.input.BatchRemoveFlows;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.remove.flows.batch.input.BatchRemoveFlowsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flows.service.rev160314.update.flows.batch.input.BatchUpdateFlows;
@@ -63,30 +59,30 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.N
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.util.BindingMap;
 import org.opendaylight.yangtools.yang.common.ErrorType;
-import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 import org.opendaylight.yangtools.yang.common.Uint16;
 import org.opendaylight.yangtools.yang.common.Uint8;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Test for {@link org.opendaylight.openflowplugin.impl.services.sal.SalFlowsBatchServiceImpl}.
  */
 @RunWith(MockitoJUnitRunner.class)
 public class SalFlowsBatchServiceImplTest {
-
-    private static final Logger LOG = LoggerFactory.getLogger(SalFlowsBatchServiceImplTest.class);
-
     public static final NodeId NODE_ID = new NodeId("ut-dummy-node");
     public static final NodeKey NODE_KEY = new NodeKey(NODE_ID);
-    public static final NodeRef NODE_REF =
-            new NodeRef(InstanceIdentifier.create(Nodes.class).child(Node.class, NODE_KEY));
+    public static final NodeRef NODE_REF = new NodeRef(
+        InstanceIdentifier.create(Nodes.class).child(Node.class, NODE_KEY));
+    public static final String FLOW_ID_VALUE_1 = "ut-dummy-flow1";
+    public static final String FLOW_ID_VALUE_2 = "ut-dummy-flow2";
 
     @Mock
-    private SalFlowService salFlowService;
+    private AddFlow addFlow;
     @Mock
-    private FlowCapableTransactionService transactionService;
+    private RemoveFlow removeFlow;
+    @Mock
+    private UpdateFlow updateFlow;
+    @Mock
+    private SendBarrier sendBarrier;
     @Captor
     private ArgumentCaptor<RemoveFlowInput> removeFlowInputCpt;
     @Captor
@@ -94,95 +90,96 @@ public class SalFlowsBatchServiceImplTest {
     @Captor
     private ArgumentCaptor<AddFlowInput> addFlowInputCpt;
 
-    private SalFlowsBatchServiceImpl salFlowsBatchService;
-    public static final String FLOW_ID_VALUE_1 = "ut-dummy-flow1";
-    public static final String FLOW_ID_VALUE_2 = "ut-dummy-flow2";
+    private AddFlowsBatchImpl addFlowsBatch;
+    private RemoveFlowsBatchImpl removeFlowsBatch;
+    private UpdateFlowsBatchImpl updateFlowsBatch;
 
     @Before
     public void setUp() {
-        salFlowsBatchService = new SalFlowsBatchServiceImpl(salFlowService, transactionService);
+        addFlowsBatch =  new AddFlowsBatchImpl(addFlow, sendBarrier);
+        removeFlowsBatch =  new RemoveFlowsBatchImpl(removeFlow, sendBarrier);
+        updateFlowsBatch =  new UpdateFlowsBatchImpl(updateFlow, sendBarrier);
 
-        Mockito.when(transactionService.sendBarrier(ArgumentMatchers.any()))
-                .thenReturn(RpcResultBuilder.<SendBarrierOutput>success().buildFuture());
+        when(sendBarrier.invoke(any())).thenReturn(RpcResultBuilder.<SendBarrierOutput>success().buildFuture());
     }
 
     @After
     public void tearDown() {
-        Mockito.verifyNoMoreInteractions(salFlowService, transactionService);
+        verifyNoMoreInteractions(addFlow, removeFlow, updateFlow, sendBarrier);
     }
 
     @Test
     public void testRemoveFlowsBatch_success() throws Exception {
-        Mockito.when(salFlowService.removeFlow(ArgumentMatchers.any()))
+        when(removeFlow.invoke(any()))
                 .thenReturn(RpcResultBuilder.success(new RemoveFlowOutputBuilder().build())
                         .buildFuture());
 
-        final String flow1IdValue = "ut-dummy-flow1";
-        final String flow2IdValue = "ut-dummy-flow2";
-        final BatchRemoveFlows batchFlow1 = createEmptyBatchRemoveFlow(flow1IdValue, 42);
-        final BatchRemoveFlows batchFlow2 = createEmptyBatchRemoveFlow(flow2IdValue, 43);
+        final var flow1IdValue = "ut-dummy-flow1";
+        final var flow2IdValue = "ut-dummy-flow2";
+        final var batchFlow1 = createEmptyBatchRemoveFlow(flow1IdValue, 42);
+        final var batchFlow2 = createEmptyBatchRemoveFlow(flow2IdValue, 43);
 
-        final RemoveFlowsBatchInput input = new RemoveFlowsBatchInputBuilder()
+        final var input = new RemoveFlowsBatchInputBuilder()
                 .setNode(NODE_REF)
                 .setBarrierAfter(true)
                 .setBatchRemoveFlows(BindingMap.ordered(batchFlow1, batchFlow2))
                 .build();
 
-        final Future<RpcResult<RemoveFlowsBatchOutput>> resultFuture = salFlowsBatchService.removeFlowsBatch(input);
+        final var resultFuture = removeFlowsBatch.invoke(input);
 
-        Assert.assertTrue(resultFuture.isDone());
-        final RpcResult<RemoveFlowsBatchOutput> rpcResult = resultFuture.get();
-        Assert.assertTrue(rpcResult.isSuccessful());
-        final RemoveFlowsBatchOutput result = rpcResult.getResult();
-        Assert.assertEquals(0, result.nonnullBatchFailedFlowsOutput().size());
+        assertTrue(resultFuture.isDone());
+        final var rpcResult = resultFuture.get();
+        assertTrue(rpcResult.isSuccessful());
+        final var result = rpcResult.getResult();
+        assertEquals(0, result.nonnullBatchFailedFlowsOutput().size());
 
-        final InOrder inOrder = Mockito.inOrder(salFlowService, transactionService);
+        final var inOrder = inOrder(removeFlow, sendBarrier);
 
-        inOrder.verify(salFlowService, Mockito.times(2)).removeFlow(removeFlowInputCpt.capture());
-        final List<RemoveFlowInput> allValues = removeFlowInputCpt.getAllValues();
-        Assert.assertEquals(2, allValues.size());
-        Assert.assertEquals(42, allValues.get(0).getPriority().longValue());
-        Assert.assertEquals(43, allValues.get(1).getPriority().longValue());
+        inOrder.verify(removeFlow, times(2)).invoke(removeFlowInputCpt.capture());
+        final var allValues = removeFlowInputCpt.getAllValues();
+        assertEquals(2, allValues.size());
+        assertEquals(42, allValues.get(0).getPriority().longValue());
+        assertEquals(43, allValues.get(1).getPriority().longValue());
 
-        inOrder.verify(transactionService).sendBarrier(ArgumentMatchers.any());
+        inOrder.verify(sendBarrier).invoke(any());
     }
 
     @Test
     public void testRemoveFlowsBatch_failed() throws Exception {
-        Mockito.when(salFlowService.removeFlow(ArgumentMatchers.any()))
+        when(removeFlow.invoke(any()))
                 .thenReturn(RpcResultBuilder.<RemoveFlowOutput>failed()
                         .withError(ErrorType.APPLICATION, "flow-remove-fail-1")
                         .buildFuture());
 
-        final BatchRemoveFlows batchFlow1 = createEmptyBatchRemoveFlow(FLOW_ID_VALUE_1, 42);
-        final BatchRemoveFlows batchFlow2 = createEmptyBatchRemoveFlow(FLOW_ID_VALUE_2, 43);
+        final var batchFlow1 = createEmptyBatchRemoveFlow(FLOW_ID_VALUE_1, 42);
+        final var batchFlow2 = createEmptyBatchRemoveFlow(FLOW_ID_VALUE_2, 43);
 
-        final RemoveFlowsBatchInput input = new RemoveFlowsBatchInputBuilder()
+        final var input = new RemoveFlowsBatchInputBuilder()
                 .setNode(NODE_REF)
                 .setBarrierAfter(true)
                 .setBatchRemoveFlows(BindingMap.ordered(batchFlow1, batchFlow2))
                 .build();
 
-        final Future<RpcResult<RemoveFlowsBatchOutput>> resultFuture = salFlowsBatchService.removeFlowsBatch(input);
+        final var resultFuture = removeFlowsBatch.invoke(input);
 
-        Assert.assertTrue(resultFuture.isDone());
-        final RpcResult<RemoveFlowsBatchOutput> rpcResult = resultFuture.get();
-        Assert.assertFalse(rpcResult.isSuccessful());
-        final RemoveFlowsBatchOutput result = rpcResult.getResult();
-        Iterator<BatchFailedFlowsOutput> iterator = result.nonnullBatchFailedFlowsOutput().values().iterator();
-        Assert.assertEquals(2, result.nonnullBatchFailedFlowsOutput().size());
-        Assert.assertEquals(FLOW_ID_VALUE_1, iterator.next().getFlowId().getValue());
-        Assert.assertEquals(FLOW_ID_VALUE_2, iterator.next().getFlowId().getValue());
+        assertTrue(resultFuture.isDone());
+        final var rpcResult = resultFuture.get();
+        assertFalse(rpcResult.isSuccessful());
+        final var result = rpcResult.getResult();
+        var iterator = result.nonnullBatchFailedFlowsOutput().values().iterator();
+        assertEquals(2, result.nonnullBatchFailedFlowsOutput().size());
+        assertEquals(FLOW_ID_VALUE_1, iterator.next().getFlowId().getValue());
+        assertEquals(FLOW_ID_VALUE_2, iterator.next().getFlowId().getValue());
 
-        final InOrder inOrder = Mockito.inOrder(salFlowService, transactionService);
+        final var inOrder = inOrder(removeFlow, sendBarrier);
 
-        inOrder.verify(salFlowService, Mockito.times(2)).removeFlow(removeFlowInputCpt.capture());
-        final List<RemoveFlowInput> allValues = removeFlowInputCpt.getAllValues();
-        Assert.assertEquals(2, allValues.size());
-        Assert.assertEquals(42, allValues.get(0).getPriority().longValue());
-        Assert.assertEquals(43, allValues.get(1).getPriority().longValue());
+        inOrder.verify(removeFlow, times(2)).invoke(removeFlowInputCpt.capture());
+        final var allValues = removeFlowInputCpt.getAllValues();
+        assertEquals(2, allValues.size());
+        assertEquals(42, allValues.get(0).getPriority().longValue());
+        assertEquals(43, allValues.get(1).getPriority().longValue());
 
-        inOrder.verify(transactionService).sendBarrier(ArgumentMatchers.any());
+        inOrder.verify(sendBarrier).invoke(any());
     }
 
     private static BatchAddFlows createEmptyBatchAddFlow(final String flowIdValue, final int priority) {
@@ -204,8 +201,8 @@ public class SalFlowsBatchServiceImplTest {
     }
 
     private static BatchUpdateFlows createEmptyBatchUpdateFlow(final String flowIdValue, final int priority) {
-        final BatchAddFlows emptyOriginalFlow = createEmptyBatchAddFlow(flowIdValue, priority);
-        final BatchAddFlows emptyUpdatedFlow = createEmptyBatchAddFlow(flowIdValue, priority + 1);
+        final var emptyOriginalFlow = createEmptyBatchAddFlow(flowIdValue, priority);
+        final var emptyUpdatedFlow = createEmptyBatchAddFlow(flowIdValue, priority + 1);
         return new BatchUpdateFlowsBuilder()
                 .setFlowId(new FlowId(flowIdValue))
                 .setOriginalBatchedFlow(new OriginalBatchedFlowBuilder(emptyOriginalFlow).build())
@@ -215,10 +212,10 @@ public class SalFlowsBatchServiceImplTest {
 
     @Test
     public void testAddFlowsBatch_success() throws Exception {
-        Mockito.when(salFlowService.addFlow(ArgumentMatchers.any()))
+        when(addFlow.invoke(any()))
                 .thenReturn(RpcResultBuilder.success(new AddFlowOutputBuilder().build()).buildFuture());
 
-        final AddFlowsBatchInput input = new AddFlowsBatchInputBuilder()
+        final var input = new AddFlowsBatchInputBuilder()
                 .setNode(NODE_REF)
                 .setBarrierAfter(true)
                 .setBatchAddFlows(BindingMap.ordered(
@@ -226,30 +223,30 @@ public class SalFlowsBatchServiceImplTest {
                         createEmptyBatchAddFlow("ut-dummy-flow2", 43)))
                 .build();
 
-        final Future<RpcResult<AddFlowsBatchOutput>> resultFuture = salFlowsBatchService.addFlowsBatch(input);
+        final var resultFuture = addFlowsBatch.invoke(input);
 
-        Assert.assertTrue(resultFuture.isDone());
-        Assert.assertTrue(resultFuture.get().isSuccessful());
+        assertTrue(resultFuture.isDone());
+        assertTrue(resultFuture.get().isSuccessful());
 
-        final InOrder inOrder = Mockito.inOrder(salFlowService, transactionService);
+        final var inOrder = inOrder(addFlow, sendBarrier);
 
-        inOrder.verify(salFlowService, Mockito.times(2)).addFlow(addFlowInputCpt.capture());
-        final List<AddFlowInput> allValues = addFlowInputCpt.getAllValues();
-        Assert.assertEquals(2, allValues.size());
-        Assert.assertEquals(42, allValues.get(0).getPriority().longValue());
-        Assert.assertEquals(43, allValues.get(1).getPriority().longValue());
+        inOrder.verify(addFlow, times(2)).invoke(addFlowInputCpt.capture());
+        final var allValues = addFlowInputCpt.getAllValues();
+        assertEquals(2, allValues.size());
+        assertEquals(42, allValues.get(0).getPriority().longValue());
+        assertEquals(43, allValues.get(1).getPriority().longValue());
 
-        inOrder.verify(transactionService).sendBarrier(ArgumentMatchers.any());
+        inOrder.verify(sendBarrier).invoke(any());
     }
 
     @Test
     public void testAddFlowsBatch_failed() throws Exception {
-        Mockito.when(salFlowService.addFlow(ArgumentMatchers.any()))
+        when(addFlow.invoke(any()))
                 .thenReturn(RpcResultBuilder
                         .<AddFlowOutput>failed().withError(ErrorType.APPLICATION, "ut-groupAddError")
                         .buildFuture());
 
-        final AddFlowsBatchInput input = new AddFlowsBatchInputBuilder()
+        final var input = new AddFlowsBatchInputBuilder()
                 .setNode(NODE_REF)
                 .setBarrierAfter(true)
                 .setBatchAddFlows(BindingMap.ordered(
@@ -257,34 +254,36 @@ public class SalFlowsBatchServiceImplTest {
                         createEmptyBatchAddFlow(FLOW_ID_VALUE_2, 43)))
                 .build();
 
-        final Future<RpcResult<AddFlowsBatchOutput>> resultFuture = salFlowsBatchService.addFlowsBatch(input);
-        Iterator<BatchFailedFlowsOutput> iterator = resultFuture.get().getResult().nonnullBatchFailedFlowsOutput()
-                .values().iterator();
+        final var resultFuture = addFlowsBatch.invoke(input);
+
+        assertTrue(resultFuture.isDone());
+
+        final var result = resultFuture.get();
+        assertFalse(result.isSuccessful());
+        assertEquals(2, result.getResult().nonnullBatchFailedFlowsOutput().size());
 
-        Assert.assertTrue(resultFuture.isDone());
-        Assert.assertFalse(resultFuture.get().isSuccessful());
-        Assert.assertEquals(2, resultFuture.get().getResult().nonnullBatchFailedFlowsOutput().size());
-        Assert.assertEquals(FLOW_ID_VALUE_1, iterator.next().getFlowId().getValue());
-        Assert.assertEquals(FLOW_ID_VALUE_2, iterator.next().getFlowId().getValue());
-        Assert.assertEquals(2, resultFuture.get().getErrors().size());
+        final var iterator = result.getResult().nonnullBatchFailedFlowsOutput().values().iterator();
+        assertEquals(FLOW_ID_VALUE_1, iterator.next().getFlowId().getValue());
+        assertEquals(FLOW_ID_VALUE_2, iterator.next().getFlowId().getValue());
+        assertEquals(2, resultFuture.get().getErrors().size());
 
-        final InOrder inOrder = Mockito.inOrder(salFlowService, transactionService);
+        final var inOrder = inOrder(addFlow, sendBarrier);
 
-        inOrder.verify(salFlowService, Mockito.times(2)).addFlow(addFlowInputCpt.capture());
-        final List<AddFlowInput> allValues = addFlowInputCpt.getAllValues();
-        Assert.assertEquals(2, allValues.size());
-        Assert.assertEquals(42, allValues.get(0).getPriority().longValue());
-        Assert.assertEquals(43, allValues.get(1).getPriority().longValue());
+        inOrder.verify(addFlow, times(2)).invoke(addFlowInputCpt.capture());
+        final var allValues = addFlowInputCpt.getAllValues();
+        assertEquals(2, allValues.size());
+        assertEquals(42, allValues.get(0).getPriority().longValue());
+        assertEquals(43, allValues.get(1).getPriority().longValue());
 
-        inOrder.verify(transactionService).sendBarrier(ArgumentMatchers.any());
+        inOrder.verify(sendBarrier).invoke(any());
     }
 
     @Test
     public void testUpdateFlowsBatch_success() throws Exception {
-        Mockito.when(salFlowService.updateFlow(ArgumentMatchers.any()))
+        when(updateFlow.invoke(any()))
                 .thenReturn(RpcResultBuilder.success(new UpdateFlowOutputBuilder().build()).buildFuture());
 
-        final UpdateFlowsBatchInput input = new UpdateFlowsBatchInputBuilder()
+        final var input = new UpdateFlowsBatchInputBuilder()
                 .setNode(NODE_REF)
                 .setBarrierAfter(true)
                 .setBatchUpdateFlows(BindingMap.ordered(
@@ -292,32 +291,32 @@ public class SalFlowsBatchServiceImplTest {
                         createEmptyBatchUpdateFlow(FLOW_ID_VALUE_2, 44)))
                 .build();
 
-        final Future<RpcResult<UpdateFlowsBatchOutput>> resultFuture = salFlowsBatchService.updateFlowsBatch(input);
+        final var resultFuture = updateFlowsBatch.invoke(input);
 
-        Assert.assertTrue(resultFuture.isDone());
-        Assert.assertTrue(resultFuture.get().isSuccessful());
+        assertTrue(resultFuture.isDone());
+        assertTrue(resultFuture.get().isSuccessful());
 
-        final InOrder inOrder = Mockito.inOrder(salFlowService, transactionService);
+        final var inOrder = inOrder(updateFlow, sendBarrier);
 
-        inOrder.verify(salFlowService, Mockito.times(2)).updateFlow(updateFlowInputCpt.capture());
-        final List<UpdateFlowInput> allValues = updateFlowInputCpt.getAllValues();
-        Assert.assertEquals(2, allValues.size());
-        Assert.assertEquals(42, allValues.get(0).getOriginalFlow().getPriority().longValue());
-        Assert.assertEquals(43, allValues.get(0).getUpdatedFlow().getPriority().longValue());
-        Assert.assertEquals(44, allValues.get(1).getOriginalFlow().getPriority().longValue());
-        Assert.assertEquals(45, allValues.get(1).getUpdatedFlow().getPriority().longValue());
+        inOrder.verify(updateFlow, times(2)).invoke(updateFlowInputCpt.capture());
+        final var allValues = updateFlowInputCpt.getAllValues();
+        assertEquals(2, allValues.size());
+        assertEquals(42, allValues.get(0).getOriginalFlow().getPriority().longValue());
+        assertEquals(43, allValues.get(0).getUpdatedFlow().getPriority().longValue());
+        assertEquals(44, allValues.get(1).getOriginalFlow().getPriority().longValue());
+        assertEquals(45, allValues.get(1).getUpdatedFlow().getPriority().longValue());
 
-        inOrder.verify(transactionService).sendBarrier(ArgumentMatchers.any());
+        inOrder.verify(sendBarrier).invoke(any());
     }
 
     @Test
     public void testUpdateFlowsBatch_failure() throws Exception {
-        Mockito.when(salFlowService.updateFlow(ArgumentMatchers.any()))
+        when(updateFlow.invoke(any()))
                 .thenReturn(RpcResultBuilder.<UpdateFlowOutput>failed()
                         .withError(ErrorType.APPLICATION, "ut-flowUpdateError")
                         .buildFuture());
 
-        final UpdateFlowsBatchInput input = new UpdateFlowsBatchInputBuilder()
+        final var input = new UpdateFlowsBatchInputBuilder()
                 .setNode(NODE_REF)
                 .setBarrierAfter(true)
                 .setBatchUpdateFlows(BindingMap.ordered(
@@ -325,27 +324,25 @@ public class SalFlowsBatchServiceImplTest {
                         createEmptyBatchUpdateFlow(FLOW_ID_VALUE_2, 44)))
                 .build();
 
-        final Future<RpcResult<UpdateFlowsBatchOutput>> resultFuture = salFlowsBatchService.updateFlowsBatch(input);
-        Iterator<BatchFailedFlowsOutput> iterator = resultFuture.get().getResult().nonnullBatchFailedFlowsOutput()
-                .values().iterator();
-
-        Assert.assertTrue(resultFuture.isDone());
-        Assert.assertFalse(resultFuture.get().isSuccessful());
-        Assert.assertFalse(resultFuture.get().isSuccessful());
-        Assert.assertEquals(2, resultFuture.get().getResult().nonnullBatchFailedFlowsOutput().size());
-        Assert.assertEquals(FLOW_ID_VALUE_1, iterator.next().getFlowId().getValue());
-        Assert.assertEquals(FLOW_ID_VALUE_2, iterator.next().getFlowId().getValue());
-        Assert.assertEquals(2, resultFuture.get().getErrors().size());
-
-        final InOrder inOrder = Mockito.inOrder(salFlowService, transactionService);
-        inOrder.verify(salFlowService, Mockito.times(2)).updateFlow(updateFlowInputCpt.capture());
-        final List<UpdateFlowInput> allValues = updateFlowInputCpt.getAllValues();
-        Assert.assertEquals(2, allValues.size());
-        Assert.assertEquals(42, allValues.get(0).getOriginalFlow().getPriority().longValue());
-        Assert.assertEquals(43, allValues.get(0).getUpdatedFlow().getPriority().longValue());
-        Assert.assertEquals(44, allValues.get(1).getOriginalFlow().getPriority().longValue());
-        Assert.assertEquals(45, allValues.get(1).getUpdatedFlow().getPriority().longValue());
-
-        inOrder.verify(transactionService).sendBarrier(ArgumentMatchers.any());
+        final var resultFuture = updateFlowsBatch.invoke(input);
+        assertTrue(resultFuture.isDone());
+        final var result = resultFuture.get();
+        assertFalse(result.isSuccessful());
+        assertEquals(2, result.getResult().nonnullBatchFailedFlowsOutput().size());
+        final var iterator = resultFuture.get().getResult().nonnullBatchFailedFlowsOutput().values().iterator();
+        assertEquals(FLOW_ID_VALUE_1, iterator.next().getFlowId().getValue());
+        assertEquals(FLOW_ID_VALUE_2, iterator.next().getFlowId().getValue());
+        assertEquals(2, resultFuture.get().getErrors().size());
+
+        final var inOrder = inOrder(updateFlow, sendBarrier);
+        inOrder.verify(updateFlow, times(2)).invoke(updateFlowInputCpt.capture());
+        final var allValues = updateFlowInputCpt.getAllValues();
+        assertEquals(2, allValues.size());
+        assertEquals(42, allValues.get(0).getOriginalFlow().getPriority().longValue());
+        assertEquals(43, allValues.get(0).getUpdatedFlow().getPriority().longValue());
+        assertEquals(44, allValues.get(1).getOriginalFlow().getPriority().longValue());
+        assertEquals(45, allValues.get(1).getUpdatedFlow().getPriority().longValue());
+
+        inOrder.verify(sendBarrier).invoke(any());
     }
 }