package org.societies.css.devicemgmt.RegSynchroniser.impl;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.osgi.framework.BundleContext;
import org.societies.api.internal.css.devicemgmt.model.DeviceCommonInfo;
import org.societies.css.devicemgmt.deviceregistry.CSSDevice;
import org.societies.css.devicemgmt.deviceregistry.DeviceRegistry;
public class TestLocalDevices {
private String deviceFamilyIdentity1 = "Sensors";
private String deviceMacAddress1 = "aa:bb:cc";
private String deviceName_1 = "Device1";
private String deviceType = "lightSensor";
private String deviceDescription = "this is a good device";
private String deviceConnectionType1 = "wifi";
private String deviceLocation1 = "Room1";
private String deviceProvider1 = "INTEL";
private String deviceId = "liam.societies.org/first/service";
private boolean contextSource1 = true;
private String deviceFamilyIdentity2 = "Actuators";
private String deviceMacAddress2 = "dd:ee:ff";
private String deviceName_2 = "Device2";
private String deviceType2 = "TempSensor";
private String deviceDescription2 = "this is a fair device";
private String deviceConnectionType2 = "Zigbee";
private String deviceLocation2 = "Room2";
private String deviceProvider2 = "IBM";
private String deviceId2 = "liam.societies.org/second/service";
private boolean contextSource2 = false;
private String deviceFamilyIdentity3 = "GPS";
private String deviceMacAddress3 = "aa:aa:aa";
private String deviceName_3 = "Device3";
private String deviceType3 = "GPSSensor";
private String deviceDescription3 = "this is a bad device";
private String deviceConnectionType3 = "Bluetooth";
private String deviceLocation3 = "Room3";
private String deviceProvider3 = "MICROSOFT";
private String deviceId3 = "liam.societies.org/third/service";
private boolean contextSource3 = true;
//private BundleContext context;
private DeviceRegistry registry;
private DeviceCommonInfo device_1;
private DeviceCommonInfo device_2;
private DeviceCommonInfo device_3;
private BundleContext context;
private String CSSNodeID = "liam@societies.org";
@Before
public void setUp() throws Exception {
context = mock(BundleContext.class);
device_1 = new DeviceCommonInfo(deviceFamilyIdentity1, deviceMacAddress1, deviceName_1, deviceType, deviceDescription, deviceConnectionType1, deviceLocation1, deviceProvider1, contextSource1);
assertTrue(null != device_1);
device_1.setDeviceID(deviceId);
device_2 = new DeviceCommonInfo(deviceFamilyIdentity2, deviceMacAddress2, deviceName_2, deviceType2, deviceDescription2, deviceConnectionType2, deviceLocation2, deviceProvider2, contextSource2);
assertTrue(null != device_2);
device_2.setDeviceID(deviceId2);
device_3 = new DeviceCommonInfo(deviceFamilyIdentity3, deviceMacAddress3, deviceName_3, deviceType3, deviceDescription3, deviceConnectionType3, deviceLocation3, deviceProvider3, contextSource3);
assertTrue(null != device_3);
device_3.setDeviceID(deviceId3);
}
@After
public void tearDown() throws Exception {
}
@Test
public void testLocalAddDevice() throws Exception {
boolean retValue = false;
RegManager regmanager = new RegManager(
this.context);
DeviceRegistry registry = DeviceRegistry.getInstance();
assertTrue(null != registry);
registry.clearRegistry();
assertEquals(0, registry.registrySize());
try {
retValue = LocalDevices.addDevice(device_1, CSSNodeID);
assertTrue(retValue);
retValue = LocalDevices.addDevice(device_2, CSSNodeID);
assertTrue(retValue);
} catch (Exception e) {
e.printStackTrace();
}
assertEquals(2, registry.registrySize());
assertEquals(2, registry.findAllDevices().size());
assertEquals(2, registry.registrySize());
assertEquals(2, registry.findAllDevices().size());
assertEquals(device_1, registry.findDevice(device_1.getDeviceID()));
assertEquals(device_2, registry.findDevice(device_2.getDeviceID()));
}
@Test
public void testLocalremoveDevice() throws Exception {
boolean retValue = false;
// RegManager regmanager = new RegManager(
// this.context);
DeviceRegistry registry = DeviceRegistry.getInstance();
assertTrue(null != registry);
registry.clearRegistry();
assertEquals(0, registry.registrySize());
try {
retValue = LocalDevices.addDevice(device_1, CSSNodeID);
assertTrue(retValue);
retValue = LocalDevices.addDevice(device_2, CSSNodeID);
assertTrue(retValue);
retValue = LocalDevices.addDevice(device_3, CSSNodeID);
assertTrue(retValue);
retValue = LocalDevices.removeDevice(device_2, CSSNodeID);
assertTrue(retValue);
} catch (Exception e) {
e.printStackTrace();
}
assertEquals(2, registry.registrySize());
assertEquals(2, registry.findAllDevices().size());
assertEquals(2, registry.registrySize());
assertEquals(2, registry.findAllDevices().size());
assertEquals(device_1, registry.findDevice(device_1.getDeviceID()));
assertEquals(device_3, registry.findDevice(device_3.getDeviceID()));
}
}