Fix deprecation warnings around addAugmentation()
[ovsdb.git] / southbound / southbound-impl / src / test / java / org / opendaylight / ovsdb / southbound / transactions / md / OvsdbBridgeUpdateCommandTest.java
index 000f8985980eeaabd7443d4224bc3d39c459d29b..d00400ba6ca4f049d183bfbea75e22798b444179 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 Inocybe Technologies and others.  All rights reserved.
+ * Copyright © 2015, 2017 Inocybe Technologies 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,
@@ -9,35 +9,32 @@
 package org.opendaylight.ovsdb.southbound.transactions.md;
 
 import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import com.google.common.base.Optional;
+import com.google.common.collect.Iterators;
 import com.google.common.net.InetAddresses;
-import java.net.InetAddress;
 import java.net.NetworkInterface;
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
-import org.apache.commons.lang3.math.NumberUtils;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
-import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
-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;
@@ -46,12 +43,10 @@ import org.opendaylight.ovsdb.lib.schema.GenericTableSchema;
 import org.opendaylight.ovsdb.lib.schema.typed.TyperUtils;
 import org.opendaylight.ovsdb.schema.openvswitch.Bridge;
 import org.opendaylight.ovsdb.schema.openvswitch.Controller;
+import org.opendaylight.ovsdb.southbound.InstanceIdentifierCodec;
 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.rev130715.IpAddress;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathId;
