[ONOS-6806] Add getAvailableDeviceCount method to DeviceStore

Change-Id: I3f9e0bbd502e2a592da98436685fa2a192436ef8
This commit is contained in:
mskala 2017-07-12 11:21:23 +02:00 committed by Ray Milkey
parent 3bf51574a3
commit 0d0c6831cc
7 changed files with 59 additions and 0 deletions

View File

@ -38,6 +38,13 @@ public interface DeviceStore extends Store<DeviceEvent, DeviceStoreDelegate> {
*/
int getDeviceCount();
/**
* Returns the number of currently available devices known to the system.
*
* @return number of devices
*/
int getAvailableDeviceCount();
/**
* Returns an iterable collection of all devices known to the system.
*

View File

@ -35,6 +35,11 @@ public class DeviceStoreAdapter implements DeviceStore {
return 0;
}
@Override
public int getAvailableDeviceCount() {
return 0;
}
@Override
public Iterable<Device> getDevices() {
return null;

View File

@ -125,6 +125,11 @@ public class SimpleDeviceStore
return devices.size();
}
@Override
public int getAvailableDeviceCount() {
return availableDevices.size();
}
@Override
public Iterable<Device> getDevices() {
return Collections.unmodifiableCollection(devices.values());

View File

@ -155,6 +155,22 @@ public class SimpleDeviceStoreTest {
assertEquals("expect 2 uniq devices", 2, deviceStore.getDeviceCount());
}
@Test
public final void testGetAvailableDeviceCount() {
assertEquals("initialy empty", 0, deviceStore.getAvailableDeviceCount());
putDevice(DID1, SW1);
putDevice(DID2, SW2);
deviceStore.markOffline(DID1);
assertEquals("expect 1 available device", 1, deviceStore.getAvailableDeviceCount());
putDevice(DID1, SW1);
assertEquals("expect 2 available devices", 2, deviceStore.getAvailableDeviceCount());
}
@Test
public final void testGetDevices() {
assertEquals("initialy empty", 0, Iterables.size(deviceStore.getDevices()));

View File

@ -246,6 +246,11 @@ public class ECDeviceStore
return devices.size();
}
@Override
public int getAvailableDeviceCount() {
return availableDevices.size();
}
@Override
public Device getDevice(DeviceId deviceId) {
return devices.get(deviceId);

View File

@ -275,6 +275,11 @@ public class GossipDeviceStore
return devices.size();
}
@Override
public int getAvailableDeviceCount() {
return availableDevices.size();
}
@Override
public Iterable<Device> getDevices() {
return Collections.unmodifiableCollection(devices.values());

View File

@ -298,6 +298,22 @@ public class GossipDeviceStoreTest {
assertEquals("expect 2 uniq devices", 2, deviceStore.getDeviceCount());
}
@Test
public final void testGetAvailableDeviceCount() {
assertEquals("initialy empty", 0, deviceStore.getAvailableDeviceCount());
putDevice(DID1, SW1);
putDevice(DID2, SW2);
deviceStore.markOffline(DID1);
assertEquals("expect 1 available device", 1, deviceStore.getAvailableDeviceCount());
deviceStore.markOnline(DID1);
assertEquals("expect 2 available devices", 2, deviceStore.getAvailableDeviceCount());
}
@Test
public final void testGetDevices() {
assertEquals("initialy empty", 0, Iterables.size(deviceStore.getDevices()));