MD-SAL API integration
[ovsdb.git] / southbound / southbound-impl / src / test / java / org / opendaylight / ovsdb / southbound / transactions / md / OvsdbControllerUpdateCommandTest.java
index a0b5b934163aa170b7d58d655d384065191426df..f7af37ed265b93ffe9e8e443404ce3960f205e65 100644 (file)
@@ -9,8 +9,9 @@
 package org.opendaylight.ovsdb.southbound.transactions.md;
 
 import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -19,13 +20,13 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-
+import java.util.Optional;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
-import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.ovsdb.lib.message.TableUpdates;
 import org.opendaylight.ovsdb.lib.notation.Column;
 import org.opendaylight.ovsdb.lib.notation.UUID;
@@ -36,7 +37,7 @@ import org.opendaylight.ovsdb.schema.openvswitch.Controller;
 import org.opendaylight.ovsdb.southbound.OvsdbConnectionInstance;
 import org.opendaylight.ovsdb.southbound.SouthboundMapper;
 import org.opendaylight.ovsdb.southbound.SouthboundUtil;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Uri;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeRef;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.ControllerEntry;
@@ -55,21 +56,19 @@ import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 import org.powermock.reflect.Whitebox;
 
-import com.google.common.base.Optional;
-
-@PrepareForTest({OvsdbControllerUpdateCommand.class, SouthboundMapper.class, SouthboundUtil.class, InstanceIdentifier.class})
 @RunWith(PowerMockRunner.class)
