[ONOS-6076] Moving tl1,snmp,rest netcfg to devices key
Change-Id: I332d6b9a3afad5bc8461f6bb94e2d0a3c2ca643e
diff --git a/providers/snmp/device/src/test/java/org/onosproject/provider/snmp/device/impl/SnmpDeviceProviderTest.java b/providers/snmp/device/src/test/java/org/onosproject/provider/snmp/device/impl/SnmpDeviceProviderTest.java
index ac7e2e0..462e05e 100644
--- a/providers/snmp/device/src/test/java/org/onosproject/provider/snmp/device/impl/SnmpDeviceProviderTest.java
+++ b/providers/snmp/device/src/test/java/org/onosproject/provider/snmp/device/impl/SnmpDeviceProviderTest.java
@@ -16,6 +16,8 @@
package org.onosproject.provider.snmp.device.impl;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ImmutableSet;
import org.junit.Before;
import org.junit.Test;
@@ -31,6 +33,7 @@
import org.onosproject.net.Device;
import org.onosproject.net.DeviceId;
import org.onosproject.net.config.Config;
+import org.onosproject.net.config.ConfigApplyDelegate;
import org.onosproject.net.config.ConfigFactory;
import org.onosproject.net.config.NetworkConfigEvent;
import org.onosproject.net.config.NetworkConfigListener;
@@ -52,6 +55,7 @@
import org.onosproject.net.provider.ProviderId;
import org.onosproject.snmp.SnmpController;
+import java.io.InputStream;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
@@ -64,6 +68,8 @@
*/
public class SnmpDeviceProviderTest {
+ public static final int TEST_DURATION = 1500;
+ public static final int DELAY = 500;
private final SnmpDeviceProvider provider = new SnmpDeviceProvider();
private final SnmpController controller = new SnmpControllerAdapter();
private final DeviceProviderRegistry providerRegistry = new MockDeviceProviderRegistry();
@@ -73,15 +79,26 @@
protected CoreService coreService = new MockCoreService();
private final DeviceProviderService deviceProviderService = new MockDeviceProviderService();
private final TestApplicationId applicationId = new TestApplicationId("TestAppId");
+ private final SnmpProviderConfig snmpProviderConfig = new MockSnmpProviderConfig();
+ private final DeviceId deviceId = DeviceId.deviceId("snmp:1.1.1.1:1");
+ private final DeviceId wrongDeviceId = DeviceId.deviceId("snmp:2.2.2.2:2");
+ private final Set<ConfigFactory> cfgFactories = new HashSet<>();
+ private final Set<NetworkConfigListener> netCfgListeners = new HashSet<>();
private final NetworkConfigEvent deviceAddedEvent =
new NetworkConfigEvent(NetworkConfigEvent.Type.CONFIG_ADDED,
null, SnmpProviderConfig.class);
- private final SnmpProviderConfig snmpProviderConfig = new MockSnmpProviderConfig();
private final NetworkConfigEvent deviceAddedIrrelevantEvent =
new NetworkConfigEvent(NetworkConfigEvent.Type.CONFIG_ADDED,
null, BasicDeviceConfig.class);
- private final DeviceId deviceId = DeviceId.deviceId("snmp:1.1.1.1:1");
- private final DeviceId wrongDeviceId = DeviceId.deviceId("snmp:2.2.2.2:2");
+ private final NetworkConfigEvent deviceAddedNewEvent =
+ new NetworkConfigEvent(NetworkConfigEvent.Type.CONFIG_ADDED,
+ deviceId, SnmpDeviceConfig.class);
+ private final SnmpDeviceConfig config = new SnmpDeviceConfig();
+ //Testing Files
+ private final InputStream jsonStream = SnmpDeviceProviderTest.class
+ .getResourceAsStream("/device.json");
+ private final ObjectMapper mapper = new ObjectMapper();
+ private final String KEY = "snmp";
@Before
@@ -92,6 +109,9 @@
provider.netCfgService = netCfgService;
provider.deviceStore = deviceStore;
provider.coreService = coreService;
+ JsonNode jsonNode = mapper.readTree(jsonStream);
+ ConfigApplyDelegate delegate = new MockDelegate();
+ config.init(deviceId, KEY, jsonNode, mapper, delegate);
provider.activate(null);
}
@@ -99,7 +119,7 @@
public void testActivate() {
assertEquals("Incorrect provider service", deviceProviderService, provider.providerService);
assertEquals("Incorrect application id", applicationId, provider.appId);
- assertEquals("Incorrect config factory", cfgFactory, provider.factory);
+ assertTrue("Incorrect config factories", cfgFactories.containsAll(provider.factories));
assertTrue("Incorrect network config listener", netCfgListeners.contains(provider.cfgLister));
@@ -109,9 +129,9 @@
public void testDeactivate() {
this.addDevice();
provider.deactivate(null);
- assertAfter(500, () ->
+ assertAfter(DELAY, TEST_DURATION, () ->
assertNull("Device should be removed", controller.getDevice(deviceId)));
- assertNull("Network config factory not removed", cfgFactory);
+ assertTrue("Network config factory not removed", cfgFactories.isEmpty());
assertFalse("Network config listener not removed", netCfgListeners.contains(provider.cfgLister));
assertFalse("Provider not unregistered", providerRegistry.getProviders().contains(provider.id()));
assertNull("Provider registry not removed", provider.providerService);
@@ -129,7 +149,18 @@
provider.cfgLister.event(deviceAddedEvent);
AbstractProjectableModel.setDriverService(null, new MockDriverService());
//FIXME this needs sleep
- assertAfter(500, () ->
+ assertAfter(DELAY, TEST_DURATION, () ->
+ assertNotNull("Device should be added to controller", controller.getDevice(deviceId)));
+ assertTrue("Device should be reachable", provider.isReachable(deviceId));
+ }
+
+ @Test
+ public void addDeviceNew() {
+ assertTrue("Event should be relevant", provider.cfgLister.isRelevant(deviceAddedNewEvent));
+ provider.cfgLister.event(deviceAddedNewEvent);
+ AbstractProjectableModel.setDriverService(null, new MockDriverService());
+ //FIXME this needs sleep
+ assertAfter(DELAY, TEST_DURATION, () ->
assertNotNull("Device should be added to controller", controller.getDevice(deviceId)));
assertTrue("Device should be reachable", provider.isReachable(deviceId));
}
@@ -163,19 +194,16 @@
}
}
- private ConfigFactory cfgFactory;
- private Set<NetworkConfigListener> netCfgListeners = new HashSet<>();
-
private class MockNetworkConfigRegistry extends NetworkConfigRegistryAdapter {
@Override
public void registerConfigFactory(ConfigFactory configFactory) {
- cfgFactory = configFactory;
+ cfgFactories.add(configFactory);
}
@Override
public void unregisterConfigFactory(ConfigFactory configFactory) {
- cfgFactory = null;
+ cfgFactories.remove(configFactory);
}
@Override
@@ -193,10 +221,17 @@
public <S, C extends Config<S>> C getConfig(S subject, Class<C> configClass) {
if (configClass.equals(SnmpProviderConfig.class)) {
return (C) snmpProviderConfig;
+ } else if (configClass.equals(SnmpDeviceConfig.class)) {
+ return (C) config;
} else {
return (C) new BasicDeviceConfig();
}
}
+
+ @Override
+ public <S, C extends Config<S>> Set<S> getSubjects(Class<S> subjectClass, Class<C> configClass) {
+ return ImmutableSet.of((S) deviceId);
+ }
}
private class MockDeviceStore extends DeviceStoreAdapter {
@@ -249,4 +284,11 @@
private class MockDriverService extends DriverServiceAdapter {
}
+
+ private class MockDelegate implements ConfigApplyDelegate {
+ @Override
+ public void onApply(Config config) {
+
+ }
+ }
}
\ No newline at end of file
diff --git a/providers/snmp/device/src/test/resources/device.json b/providers/snmp/device/src/test/resources/device.json
new file mode 100644
index 0000000..cb8b34b
--- /dev/null
+++ b/providers/snmp/device/src/test/resources/device.json
@@ -0,0 +1,8 @@
+{
+ "ip":"1.1.1.1",
+ "port":1,
+ "username":"test",
+ "password":"test",
+ "protocol":"http"
+}
+