/**
- * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
+ * Copyright (c) 2016, 2017 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,
import com.google.common.base.Optional;
import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
import java.util.ArrayList;
import java.util.List;
-import java.util.concurrent.Future;
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.Matchers;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import org.opendaylight.yang.gen.v1.urn.opendaylight.bulk.flow.service.rev150608.FlowRpcAddMultipleInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.bulk.flow.service.rev150608.FlowRpcAddTestInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.bulk.flow.service.rev150608.FlowRpcAddTestInputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.bulk.flow.service.rev150608.FlowRpcAddTestOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.bulk.flow.service.rev150608.FlowTestInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.bulk.flow.service.rev150608.FlowTestInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.bulk.flow.service.rev150608.ReadFlowTestInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.bulk.flow.service.rev150608.ReadFlowTestInputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.bulk.flow.service.rev150608.ReadFlowTestOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.bulk.flow.service.rev150608.RemoveFlowsDsInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.bulk.flow.service.rev150608.RemoveFlowsDsInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.bulk.flow.service.rev150608.RemoveFlowsRpcInput;
@Mock
private SalFlowService mockSalFlowService;
@Mock
- private WriteTransaction wTx;
+ private WriteTransaction writeTransaction;
@Mock
- private ReadOnlyTransaction rTx;
+ private ReadOnlyTransaction readOnlyTransaction;
@Mock
private Nodes mockNodes;
@Mock
@Before
public void setUp() throws Exception {
- when(mockDataBroker.newWriteOnlyTransaction()).thenReturn(wTx);
- when(mockDataBroker.newReadOnlyTransaction()).thenReturn(rTx);
- when(rTx.read(Mockito.any(LogicalDatastoreType.class), Mockito.<InstanceIdentifier<Node>>any()))
+ when(mockDataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
+ when(mockDataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
+ Mockito.lenient().when(readOnlyTransaction.read(Mockito.any(LogicalDatastoreType.class),
+ Mockito.<InstanceIdentifier<Node>>any()))
.thenReturn(Futures.immediateCheckedFuture(Optional.of(mockNode)));
salBulkFlowService = new SalBulkFlowServiceImpl(mockSalFlowService, mockDataBroker);
}
@Test
public void testAddRemoveFlowsDs() throws Exception {
- Mockito.when(wTx.submit()).thenReturn(Futures.immediateCheckedFuture(null));
+ Mockito.when(writeTransaction.submit()).thenReturn(Futures.immediateCheckedFuture(null));
- final BulkFlowDsItemBuilder bulkFlowDsItemBuilder = new BulkFlowDsItemBuilder()
- .setFlowId(new FlowId("1"))
- .setTableId((short)2);
+ final BulkFlowDsItemBuilder bulkFlowDsItemBuilder = new BulkFlowDsItemBuilder().setFlowId(new FlowId("1"))
+ .setTableId((short) 2);
final InstanceIdentifier<Node> nodeId = BulkOMaticUtils.getFlowCapableNodeId("1");
bulkFlowDsItemBuilder.setNode(new NodeRef(nodeId));
final AddFlowsDsInput addFlowsDsInput = addFlowsDsInputBuilder.build();
salBulkFlowService.addFlowsDs(addFlowsDsInput);
- verify(wTx).submit();
- verify(wTx).put(Matchers.<LogicalDatastoreType>any(), Matchers.<InstanceIdentifier<Flow>>any(), flowArgumentCaptor.capture(), Mockito.anyBoolean());
+ verify(writeTransaction).submit();
+ verify(writeTransaction).put(ArgumentMatchers.<LogicalDatastoreType>any(),
+ ArgumentMatchers.<InstanceIdentifier<Flow>>any(),
+ flowArgumentCaptor.capture(), Mockito.anyBoolean());
Flow flow = flowArgumentCaptor.getValue();
Assert.assertEquals("1", flow.getId().getValue());
final RemoveFlowsDsInput removeFlowsDsInput = removeFlowsDsInputBuilder.build();
salBulkFlowService.removeFlowsDs(removeFlowsDsInput);
- verify(wTx).delete(Matchers.<LogicalDatastoreType>any(), Matchers.<InstanceIdentifier<Flow>>any());
- verify(wTx,times(2)).submit();
+ verify(writeTransaction).delete(ArgumentMatchers.<LogicalDatastoreType>any(),
+ ArgumentMatchers.<InstanceIdentifier<Flow>>any());
+ verify(writeTransaction, times(2)).submit();
}
@Test
public void testAddRemoveFlowsRpc() throws Exception {
- Mockito.when(mockSalFlowService.addFlow(Matchers.<AddFlowInput>any()))
+ Mockito.when(mockSalFlowService.addFlow(ArgumentMatchers.<AddFlowInput>any()))
.thenReturn(RpcResultBuilder.success(new AddFlowOutputBuilder().build()).buildFuture());
- Mockito.when(mockSalFlowService.removeFlow(Matchers.<RemoveFlowInput>any()))
+ Mockito.when(mockSalFlowService.removeFlow(ArgumentMatchers.<RemoveFlowInput>any()))
.thenReturn(RpcResultBuilder.success(new RemoveFlowOutputBuilder().build()).buildFuture());
final BulkFlowItemBuilder bulkFlowItemBuilder = new BulkFlowItemBuilder();
final AddFlowsRpcInput addFlowsRpcInput = addFlowsRpcInputBuilder.build();
salBulkFlowService.addFlowsRpc(addFlowsRpcInput);
- verify(mockSalFlowService).addFlow(Matchers.<AddFlowInput>any());
+ verify(mockSalFlowService).addFlow(ArgumentMatchers.<AddFlowInput>any());
final RemoveFlowsRpcInputBuilder removeFlowsRpcInputBuilder = new RemoveFlowsRpcInputBuilder();
removeFlowsRpcInputBuilder.setBulkFlowItem(bulkFlowItems);
final RemoveFlowsRpcInput removeFlowsRpcInput = removeFlowsRpcInputBuilder.build();
salBulkFlowService.removeFlowsRpc(removeFlowsRpcInput);
- verify(mockSalFlowService).removeFlow(Matchers.<RemoveFlowInput>any());
+ verify(mockSalFlowService).removeFlow(ArgumentMatchers.<RemoveFlowInput>any());
}
@Test
public void testReadFlowTest() throws Exception {
- final ReadFlowTestInputBuilder readFlowTestInputBuilder = new ReadFlowTestInputBuilder()
- .setDpnCount(1L)
- .setStartTableId(1L)
- .setEndTableId(2L)
- .setIsConfigDs(false)
- .setFlowsPerDpn(1L)
- .setVerbose(true);
+ final ReadFlowTestInputBuilder readFlowTestInputBuilder = new ReadFlowTestInputBuilder().setDpnCount(1L)
+ .setStartTableId(1L).setEndTableId(2L).setIsConfigDs(false).setFlowsPerDpn(1L).setVerbose(true);
final ReadFlowTestInput readFlowTestInput = readFlowTestInputBuilder.build();
- final Future<RpcResult<Void>> resultFuture = salBulkFlowService.readFlowTest(readFlowTestInput);
+ final ListenableFuture<RpcResult<ReadFlowTestOutput>> resultFuture
+ = salBulkFlowService.readFlowTest(readFlowTestInput);
Assert.assertTrue(resultFuture.get().isSuccessful());
}
@Test
public void testFlowRpcAddTest() throws Exception {
- when(rTx.read(Mockito.any(LogicalDatastoreType.class), Mockito.<InstanceIdentifier<Nodes>>any()))
- .thenReturn(Futures.immediateCheckedFuture(Optional.of(mockNodes)));
+ when(readOnlyTransaction.read(Mockito.any(LogicalDatastoreType.class),
+ Mockito.<InstanceIdentifier<Nodes>>any()))
+ .thenReturn(Futures.immediateCheckedFuture(Optional.of(mockNodes)));
- final FlowRpcAddTestInputBuilder flowRpcAddTestInputBuilder = new FlowRpcAddTestInputBuilder()
- .setFlowCount(1L)
- .setDpnId("1")
- .setRpcBatchSize(1L);
+ final FlowRpcAddTestInputBuilder flowRpcAddTestInputBuilder = new FlowRpcAddTestInputBuilder().setFlowCount(1L)
+ .setDpnId("1").setRpcBatchSize(1L);
final FlowRpcAddTestInput flowRpcAddTestInput = flowRpcAddTestInputBuilder.build();
- final Future<RpcResult<Void>> resultFuture = salBulkFlowService.flowRpcAddTest(flowRpcAddTestInput);
+ final ListenableFuture<RpcResult<FlowRpcAddTestOutput>> resultFuture
+ = salBulkFlowService.flowRpcAddTest(flowRpcAddTestInput);
Assert.assertTrue(resultFuture.get().isSuccessful());
}
@Test
public void testFlowTest() throws Exception {
- final FlowTestInputBuilder flowTestInputBuilder = new FlowTestInputBuilder()
- .setBatchSize(1L)
- .setDpnCount(1L)
- .setEndTableId(2L)
- .setFlowsPerDpn(1L)
- .setIsAdd(true)
- .setSeq(true)
- .setSleepAfter(20L)
- .setSleepFor(1L)
- .setStartTableId(1L)
- .setTxChain(true)
- .setCreateParents(true);
+ final FlowTestInputBuilder flowTestInputBuilder = new FlowTestInputBuilder().setBatchSize(1L).setDpnCount(1L)
+ .setEndTableId(2L).setFlowsPerDpn(1L).setIsAdd(true).setSeq(true).setSleepAfter(20L).setSleepFor(1L)
+ .setStartTableId(1L).setTxChain(true).setCreateParents(true);
FlowTestInput flowTestInput = flowTestInputBuilder.build();
@Test
public void testFlowRpcAddMultiple() throws Exception {
- when(rTx.read(Mockito.any(LogicalDatastoreType.class), Mockito.<InstanceIdentifier<Nodes>>any()))
- .thenReturn(Futures.immediateCheckedFuture(Optional.of(mockNodes)));
+ when(readOnlyTransaction.read(Mockito.any(LogicalDatastoreType.class),
+ Mockito.<InstanceIdentifier<Nodes>>any()))
+ .thenReturn(Futures.immediateCheckedFuture(Optional.of(mockNodes)));
final FlowRpcAddMultipleInputBuilder flowRpcAddMultipleInputBuilder = new FlowRpcAddMultipleInputBuilder()
- .setFlowCount(1L)
- .setRpcBatchSize(1L);
+ .setFlowCount(1L).setRpcBatchSize(1L);
final FlowRpcAddMultipleInput flowRpcAddMultipleInput = flowRpcAddMultipleInputBuilder.build();
@Test
public void testTableTest() throws Exception {
- final TableTestInputBuilder tableTestInputBuilder = new TableTestInputBuilder()
- .setStartTableId(0L)
- .setEndTableId(99L)
- .setDpnCount(1L)
- .setOperation(Operation.Add);
+ final TableTestInputBuilder tableTestInputBuilder = new TableTestInputBuilder().setStartTableId(0L)
+ .setEndTableId(99L).setDpnCount(1L).setOperation(Operation.Add);
TableTestInput tableTestInput = tableTestInputBuilder.build();
Assert.assertTrue(salBulkFlowService.tableTest(tableTestInput).get().isSuccessful());
}
-}
\ No newline at end of file
+}