manually cherry pick this patch https://git.opendaylight.org/gerrit/#/c/34579/
[unimgr.git] / impl / src / test / java / org / opendaylight / unimgr / command / UniUpdateCommandTest.java
index f00347b5b60b9bafb246f62cc7b38df4cde567a6..0bd992e07bacdc2f107dff9abcc64ab20b6f5cbc 100644 (file)
@@ -7,24 +7,19 @@
  */
 package org.opendaylight.unimgr.command;
 
-import static org.junit.Assert.*;
 import static org.mockito.Matchers.any;
 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 java.util.ArrayList;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.Map.Entry;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.unimgr.impl.UnimgrConstants;
 import org.opendaylight.unimgr.impl.UnimgrMapper;
@@ -37,7 +32,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbNodeRef;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfo;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ManagedNodeEntry;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ManagedNodeEntryKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.unimgr.rev151012.UniAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.unimgr.rev151012.uni.Speed;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
@@ -46,7 +40,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
-import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.powermock.api.mockito.PowerMockito;
 import org.powermock.core.classloader.annotations.PrepareForTest;
@@ -61,9 +54,9 @@ public class UniUpdateCommandTest {
     private static final NodeId OVSDB_NODE_ID = new NodeId("ovsdb://7011db35-f44b-4aab-90f6-d89088caf9d8");
 
     private UniUpdateCommand uniUpdateCommand;
-    private Map<InstanceIdentifier<?>, DataObject> changes;
+    private DataTreeModification<Node> uni;
     private DataBroker dataBroker;
-    private ManagedNodeEntry managedNodeEntry;
+    private Node uniNode;
 
     @SuppressWarnings("unchecked")
     @Before
@@ -72,9 +65,10 @@ public class UniUpdateCommandTest {
         PowerMockito.mockStatic(MdsalUtils.class);
         PowerMockito.mockStatic(OvsdbUtils.class);
         PowerMockito.mockStatic(UnimgrMapper.class);
-        changes = mock(Map.class);
         dataBroker = mock(DataBroker.class);
-        uniUpdateCommand = new UniUpdateCommand(dataBroker, changes);
+        uniNode = mock(Node.class);
+        uni = DataTreeModificationHelper.getUniNode(uniNode);
+        uniUpdateCommand = new UniUpdateCommand(dataBroker, uni);
     }
 
     /**
@@ -86,8 +80,6 @@ public class UniUpdateCommandTest {
         final Optional<Node> optionalOvsdbNode = mock(Optional.class);
         final UniAugmentation uniAugmentation = mock(UniAugmentation.class);
         final OvsdbNodeAugmentation ovsdbNodeAugmentation = mock(OvsdbNodeAugmentation.class);
-        managedNodeEntry = mock(ManagedNodeEntry.class);
-        final ManagedNodeEntryKey managedNodeEntryKey = mock(ManagedNodeEntryKey.class);
         final List<ManagedNodeEntry> managedNodeEntries = new ArrayList<ManagedNodeEntry>();
         final ConnectionInfo connectionInfo = mock(ConnectionInfo.class);
         final IpAddress ipAddress = mock(IpAddress.class);
@@ -99,20 +91,9 @@ public class UniUpdateCommandTest {
                 .create(NetworkTopology.class)
                 .child(Topology.class, new TopologyKey(UnimgrConstants.UNI_TOPOLOGY_ID))
                 .child(Node.class, new NodeKey(OVSDB_NODE_ID));
-        final Set<Entry<InstanceIdentifier<?>, DataObject>> setCreated = new HashSet<Map.Entry<InstanceIdentifier<?>,DataObject>>();
-        Entry<InstanceIdentifier<?>, DataObject> created = new Entry<InstanceIdentifier<?>, DataObject>() {
-            @Override
-            public DataObject setValue(DataObject value) { return null; }
-            @Override
-            public DataObject getValue() { return uniAugmentation; }
-            @Override
-            public InstanceIdentifier getKey() { return uniKey; }
-        };
-        setCreated.add(created);
-        managedNodeEntries.add(managedNodeEntry);
 
         // Case UNI1 : updatedUni.getOvsdbNodeRef() != null, optOvsdbNode.isPresent()
-        when(changes.entrySet()).thenReturn(setCreated);
+        when(uniNode.getAugmentation(UniAugmentation.class)).thenReturn(uniAugmentation);
         when(optionalOvsdbNode.isPresent()).thenReturn(true);
         when(optionalOvsdbNode.get()).thenReturn(node);
         when(uniAugmentation.getIpAddress()).thenReturn(ipAddress);
@@ -120,7 +101,6 @@ public class UniUpdateCommandTest {
         when(uniAugmentation.getOvsdbNodeRef()).thenReturn(ovsNodedRef);
         when(ovsdbNodeAugmentation.getConnectionInfo()).thenReturn(connectionInfo);
         when(ovsdbNodeAugmentation.getManagedNodeEntry()).thenReturn(managedNodeEntries);
-        when(managedNodeEntry.getKey()).thenReturn(managedNodeEntryKey);
         when(connectionInfo.getRemoteIp()).thenReturn(ipAddress);
         when(ipAddress.getIpv4Address()).thenReturn(ipv4Address);
         when(ipv4Address.toString()).thenReturn("ipv4Address_test");
@@ -129,7 +109,6 @@ public class UniUpdateCommandTest {
         when(node.getAugmentation(any(Class.class))).thenReturn(uniAugmentation);
         when(node.getNodeId()).thenReturn(nodeId);
         when(nodeId.toString()).thenReturn("ovsdbNodeId_test");
-
         when(UniUtils.getUni(any(DataBroker.class), any(LogicalDatastoreType.class), any(IpAddress.class)))
                 .thenReturn(uniAugmentation);
         when(MdsalUtils.readNode(any(DataBroker.class), any(LogicalDatastoreType.class),
@@ -144,48 +123,20 @@ public class UniUpdateCommandTest {
                 any(LogicalDatastoreType.class))).thenReturn(true);
         when(UnimgrMapper.getUniIid(any(DataBroker.class), any(IpAddress.class),
                 any(LogicalDatastoreType.class))).thenReturn(uniKey);
-        verifyExecute(1, 1, 2, 0);
-
-        // Case UNI2 : updatedUni.getOvsdbNodeRef() != null, !optOvsdbNode.isPresent()
-        when(optionalOvsdbNode.isPresent()).thenReturn(false);
-        verifyExecute(1, 1, 2, 0);
+        verifyExecute(1, 1);
 
-        // Case UNI3 : updatedUni.getOvsdbNodeRef() == null, !optOvsdbNode.isPresent()
-        when(uniAugmentation.getOvsdbNodeRef()).thenReturn(null);
-        verifyExecute(1, 1, 2, 0);
-
-        // Case UNI4 : updatedUni.getOvsdbNodeRef() == null, optOvsdbNode.isPresent()
-        when(optionalOvsdbNode.isPresent()).thenReturn(true);
-        verifyExecute(2, 2, 4, 0);
-
-        // Case OVSDB
-        created = new Entry<InstanceIdentifier<?>, DataObject>() {
-            @Override
-            public DataObject setValue(DataObject value) { return null; }
-            @Override
-            public DataObject getValue() { return ovsdbNodeAugmentation; }
-            @Override
-            public InstanceIdentifier getKey() { return uniKey; }
-        };
-        setCreated.clear();
-        setCreated.add(created);
-
-        when(uniAugmentation.getOvsdbNodeRef()).thenReturn(ovsNodedRef);
+        // Case 2 : updatedUni.getOvsdbNodeRef() == null, optOvsdbNode.isPresent()
         when(optionalOvsdbNode.isPresent()).thenReturn(true);
-        verifyExecute(2, 2, 4, 1);
+        verifyExecute(2, 2);
     }
 
-    private void verifyExecute(int qosTimes, int deleteTimes, int updateNodeTime, int getKeyTimes){
+    private void verifyExecute(int qosTimes, int updateNodeTime){
         uniUpdateCommand.execute();
         PowerMockito.verifyStatic(times(qosTimes));
         OvsdbUtils.createQoSForOvsdbNode(any(DataBroker.class), any(UniAugmentation.class));
-        PowerMockito.verifyStatic(times(deleteTimes));
-        MdsalUtils.deleteNode(any(DataBroker.class), any(InstanceIdentifier.class),
-                any(LogicalDatastoreType.class));
         PowerMockito.verifyStatic(times(updateNodeTime));
         UniUtils.updateUniNode(any(LogicalDatastoreType.class), any(InstanceIdentifier.class),
                 any(UniAugmentation.class), any(Node.class), any(DataBroker.class));
-        verify(managedNodeEntry, times(getKeyTimes)).getKey();
     }
 
-}
+}
\ No newline at end of file