+@PrepareForTest({ OvsdbControllerUpdateCommand.class, SouthboundMapper.class, SouthboundUtil.class,
+        InstanceIdentifier.class })
 public class OvsdbControllerUpdateCommandTest {
-    private Map<UUID, Controller> updatedControllerRows;
-    private Map<UUID, Bridge> updatedBridgeRows;
-    private OvsdbControllerUpdateCommand ovsdbControllerUpdateCommand;
-
     private static final String BRIDGE_NAME = "br-int";
     private static final String NODE_ID = "OF|00:00:00:0c:29:70:45:9b";
 
+    private OvsdbControllerUpdateCommand ovsdbControllerUpdateCommand;
+
     @Before
     public void setUp() {
-        ovsdbControllerUpdateCommand = PowerMockito.mock(OvsdbControllerUpdateCommand.class, Mockito.CALLS_REAL_METHODS);
+        ovsdbControllerUpdateCommand = PowerMockito.mock(OvsdbControllerUpdateCommand.class,
+                Mockito.CALLS_REAL_METHODS);
     }
 
     @Test
@@ -77,7 +76,8 @@ public class OvsdbControllerUpdateCommandTest {
         OvsdbConnectionInstance key = mock(OvsdbConnectionInstance.class);
         TableUpdates updates = mock(TableUpdates.class);
         DatabaseSchema dbSchema = mock(DatabaseSchema.class);
-        OvsdbControllerUpdateCommand ovsdbControllerUpdateCommand1 = new OvsdbControllerUpdateCommand(key, updates, dbSchema);
+        OvsdbControllerUpdateCommand ovsdbControllerUpdateCommand1 = new OvsdbControllerUpdateCommand(key, updates,
+                dbSchema);
         assertEquals(key, Whitebox.getInternalState(ovsdbControllerUpdateCommand1, "key"));
         assertEquals(updates, Whitebox.getInternalState(ovsdbControllerUpdateCommand1, "updates"));
         assertEquals(dbSchema, Whitebox.getInternalState(ovsdbControllerUpdateCommand1, "dbSchema"));
@@ -85,45 +85,53 @@ public class OvsdbControllerUpdateCommandTest {
 
     @Test
     public void testExecute() throws Exception {
-        ReadWriteTransaction transaction = mock(ReadWriteTransaction.class);
-        updatedControllerRows = new HashMap<UUID, Controller>();
+        Map<UUID, Controller> updatedControllerRows = new HashMap<>();
         updatedControllerRows.put(mock(UUID.class), mock(Controller.class));
-        MemberModifier.field(OvsdbControllerUpdateCommand.class, "updatedControllerRows").set(ovsdbControllerUpdateCommand, updatedControllerRows);
-        MemberModifier.suppress(MemberMatcher.method(OvsdbControllerUpdateCommand.class, "updateController", ReadWriteTransaction.class, Map.class, Map.class));
-        MemberModifier.suppress(MemberMatcher.method(OvsdbControllerUpdateCommand.class, "updateController", ReadWriteTransaction.class, Map.class));
-
-        //updatedBridgeRows null case
+        MemberModifier.field(OvsdbControllerUpdateCommand.class, "updatedControllerRows")
+                .set(ovsdbControllerUpdateCommand, updatedControllerRows);
+        MemberModifier.suppress(MemberMatcher.method(OvsdbControllerUpdateCommand.class, "updateController",
+                ReadWriteTransaction.class, Map.class, Map.class));
+        MemberModifier.suppress(MemberMatcher.method(OvsdbControllerUpdateCommand.class, "updateController",
+                ReadWriteTransaction.class, Map.class));
+
+        // updatedBridgeRows null case
+        ReadWriteTransaction transaction = mock(ReadWriteTransaction.class);
         ovsdbControllerUpdateCommand.execute(transaction);
-        PowerMockito.verifyPrivate(ovsdbControllerUpdateCommand).invoke("updateController", any(ReadWriteTransaction.class), any(Map.class));
+        verify(ovsdbControllerUpdateCommand).updateController(any(ReadWriteTransaction.class), any(Map.class));
 
-        //updatedBridgeRows not null case
-        updatedBridgeRows = new HashMap<UUID, Bridge>();
+        // updatedBridgeRows not null case
+        Map<UUID, Bridge> updatedBridgeRows = new HashMap<>();
         updatedBridgeRows.put(mock(UUID.class), mock(Bridge.class));
-        MemberModifier.field(OvsdbControllerUpdateCommand.class, "updatedBridgeRows").set(ovsdbControllerUpdateCommand, updatedBridgeRows);
+        MemberModifier.field(OvsdbControllerUpdateCommand.class, "updatedBridgeRows").set(ovsdbControllerUpdateCommand,
+                updatedBridgeRows);
     }
 
     @SuppressWarnings("unchecked")
     @Test
     public void testUpdateController1() throws Exception {
-        ReadWriteTransaction transaction = mock(ReadWriteTransaction.class);
-        Map<UUID, Controller> updatedControllerRows = new HashMap<>();
         Map<UUID, Bridge> updatedBridgeRows = new HashMap<>();
         Bridge bridge = mock(Bridge.class);
         updatedBridgeRows.put(mock(UUID.class), bridge);
 
         PowerMockito.mockStatic(SouthboundMapper.class);
-        List<ControllerEntry> controllerEntries = new ArrayList<ControllerEntry>();
+        List<ControllerEntry> controllerEntries = new ArrayList<>();
         controllerEntries.add(mock(ControllerEntry.class));
         when(SouthboundMapper.createControllerEntries(any(Bridge.class), any(Map.class))).thenReturn(controllerEntries);
         Column<GenericTableSchema, String> column = mock(Column.class);
         when(bridge.getNameColumn()).thenReturn(column);
         when(column.getData()).thenReturn(BRIDGE_NAME);
 
-        //suppress call to getControllerEntryIid()
-        MemberModifier.suppress(MemberMatcher.method(OvsdbControllerUpdateCommand.class, "getControllerEntryIid", ControllerEntry.class, String.class));
-        doNothing().when(transaction).merge(any(LogicalDatastoreType.class), any(InstanceIdentifier.class), any(ControllerEntry.class));
-        Whitebox.invokeMethod(ovsdbControllerUpdateCommand, "updateController", transaction, updatedControllerRows, updatedBridgeRows);
-        verify(transaction).merge(any(LogicalDatastoreType.class), any(InstanceIdentifier.class), any(ControllerEntry.class));
+        // suppress call to getControllerEntryIid()
+        ReadWriteTransaction transaction = mock(ReadWriteTransaction.class);
+        Map<UUID, Controller> updatedControllerRows = new HashMap<>();
+        doReturn(mock(InstanceIdentifier.class)).when(ovsdbControllerUpdateCommand).getControllerEntryIid(
+                any(ControllerEntry.class), any(String.class));
+        doNothing().when(transaction).merge(any(LogicalDatastoreType.class), any(InstanceIdentifier.class),
+                any(ControllerEntry.class));
+        Whitebox.invokeMethod(ovsdbControllerUpdateCommand, "updateController", transaction, updatedControllerRows,
+                updatedBridgeRows);
+        verify(transaction).merge(any(LogicalDatastoreType.class), any(InstanceIdentifier.class),
+                any(ControllerEntry.class));
         verify(bridge).getNameColumn();
     }
 
@@ -136,30 +144,28 @@ public class OvsdbControllerUpdateCommandTest {
         Node node = mock(Node.class);
         InstanceIdentifier<Node> bridgeIid = mock(InstanceIdentifier.class);
         bridgeNodes.put(bridgeIid, node);
-        PowerMockito.doReturn(bridgeNodes).when(ovsdbControllerUpdateCommand, "getBridgeNodes", any(ReadWriteTransaction.class));
+        PowerMockito.doReturn(bridgeNodes).when(ovsdbControllerUpdateCommand, "getBridgeNodes",
+                any(ReadWriteTransaction.class));
 
         Whitebox.invokeMethod(ovsdbControllerUpdateCommand, "updateController", transaction, updatedControllerRows);
-        PowerMockito.verifyPrivate(ovsdbControllerUpdateCommand).invoke("getBridgeNodes", any(ReadWriteTransaction.class));
+        PowerMockito.verifyPrivate(ovsdbControllerUpdateCommand).invoke("getBridgeNodes",
+                any(ReadWriteTransaction.class));
     }
 
     @SuppressWarnings("unchecked")
     @Test
     public void testGetBridgeNodes() throws Exception {
-        ReadWriteTransaction transaction = mock(ReadWriteTransaction.class);
-
-        Map<InstanceIdentifier<Node>, Node> testBridgeNodes = new HashMap<>();
         OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class);
         when(ovsdbControllerUpdateCommand.getOvsdbConnectionInstance()).thenReturn(ovsdbConnectionInstance);
         InstanceIdentifier<Node> connectionIId = mock(InstanceIdentifier.class);
         when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn(connectionIId);
         PowerMockito.mockStatic(SouthboundUtil.class);
-        Optional<Node> ovsdbNode = mock(Optional.class);
-        when(SouthboundUtil.readNode(transaction, connectionIId)).thenReturn(ovsdbNode);
-        when(ovsdbNode.isPresent()).thenReturn(true);
+        ReadWriteTransaction transaction = mock(ReadWriteTransaction.class);
         Node node = mock(Node.class);
-        when(ovsdbNode.get()).thenReturn(node);
+        Optional<Node> ovsdbNode = Optional.of(node);
+        when(SouthboundUtil.readNode(transaction, connectionIId)).thenReturn(ovsdbNode);
         OvsdbNodeAugmentation ovsdbNodeAugmentation = mock(OvsdbNodeAugmentation.class);
-        when(node.getAugmentation(OvsdbNodeAugmentation.class)).thenReturn(ovsdbNodeAugmentation);
+        when(node.augmentation(OvsdbNodeAugmentation.class)).thenReturn(ovsdbNodeAugmentation);
 
         List<ManagedNodeEntry> managedNodeEntries = new ArrayList<>();
         ManagedNodeEntry managedNodeEntry = mock(ManagedNodeEntry.class);
@@ -169,15 +175,15 @@ public class OvsdbControllerUpdateCommandTest {
         OvsdbBridgeRef ovsdbBridgeRef = mock(OvsdbBridgeRef.class);
         when(managedNodeEntry.getBridgeRef()).thenReturn(ovsdbBridgeRef);
         when((InstanceIdentifier<Node>) ovsdbBridgeRef.getValue()).thenReturn(bridgeIid);
-        Optional<Node> bridgeNode = mock(Optional.class);
+        Optional<Node> bridgeNode = Optional.of(node);
         when(SouthboundUtil.readNode(transaction, bridgeIid)).thenReturn(bridgeNode);
-        when(bridgeNode.isPresent()).thenReturn(true);
-        when(bridgeNode.get()).thenReturn(node);
 
+        Map<InstanceIdentifier<Node>, Node> testBridgeNodes = new HashMap<>();
         testBridgeNodes.put(bridgeIid, node);
 
         //verify if getBridgeNodes() returns expected value
-        assertEquals(testBridgeNodes, Whitebox.invokeMethod(ovsdbControllerUpdateCommand, "getBridgeNodes", transaction));
+        assertEquals(testBridgeNodes,
+                Whitebox.invokeMethod(ovsdbControllerUpdateCommand, "getBridgeNodes", transaction));
     }
 
     @Test
@@ -195,7 +201,9 @@ public class OvsdbControllerUpdateCommandTest {
         PowerMockito.whenNew(NodeKey.class).withAnyArguments().thenReturn(nodeKey);
         PowerMockito.whenNew(TopologyKey.class).withAnyArguments().thenReturn(mock(TopologyKey.class));
         //PowerMockito.suppress(MemberMatcher.methodsDeclaredIn(InstanceIdentifier.class));
-        when(controllerEntry.getKey()).thenReturn(mock(ControllerEntryKey.class));
-        assertEquals(KeyedInstanceIdentifier.class, (Whitebox.invokeMethod(ovsdbControllerUpdateCommand, "getControllerEntryIid", controllerEntry, BRIDGE_NAME).getClass()));
+        when(controllerEntry.key()).thenReturn(mock(ControllerEntryKey.class));
+        assertEquals(KeyedInstanceIdentifier.class, Whitebox
+                .invokeMethod(ovsdbControllerUpdateCommand, "getControllerEntryIid", controllerEntry, BRIDGE_NAME)
+                .getClass());
     }
 }