-/**
+/*
* Copyright (c) 2016 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,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.openflowplugin.applications.topology.lldp;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.verify;
-import com.google.common.base.Optional;
+import java.util.Optional;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.Matchers;
import org.mockito.Mock;
import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.NotificationPublishService;
import org.opendaylight.mdsal.eos.binding.api.Entity;
import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
import org.opendaylight.mdsal.eos.common.api.EntityOwnershipState;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.lldp.discovery.config.rev160511.NonZeroUint32Type;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.lldp.discovery.config.rev160511.TopologyLldpDiscoveryConfig;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.lldp.discovery.config.rev160511.TopologyLldpDiscoveryConfigBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint32;
/**
* Test for {@link LLDPLinkAger}.
*/
@RunWith(MockitoJUnitRunner.class)
public class LLDPLinkAgerTest {
-
- private static final Logger LOG = LoggerFactory.getLogger(LLDPLinkAgerTest.class);
-
- private static final long LLDP_INTERVAL = 5L;
- private static final long LINK_EXPIRATION_TIME = 10L;
+ private static final Uint32 LLDP_INTERVAL = Uint32.valueOf(5);
+ private static final Uint32 LINK_EXPIRATION_TIME = Uint32.TEN;
/**
* We need to wait while other tasks are finished before we can check anything in LLDPAgingTask.
*/
private static final int SLEEP = 100;
- private LLDPLinkAger lldpLinkAger;
-
@Mock
private LinkDiscovered link;
@Mock
- private NotificationProviderService notificationService;
+ private NotificationPublishService notificationService;
@Mock
private EntityOwnershipService eos;
@Mock
- private LinkRemoved linkRemoved;
+ private DataBroker dataBroker;
+
+ private LLDPLinkAger lldpLinkAger;
@Before
- public void setUp() throws Exception {
- lldpLinkAger = new LLDPLinkAger(getConfig(), notificationService, getConfigurationService(), eos);
+ public void setUp() {
+ lldpLinkAger = new LLDPLinkAger(getConfig(), notificationService, getConfigurationService(), eos, dataBroker);
Mockito.when(link.getDestination()).thenReturn(new NodeConnectorRef(
InstanceIdentifier.create(Nodes.class).child(Node.class, new NodeKey(new NodeId("openflow:1")))));
- Mockito.when(eos.getOwnershipState(Mockito.any(Entity.class))).thenReturn(Optional.of(EntityOwnershipState.IS_OWNER));
+ Mockito.when(eos.getOwnershipState(any(Entity.class))).thenReturn(
+ Optional.of(EntityOwnershipState.IS_OWNER));
}
@Test
public void testLLDPAgingTask() throws InterruptedException {
lldpLinkAger.put(link);
Thread.sleep(SLEEP);
- verify(notificationService).publish(Matchers.any(LinkRemoved.class));
+ verify(notificationService).putNotification(any(LinkRemoved.class));
}
- private TopologyLldpDiscoveryConfig getConfig() {
+ private static TopologyLldpDiscoveryConfig getConfig() {
TopologyLldpDiscoveryConfigBuilder cfgBuilder = new TopologyLldpDiscoveryConfigBuilder();
cfgBuilder.setTopologyLldpInterval(new NonZeroUint32Type(LLDP_INTERVAL));
cfgBuilder.setTopologyLldpExpirationInterval(new NonZeroUint32Type(LINK_EXPIRATION_TIME));
return cfgBuilder.build();
}
- private ConfigurationService getConfigurationService() {
+ private static ConfigurationService getConfigurationService() {
final ConfigurationService configurationService = Mockito.mock(ConfigurationService.class);
final TopologyLldpDiscoveryConfig config = getConfig();
- Mockito.when(configurationService.registerListener(Mockito.any())).thenReturn(() -> {
+ Mockito.when(configurationService.registerListener(any())).thenReturn(() -> {
});
- Mockito.when(configurationService.getProperty(Mockito.eq("topology-lldp-interval"), Mockito.any()))
+ Mockito.lenient().when(configurationService.getProperty(Mockito.eq("topology-lldp-interval"), any()))
.thenReturn(config.getTopologyLldpInterval());
- Mockito.when(configurationService.getProperty(Mockito.eq("topology-lldp-expiration-interval"), Mockito.any()))
+ Mockito.lenient().when(configurationService.getProperty(Mockito.eq("topology-lldp-expiration-interval"), any()))
.thenReturn(config.getTopologyLldpExpirationInterval());
return configurationService;