Update to work with Aluminium GA
[l2switch.git] / loopremover / implementation / src / test / java / org / opendaylight / l2switch / loopremover / topology / TopologyLinkDataChangeHandlerTest.java
index 21fbe47b97d9ef4770468f587c0e4e470b972762..55dbd764b74d007591b2d2e4bedbb69e7a9f46dc 100644 (file)
@@ -12,24 +12,25 @@ 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.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
+import java.util.Optional;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-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.DataBroker;
+import org.opendaylight.mdsal.binding.api.DataObjectModification;
+import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
+import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
+import org.opendaylight.mdsal.binding.api.DataTreeModification;
+import org.opendaylight.mdsal.binding.api.ReadTransaction;
+import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.loopremover.rev140714.StpStatus;
@@ -44,10 +45,10 @@ 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.TopologyBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.LinkBuilder;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 public class TopologyLinkDataChangeHandlerTest {
-
     @Mock
     private DataBroker dataBroker;
     @Mock
@@ -78,7 +79,7 @@ public class TopologyLinkDataChangeHandlerTest {
         DataObjectModification<Link> mockModification = Mockito.mock(DataObjectModification.class);
         when(mockModification.getDataAfter()).thenReturn(hostLink);
         when(mockModification.getModificationType()).thenReturn(DataObjectModification.ModificationType.WRITE);
-        when(mockChange.getRootPath()).thenReturn(new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL,
+        when(mockChange.getRootPath()).thenReturn(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL,
                 instanceId));
         when(mockChange.getRootNode()).thenReturn(mockModification);
         topologyLinkDataChangeHandler.onDataTreeChanged(Collections.singletonList(mockChange));
@@ -95,7 +96,7 @@ public class TopologyLinkDataChangeHandlerTest {
         DataObjectModification<Link> mockModification = Mockito.mock(DataObjectModification.class);
         when(mockModification.getDataAfter()).thenReturn(hostLink);
         when(mockModification.getModificationType()).thenReturn(DataObjectModification.ModificationType.WRITE);
-        when(mockChange.getRootPath()).thenReturn(new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL,
+        when(mockChange.getRootPath()).thenReturn(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL,
                 instanceId));
         when(mockChange.getRootNode()).thenReturn(mockModification);
         topologyLinkDataChangeHandler.onDataTreeChanged(Collections.singletonList(mockChange));
@@ -112,7 +113,7 @@ public class TopologyLinkDataChangeHandlerTest {
         DataObjectModification<Link> mockModification = Mockito.mock(DataObjectModification.class);
         when(mockModification.getDataBefore()).thenReturn(hostLink);
         when(mockModification.getModificationType()).thenReturn(DataObjectModification.ModificationType.DELETE);
-        when(mockChange.getRootPath()).thenReturn(new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL,
+        when(mockChange.getRootPath()).thenReturn(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL,
                 instanceId));
         when(mockChange.getRootNode()).thenReturn(mockModification);
         topologyLinkDataChangeHandler.onDataTreeChanged(Collections.singletonList(mockChange));
@@ -129,7 +130,7 @@ public class TopologyLinkDataChangeHandlerTest {
         DataObjectModification<Link> mockModification = Mockito.mock(DataObjectModification.class);
         when(mockModification.getDataBefore()).thenReturn(hostLink);
         when(mockModification.getModificationType()).thenReturn(DataObjectModification.ModificationType.DELETE);
-        when(mockChange.getRootPath()).thenReturn(new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL,
+        when(mockChange.getRootPath()).thenReturn(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL,
                 instanceId));
         when(mockChange.getRootNode()).thenReturn(mockModification);
         topologyLinkDataChangeHandler.onDataTreeChanged(Collections.singletonList(mockChange));
@@ -147,18 +148,16 @@ public class TopologyLinkDataChangeHandlerTest {
         DataObjectModification<Link> mockModification = Mockito.mock(DataObjectModification.class);
         when(mockModification.getDataAfter()).thenReturn(nodeLink);
         when(mockModification.getModificationType()).thenReturn(DataObjectModification.ModificationType.WRITE);
-        when(mockChange.getRootPath()).thenReturn(new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL,
+        when(mockChange.getRootPath()).thenReturn(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL,
                 instanceId));
         when(mockChange.getRootNode()).thenReturn(mockModification);
         // End setup code
-
-        Topology topology = new TopologyBuilder().setLink(null).build();
+        Topology topology = new TopologyBuilder().setLink(Map.of()).build();
         Optional<Topology> topologyOptional = Optional.of(topology);
-        CheckedFuture checkedFuture = Mockito.mock(CheckedFuture.class);
-        when(checkedFuture.get()).thenReturn(topologyOptional);
-        ReadOnlyTransaction readOnlyTransaction = Mockito.mock(ReadOnlyTransaction.class);
+        FluentFuture<Optional<Topology>> checkedFuture = FluentFutures.immediateFluentFuture(topologyOptional);
+        ReadTransaction readOnlyTransaction = Mockito.mock(ReadTransaction.class);
         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class)))
-                .thenReturn(checkedFuture);
+            .thenReturn(checkedFuture);
         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
 
         topologyLinkDataChangeHandler.onDataTreeChanged(Collections.singletonList(mockChange));
@@ -179,7 +178,7 @@ public class TopologyLinkDataChangeHandlerTest {
         DataObjectModification<Link> mockModification = Mockito.mock(DataObjectModification.class);
         when(mockModification.getDataAfter()).thenReturn(nodeLink);
         when(mockModification.getModificationType()).thenReturn(DataObjectModification.ModificationType.WRITE);
-        when(mockChange.getRootPath()).thenReturn(new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL,
+        when(mockChange.getRootPath()).thenReturn(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL,
                 instanceId));
         when(mockChange.getRootNode()).thenReturn(mockModification);
 
@@ -188,9 +187,8 @@ public class TopologyLinkDataChangeHandlerTest {
         links.add(new LinkBuilder().setLinkId(new LinkId("openflow:1")).build());
         Topology topology = new TopologyBuilder().setLink(links).build();
         Optional<Topology> topologyOptional = Optional.of(topology);
-        CheckedFuture checkedFuture = Mockito.mock(CheckedFuture.class);
-        when(checkedFuture.get()).thenReturn(topologyOptional);
-        ReadOnlyTransaction readOnlyTransaction = Mockito.mock(ReadOnlyTransaction.class);
+        FluentFuture<Optional<Topology>> checkedFuture = FluentFutures.immediateFluentFuture(topologyOptional);
+        ReadTransaction readOnlyTransaction = Mockito.mock(ReadTransaction.class);
         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class)))
                 .thenReturn(checkedFuture);
         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
@@ -224,8 +222,8 @@ public class TopologyLinkDataChangeHandlerTest {
         // checkIfExistAndUpdateNodeConnector
         NodeConnector nodeConnector = new NodeConnectorBuilder().build();
         Optional<NodeConnector> optionalNodeConnector = Optional.of(nodeConnector);
-        CheckedFuture checkedFutureNc = Mockito.mock(CheckedFuture.class);
-        when(checkedFutureNc.get()).thenReturn(optionalNodeConnector);
+        FluentFuture<Optional<NodeConnector>> checkedFutureNc =
+            FluentFutures.immediateFluentFuture(optionalNodeConnector);
         when(readWriteTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class)))
                 .thenReturn(checkedFutureNc);
 
@@ -236,8 +234,8 @@ public class TopologyLinkDataChangeHandlerTest {
         verify(networkGraphService, times(1)).getAllLinks();
         verify(networkGraphService, times(1)).getLinksInMst();
         verify(readWriteTransaction, times(4)).merge(any(LogicalDatastoreType.class), any(InstanceIdentifier.class),
-                any(StpStatusAwareNodeConnector.class));
-        verify(readWriteTransaction, times(1)).submit();
+            any(StpStatusAwareNodeConnector.class));
+        verify(readWriteTransaction, times(1)).commit();
     }
 
     @Test