@@ -87,17 +82,22 @@ import org.powermock.reflect.Whitebox;
 
 @RunWith(PowerMockRunner.class)
 @PrepareForTest({ TyperUtils.class, OvsdbBridgeUpdateCommand.class, SouthboundUtil.class, InstanceIdentifier.class,
-        SouthboundMapper.class, InetAddresses.class, NumberUtils.class, NetworkInterface.class })
+        SouthboundMapper.class, NetworkInterface.class })
 public class OvsdbBridgeUpdateCommandTest {
-    private Map<UUID,Bridge> updatedBridgeRows = new HashMap<>();
-    private Map<UUID, Bridge> oldBridgeRows = new HashMap<>();
+    private final Map<UUID,Bridge> updatedBridgeRows = new HashMap<>();
+    private final Map<UUID, Bridge> oldBridgeRows = new HashMap<>();
     private OvsdbBridgeUpdateCommand ovsdbBridgeUpdateCommand;
+    private final Map<NodeId, Node> updatedBridgeNodes = new HashMap<>();
 
     @Before
     public void setUp() throws Exception {
         ovsdbBridgeUpdateCommand = PowerMockito.mock(OvsdbBridgeUpdateCommand.class, Mockito.CALLS_REAL_METHODS);
+        MemberModifier.field(OvsdbBridgeUpdateCommand.class, "updatedBridges")
+                .set(ovsdbBridgeUpdateCommand, new ArrayList<>());
         MemberModifier.field(OvsdbBridgeUpdateCommand.class, "updatedBridgeRows").set(ovsdbBridgeUpdateCommand,
                 updatedBridgeRows);
+        MemberModifier.field(OvsdbBridgeUpdateCommand.class, "updatedBridgeNodes").set(
+                ovsdbBridgeUpdateCommand,updatedBridgeNodes);
     }
 
     @Test
@@ -105,7 +105,9 @@ public class OvsdbBridgeUpdateCommandTest {
         OvsdbConnectionInstance key = mock(OvsdbConnectionInstance.class);
         TableUpdates updates = mock(TableUpdates.class);
         DatabaseSchema dbSchema = mock(DatabaseSchema.class);
-        OvsdbBridgeUpdateCommand ovsdbBridgeUpdateCommand1 = new OvsdbBridgeUpdateCommand(key, updates, dbSchema);
+        OvsdbBridgeUpdateCommand ovsdbBridgeUpdateCommand1 =
+                new OvsdbBridgeUpdateCommand(mock(InstanceIdentifierCodec.class), key, updates, dbSchema,
+                        updatedBridgeNodes);
         assertEquals(key, Whitebox.getInternalState(ovsdbBridgeUpdateCommand1, "key"));
         assertEquals(updates, Whitebox.getInternalState(ovsdbBridgeUpdateCommand1, "updates"));
         assertEquals(dbSchema, Whitebox.getInternalState(ovsdbBridgeUpdateCommand1, "dbSchema"));
@@ -113,27 +115,27 @@ public class OvsdbBridgeUpdateCommandTest {
 
     @Test
     public void testExecute() throws Exception {
-        ReadWriteTransaction transaction = mock(ReadWriteTransaction.class);
         updatedBridgeRows.put(mock(UUID.class), mock(Bridge.class));
-        MemberModifier.suppress(MemberMatcher.method(OvsdbBridgeUpdateCommand.class, "updateBridge",
-                ReadWriteTransaction.class, Bridge.class));
-        ovsdbBridgeUpdateCommand.execute(transaction);
-        PowerMockito.verifyPrivate(ovsdbBridgeUpdateCommand).invoke("updateBridge", any(ReadWriteTransaction.class),
-                any(Bridge.class));
-    }
 
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testUpdateBridge() throws Exception {
         OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class);
         when(ovsdbBridgeUpdateCommand.getOvsdbConnectionInstance()).thenReturn(ovsdbConnectionInstance);
         InstanceIdentifier<Node> connectionIId = mock(InstanceIdentifier.class);
         when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn(connectionIId);
-        Optional<Node> connection = mock(Optional.class);
+        Optional<Node> connection = Optional.of(mock(Node.class));
         PowerMockito.mockStatic(SouthboundUtil.class);
         when(SouthboundUtil.readNode(any(ReadWriteTransaction.class), any(InstanceIdentifier.class)))
                 .thenReturn(connection);
-        when(connection.isPresent()).thenReturn(true);
+        ReadWriteTransaction transaction = mock(ReadWriteTransaction.class);
+        MemberModifier.suppress(MemberMatcher.method(OvsdbBridgeUpdateCommand.class, "updateBridge",
+                ReadWriteTransaction.class, Bridge.class, InstanceIdentifier.class));
+        ovsdbBridgeUpdateCommand.execute(transaction);
+        verify(ovsdbBridgeUpdateCommand).updateBridge(any(ReadWriteTransaction.class),
+                any(Bridge.class), any(InstanceIdentifier.class));
+    }
+
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testUpdateBridge() throws Exception {
         MemberModifier
                 .suppress(MemberMatcher.method(OvsdbBridgeUpdateCommand.class, "buildConnectionNode", Bridge.class));
         ReadWriteTransaction transaction = mock(ReadWriteTransaction.class);
@@ -152,12 +154,13 @@ public class OvsdbBridgeUpdateCommandTest {
                 InstanceIdentifier.class, Bridge.class));
         MemberModifier.suppress(MemberMatcher.method(OvsdbBridgeUpdateCommand.class, "bridgeOtherConfigsToRemove",
                 InstanceIdentifier.class, Bridge.class));
+        MemberModifier.suppress(MemberMatcher.method(OvsdbBridgeUpdateCommand.class, "getNodeId",
+                Bridge.class));
 
         Bridge bridge = mock(Bridge.class);
-        Whitebox.invokeMethod(ovsdbBridgeUpdateCommand, "updateBridge", transaction, bridge);
-        PowerMockito.verifyPrivate(ovsdbBridgeUpdateCommand, times(3)).invoke("deleteEntries",
-                any(ReadWriteTransaction.class), any(Bridge.class));
-        verify(ovsdbConnectionInstance).getInstanceIdentifier();
+        InstanceIdentifier<Node> connectionIId = mock(InstanceIdentifier.class);
+        Whitebox.invokeMethod(ovsdbBridgeUpdateCommand, "updateBridge", transaction, bridge, connectionIId);
+        verify(ovsdbBridgeUpdateCommand, times(3)).deleteEntries(any(ReadWriteTransaction.class), eq(null));
     }
 
     @SuppressWarnings("unchecked")
@@ -167,9 +170,9 @@ public class OvsdbBridgeUpdateCommandTest {
         List<InstanceIdentifier<DataObject>> entryIids = new ArrayList<>();
         InstanceIdentifier<DataObject> iid = mock(InstanceIdentifier.class);
         entryIids.add(iid);
-        doNothing().when(transaction).delete(any(LogicalDatastoreType.class), (InstanceIdentifier<?>) any(List.class));
+        doNothing().when(transaction).delete(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
         Whitebox.invokeMethod(ovsdbBridgeUpdateCommand, "deleteEntries", transaction, entryIids);
-        verify(transaction).delete(any(LogicalDatastoreType.class), (InstanceIdentifier<?>) any(List.class));
+        verify(transaction).delete(any(LogicalDatastoreType.class), any(InstanceIdentifier.class));
     }
 
     @SuppressWarnings("unchecked")
@@ -234,9 +237,14 @@ public class OvsdbBridgeUpdateCommandTest {
                 .thenReturn(ovsdbConnectionAugmentationBuilder);
         PowerMockito.mockStatic(SouthboundMapper.class);
         InstanceIdentifier<Node> bridgeIid = mock(InstanceIdentifier.class);
-        when(SouthboundMapper.createInstanceIdentifier(any(OvsdbConnectionInstance.class), any(Bridge.class)))
+        when(SouthboundMapper.createInstanceIdentifier(any(InstanceIdentifierCodec.class),
+                any(OvsdbConnectionInstance.class), any(Bridge.class)))
                 .thenReturn(bridgeIid);
-        ManagedNodeEntry managedBridge = mock(ManagedNodeEntry.class);
+
+        ManagedNodeEntry managedBridge = new ManagedNodeEntryBuilder()
+                .setBridgeRef(new OvsdbBridgeRef(mock(InstanceIdentifier.class)))
+                .build();
+
         ManagedNodeEntryBuilder managedNodeEntryBuilder = mock(ManagedNodeEntryBuilder.class);
         PowerMockito.whenNew(ManagedNodeEntryBuilder.class).withNoArguments().thenReturn(managedNodeEntryBuilder);
         PowerMockito.whenNew(OvsdbBridgeRef.class).withAnyArguments().thenReturn(mock(OvsdbBridgeRef.class));
@@ -245,14 +253,12 @@ public class OvsdbBridgeUpdateCommandTest {
         when(ovsdbConnectionAugmentationBuilder.setManagedNodeEntry(any(List.class)))
                 .thenReturn(ovsdbConnectionAugmentationBuilder);
 
-        when(ovsdbConnectionAugmentationBuilder.build()).thenReturn(mock(OvsdbNodeAugmentation.class) );
-        when(connectionNode.addAugmentation(eq(OvsdbNodeAugmentation.class), any(OvsdbNodeAugmentation.class)))
-                .thenReturn(connectionNode);
+        when(ovsdbConnectionAugmentationBuilder.build()).thenReturn(mock(OvsdbNodeAugmentation.class));
+        when(connectionNode.addAugmentation(any(OvsdbNodeAugmentation.class))).thenReturn(connectionNode);
 
         //for logger
-        List<ManagedNodeEntry> value = new ArrayList<>();
-        value.add(managedBridge);
-        when(ovsdbConnectionAugmentationBuilder.getManagedNodeEntry()).thenReturn(value);
+        when(ovsdbConnectionAugmentationBuilder.getManagedNodeEntry())
+            .thenReturn(Map.of(managedBridge.key(), managedBridge));
 
         Node node = mock(Node.class);
         when(connectionNode.build()).thenReturn(node);
@@ -298,8 +304,7 @@ public class OvsdbBridgeUpdateCommandTest {
                 OvsdbBridgeAugmentationBuilder.class));
 
         when(ovsdbBridgeAugmentationBuilder.build()).thenReturn(mock(OvsdbBridgeAugmentation.class));
-        when(bridgeNodeBuilder.addAugmentation(eq(OvsdbBridgeAugmentation.class), any(OvsdbBridgeAugmentation.class)))
-                .thenReturn(bridgeNodeBuilder);
+        when(bridgeNodeBuilder.addAugmentation(any(OvsdbBridgeAugmentation.class))).thenReturn(bridgeNodeBuilder);
         Node node = mock(Node.class);
         when(bridgeNodeBuilder.build()).thenReturn(node);
         assertEquals(node, Whitebox.invokeMethod(ovsdbBridgeUpdateCommand, "buildBridgeNode", bridge));
@@ -330,11 +335,7 @@ public class OvsdbBridgeUpdateCommandTest {
         when(column.getData()).thenReturn("system");
         PowerMockito.mockStatic(SouthboundMapper.class);
         when(SouthboundMapper.createDatapathType(anyString()))
-                .thenAnswer(new Answer<Class<? extends DatapathTypeBase>>() {
-                    public Class<? extends DatapathTypeBase> answer(InvocationOnMock invocation) throws Throwable {
-                        return DatapathTypeSystem.class;
-                    }
-                });
+                .thenAnswer((Answer<Class<? extends DatapathTypeBase>>) invocation -> DatapathTypeSystem.class);
         OvsdbBridgeAugmentationBuilder ovsdbBridgeAugmentationBuilder = mock(OvsdbBridgeAugmentationBuilder.class);
         when(ovsdbBridgeAugmentationBuilder.setDatapathType(any(Class.class)))
                 .thenReturn(ovsdbBridgeAugmentationBuilder);
@@ -459,36 +460,13 @@ public class OvsdbBridgeUpdateCommandTest {
         when(controllerEntry.getTarget()).thenReturn(uri);
         when(uri.getValue()).thenReturn("tcp:192.168.12.56:6633");
 
-        IpAddress bridgeControllerIpAddress = mock(IpAddress.class);
-        PowerMockito.mockStatic(InetAddresses.class);
-        when(InetAddresses.isInetAddress("192.168.12.56")).thenReturn(true);
-        PowerMockito.whenNew(IpAddress.class).withAnyArguments().thenReturn(bridgeControllerIpAddress);
-
-
-        PowerMockito.mockStatic(NumberUtils.class);
-        when(NumberUtils.isNumber("6633")).thenReturn(true);
-        PortNumber bridgeControllerPortNumber = mock(PortNumber.class);
-        PowerMockito.whenNew(PortNumber.class).withAnyArguments().thenReturn(bridgeControllerPortNumber);
-
         PowerMockito.mockStatic(NetworkInterface.class);
-        Enumeration<NetworkInterface> networkInterfaces = mock(Enumeration.class);
-        when(NetworkInterface.getNetworkInterfaces()).thenReturn(networkInterfaces);
-
-        when(networkInterfaces.hasMoreElements()).thenReturn(true, false);
         NetworkInterface networkInterface = PowerMockito.mock(NetworkInterface.class);
-        when(networkInterfaces.nextElement()).thenReturn(networkInterface);
-
-        Enumeration<InetAddress> networkInterfaceAddresses = mock(Enumeration.class);
-        when(networkInterface.getInetAddresses()).thenReturn(networkInterfaceAddresses);
-        when(networkInterfaceAddresses.hasMoreElements()).thenReturn(true, false);
-        InetAddress networkInterfaceAddress = PowerMockito.mock(InetAddress.class);
-        when(networkInterfaceAddresses.nextElement()).thenReturn(networkInterfaceAddress);
-
-        Ipv4Address ipv4Address = mock(Ipv4Address.class);
-        when(bridgeControllerIpAddress.getIpv4Address()).thenReturn(ipv4Address);
-        when(ipv4Address.getValue()).thenReturn("127.0.0.1");
-        when(networkInterfaceAddress.getHostAddress()).thenReturn("127.0.0.1");
-        assertEquals(bridgeControllerIpAddress.getIpv4Address().getValue(), networkInterfaceAddress.getHostAddress());
+        when(networkInterface.getInetAddresses()).thenReturn(Iterators.asEnumeration(
+            Iterators.singletonIterator(InetAddresses.forString("192.168.12.56"))));
+        when(NetworkInterface.getNetworkInterfaces()).thenReturn(Iterators.asEnumeration(
+            Iterators.singletonIterator(networkInterface)));
+
         OvsdbConnectionInstance ovsdbConnectionInstance = mock(OvsdbConnectionInstance.class);
         when(ovsdbBridgeUpdateCommand.getOvsdbConnectionInstance()).thenReturn(ovsdbConnectionInstance);
         when(ovsdbConnectionInstance.getInstanceIdentifier()).thenReturn(mock(InstanceIdentifier.class));
@@ -501,16 +479,4 @@ public class OvsdbBridgeUpdateCommandTest {
         verify(controllerEntry, times(2)).isIsConnected();
         verify(ovsdbBridgeAugmentationBuilder).setBridgeOpenflowNodeRef(any(InstanceIdentifier.class));
     }
-
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testGetInstanceIdentifier() throws Exception {
-        PowerMockito.mockStatic(SouthboundMapper.class);
-        when(ovsdbBridgeUpdateCommand.getOvsdbConnectionInstance()).thenReturn(mock(OvsdbConnectionInstance.class));
-        InstanceIdentifier<Node> iid = mock(InstanceIdentifier.class);
-        when(SouthboundMapper.createInstanceIdentifier(any(OvsdbConnectionInstance.class), any(Bridge.class)))
-                .thenReturn(iid);
-
-        assertEquals(iid, Whitebox.invokeMethod(ovsdbBridgeUpdateCommand, "getInstanceIdentifier", mock(Bridge.class)));
-    }
 }