@@ -249,7 +247,7 @@ public class TopologyLinkDataChangeHandlerTest {
         DataObjectModification<Link> mockModification = Mockito.mock(DataObjectModification.class);
         when(mockModification.getDataAfter()).thenReturn(nodeLink);
         when(mockModification.getModificationType()).thenReturn(DataObjectModification.ModificationType.WRITE);
-        when(mockChange.getRootPath()).thenReturn(new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL,
+        when(mockChange.getRootPath()).thenReturn(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL,
                 instanceId));
         when(mockChange.getRootNode()).thenReturn(mockModification);
 
@@ -258,9 +256,8 @@ public class TopologyLinkDataChangeHandlerTest {
         links.add(new LinkBuilder().setLinkId(new LinkId("openflow:1")).build());
         Topology topology = new TopologyBuilder().setLink(links).build();
         Optional<Topology> topologyOptional = Optional.of(topology);
-        CheckedFuture checkedFuture = Mockito.mock(CheckedFuture.class);
-        when(checkedFuture.get()).thenReturn(topologyOptional);
-        ReadOnlyTransaction readOnlyTransaction = Mockito.mock(ReadOnlyTransaction.class);
+        FluentFuture<Optional<Topology>> checkedFuture = FluentFutures.immediateFluentFuture(topologyOptional);
+        ReadTransaction readOnlyTransaction = Mockito.mock(ReadTransaction.class);
         when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class)))
                 .thenReturn(checkedFuture);
         when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
@@ -292,15 +289,14 @@ public class TopologyLinkDataChangeHandlerTest {
         when(networkGraphService.getLinksInMst()).thenReturn(mstLinks);
 
         // checkIfExistAndUpdateNodeConnector
-        StpStatusAwareNodeConnector stpStatusAwareNodeConnector = new StpStatusAwareNodeConnectorBuilder()
-                .setStatus(StpStatus.Forwarding).build();
         NodeConnector nodeConnector = new NodeConnectorBuilder()
-                .addAugmentation(StpStatusAwareNodeConnector.class, stpStatusAwareNodeConnector).build();
+                .addAugmentation(new StpStatusAwareNodeConnectorBuilder().setStatus(StpStatus.Forwarding).build())
+                .build();
         Optional<NodeConnector> optionalNodeConnector = Optional.of(nodeConnector);
-        CheckedFuture checkedFutureNc = Mockito.mock(CheckedFuture.class);
-        when(checkedFutureNc.get()).thenReturn(optionalNodeConnector);
+        FluentFuture<Optional<NodeConnector>> checkedFutureNc =
+            FluentFutures.immediateFluentFuture(optionalNodeConnector);
         when(readWriteTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class)))
-                .thenReturn(checkedFutureNc);
+               .thenReturn(checkedFutureNc);
 
         topologyLinkDataChangeHandler.onDataTreeChanged(Collections.singletonList(mockChange));
         Thread.sleep(500);
@@ -309,8 +305,7 @@ public class TopologyLinkDataChangeHandlerTest {
         verify(networkGraphService, times(1)).getAllLinks();
         verify(networkGraphService, times(1)).getLinksInMst();
         verify(readWriteTransaction, times(2)).merge(any(LogicalDatastoreType.class), any(InstanceIdentifier.class),
-                any(StpStatusAwareNodeConnector.class));
-        verify(readWriteTransaction, times(1)).submit();
+            any(StpStatusAwareNodeConnector.class));
+        verify(readWriteTransaction, times(1)).commit();
     }
-
 }