package org.deviceconnect.android.deviceplugin.linking.beacon;
import android.content.Context;
import android.content.Intent;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import android.test.RenamingDelegatingContext;
import org.deviceconnect.android.deviceplugin.linking.LinkingDevicePluginService;
import org.deviceconnect.android.deviceplugin.linking.beacon.data.AtmosphericPressureData;
import org.deviceconnect.android.deviceplugin.linking.beacon.data.BatteryData;
import org.deviceconnect.android.deviceplugin.linking.beacon.data.GattData;
import org.deviceconnect.android.deviceplugin.linking.beacon.data.HumidityData;
import org.deviceconnect.android.deviceplugin.linking.beacon.data.LinkingBeacon;
import org.deviceconnect.android.deviceplugin.linking.beacon.data.RawData;
import org.deviceconnect.android.deviceplugin.linking.beacon.data.TemperatureData;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
@RunWith(AndroidJUnit4.class)
public class LinkingBeaconManagerTest {
private static Context mContext;
private static final int LINKING_EXTRA_ID = 12345;
private static final int LINKING_VENDOR_ID = 1;
private static final int LINKING_VERSION = 1;
private static final long LINKING_TIME_STAMP = System.currentTimeMillis();
private static final int LINKING_RSSI = -67;
private static final int LINKING_TX_POWER = -59;
private static final int LINKING_DISTANCE = 1;
private static final float LINKING_ATMOSPHERIC_PRESSURE = 1008.0f;
private static final boolean LINKING_LOW_BATTERY = false;
private static final float LINKING_BATTERY_LEVEL = 68.0f;
private static final float LINKING_HUMIDITY = 43.0f;
private static final float LINKING_TEMPERATURE = 23.0f;
private static final int LINKING_RAW_DATA = 1;
private static final int LINKING_BUTTON_ID = 4;
@BeforeClass
public static void beforeClass() throws Exception {
mContext = new RenamingDelegatingContext(
InstrumentationRegistry.getInstrumentation().getTargetContext(), "test_");
}
@Test
public void createLinkingBeaconManager() throws Exception {
LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.destroy();
}
@Test
public void getLinkingBeacons() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final LinkingBeacon[] test = new LinkingBeacon[1];
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.addOnBeaconConnectListener(new LinkingBeaconManager.OnBeaconConnectListener() {
@Override
public void onConnected(LinkingBeacon beacon) {
test[0] = beacon;
latch.countDown();
}
@Override
public void onDisconnected(LinkingBeacon beacon) {
latch.countDown();
}
});
sendDelay(mgr, createAll());
boolean wait = latch.await(10, TimeUnit.SECONDS);
assertThat(wait, is(true));
List<LinkingBeacon> beacons = mgr.getLinkingBeacons();
assertThat(beacons, is(notNullValue()));
assertThat(beacons.get(0).getExtraId(), is(LINKING_EXTRA_ID));
assertThat(beacons.get(0).getVendorId(), is(LINKING_VENDOR_ID));
assertThat(beacons.get(0).getVersion(), is(LINKING_VERSION));
assertThat(beacons.get(0).getTimeStamp(), is(LINKING_TIME_STAMP));
assertThat(beacons.get(0).getGattData().getRssi(), is(LINKING_RSSI));
assertThat(beacons.get(0).getGattData().getTxPower(), is(LINKING_TX_POWER));
assertThat(beacons.get(0).getGattData().getDistance(), is(LINKING_DISTANCE));
assertThat(beacons.get(0).getAtmosphericPressureData().getValue(), is(LINKING_ATMOSPHERIC_PRESSURE));
assertThat(beacons.get(0).getBatteryData().isLowBatteryFlag(), is(LINKING_LOW_BATTERY));
assertThat(beacons.get(0).getBatteryData().getLevel(), is(LINKING_BATTERY_LEVEL));
assertThat(beacons.get(0).getHumidityData().getValue(), is(LINKING_HUMIDITY));
assertThat(beacons.get(0).getTemperatureData().getValue(), is(LINKING_TEMPERATURE));
assertThat(beacons.get(0).getRawData().getValue(), is(LINKING_RAW_DATA));
mgr.destroy();
}
@Test
public void addOnBeaconConnectListener_connect() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final LinkingBeacon[] test = new LinkingBeacon[1];
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.addOnBeaconConnectListener(new LinkingBeaconManager.OnBeaconConnectListener() {
@Override
public void onConnected(LinkingBeacon beacon) {
test[0] = beacon;
latch.countDown();
}
@Override
public void onDisconnected(LinkingBeacon beacon) {
latch.countDown();
}
});
sendDelay(mgr, createAll());
boolean wait = latch.await(10, TimeUnit.SECONDS);
assertThat(wait, is(true));
assertThat(test[0], notNullValue());
assertThat(test[0].getExtraId(), is(LINKING_EXTRA_ID));
assertThat(test[0].getVendorId(), is(LINKING_VENDOR_ID));
assertThat(test[0].getVersion(), is(LINKING_VERSION));
assertThat(test[0].getTimeStamp(), is(LINKING_TIME_STAMP));
assertThat(test[0].getGattData().getRssi(), is(LINKING_RSSI));
assertThat(test[0].getGattData().getTxPower(), is(LINKING_TX_POWER));
assertThat(test[0].getGattData().getDistance(), is(LINKING_DISTANCE));
assertThat(test[0].getAtmosphericPressureData().getValue(), is(LINKING_ATMOSPHERIC_PRESSURE));
assertThat(test[0].getBatteryData().isLowBatteryFlag(), is(LINKING_LOW_BATTERY));
assertThat(test[0].getBatteryData().getLevel(), is(LINKING_BATTERY_LEVEL));
assertThat(test[0].getHumidityData().getValue(), is(LINKING_HUMIDITY));
assertThat(test[0].getTemperatureData().getValue(), is(LINKING_TEMPERATURE));
assertThat(test[0].getRawData().getValue(), is(LINKING_RAW_DATA));
mgr.destroy();
}
@Test
public void addOnBeaconConnectListener_disconnect() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final LinkingBeacon[] test = new LinkingBeacon[1];
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.addOnBeaconConnectListener(new LinkingBeaconManager.OnBeaconConnectListener() {
@Override
public void onConnected(LinkingBeacon beacon) {
}
@Override
public void onDisconnected(LinkingBeacon beacon) {
test[0] = beacon;
latch.countDown();
}
});
sendDelay(mgr, createAll());
boolean wait = latch.await(40, TimeUnit.SECONDS);
assertThat(wait, is(true));
assertThat(test[0], notNullValue());
assertThat(test[0].isOnline(), is(false));
assertThat(test[0].getExtraId(), is(LINKING_EXTRA_ID));
assertThat(test[0].getVendorId(), is(LINKING_VENDOR_ID));
assertThat(test[0].getVersion(), is(LINKING_VERSION));
assertThat(test[0].getTimeStamp(), is(LINKING_TIME_STAMP));
assertThat(test[0].getGattData().getRssi(), is(LINKING_RSSI));
assertThat(test[0].getGattData().getTxPower(), is(LINKING_TX_POWER));
assertThat(test[0].getGattData().getDistance(), is(LINKING_DISTANCE));
assertThat(test[0].getAtmosphericPressureData().getValue(), is(LINKING_ATMOSPHERIC_PRESSURE));
assertThat(test[0].getBatteryData().isLowBatteryFlag(), is(LINKING_LOW_BATTERY));
assertThat(test[0].getBatteryData().getLevel(), is(LINKING_BATTERY_LEVEL));
assertThat(test[0].getHumidityData().getValue(), is(LINKING_HUMIDITY));
assertThat(test[0].getTemperatureData().getValue(), is(LINKING_TEMPERATURE));
assertThat(test[0].getRawData().getValue(), is(LINKING_RAW_DATA));
mgr.destroy();
}
@Test
public void all_listener() throws Exception {
final CountDownLatch latch = new CountDownLatch(8);
final LinkingBeacon[] test1 = new LinkingBeacon[1];
final GattData[] test2 = new GattData[1];
final BatteryData[] test3 = new BatteryData[1];
final int[] test4 = new int[1];
final long[] test5 = new long[1];
final AtmosphericPressureData[] test6 = new AtmosphericPressureData[1];
final HumidityData[] test7 = new HumidityData[1];
final TemperatureData[] test8 = new TemperatureData[1];
final RawData[] test9 = new RawData[1];
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.addOnBeaconConnectListener(new LinkingBeaconManager.OnBeaconConnectListener() {
@Override
public void onConnected(LinkingBeacon beacon) {
test1[0] = beacon;
latch.countDown();
}
@Override
public void onDisconnected(LinkingBeacon beacon) {
}
});
mgr.addOnBeaconProximityEventListener(new LinkingBeaconManager.OnBeaconProximityEventListener() {
@Override
public void onProximity(LinkingBeacon beacon, GattData gatt) {
test2[0] = gatt;
latch.countDown();
}
});
mgr.addOnBeaconAtmosphericPressureEventListener(new LinkingBeaconManager.OnBeaconAtmosphericPressureEventListener() {
@Override
public void onAtmosphericPressure(LinkingBeacon beacon, AtmosphericPressureData atmosphericPressure) {
test6[0] = atmosphericPressure;
latch.countDown();
}
});
mgr.addOnBeaconHumidityEventListener(new LinkingBeaconManager.OnBeaconHumidityEventListener() {
@Override
public void onHumidity(LinkingBeacon beacon, HumidityData humidity) {
test7[0] = humidity;
latch.countDown();
}
});
mgr.addOnBeaconTemperatureEventListener(new LinkingBeaconManager.OnBeaconTemperatureEventListener() {
@Override
public void onTemperature(LinkingBeacon beacon, TemperatureData temperature) {
test8[0] = temperature;
latch.countDown();
}
});
mgr.addOnBeaconBatteryEventListener(new LinkingBeaconManager.OnBeaconBatteryEventListener() {
@Override
public void onBattery(LinkingBeacon beacon, BatteryData battery) {
test3[0] = battery;
latch.countDown();
}
});
mgr.addOnBeaconButtonEventListener(new LinkingBeaconManager.OnBeaconButtonEventListener() {
@Override
public void onClickButton(LinkingBeacon beacon, int keyCode, long timeStamp) {
test4[0] = keyCode;
test5[0] = timeStamp;
latch.countDown();
}
});
mgr.addOnBeaconRawDataEventListener(new LinkingBeaconManager.OnBeaconRawDataEventListener() {
@Override
public void onRawData(LinkingBeacon beacon, RawData rawData) {
test9[0] = rawData;
latch.countDown();
}
});
sendDelay(mgr, createAll());
boolean wait = latch.await(10, TimeUnit.SECONDS);
assertThat(wait, is(true));
assertThat(test1[0], notNullValue());
assertThat(test1[0].getExtraId(), is(LINKING_EXTRA_ID));
assertThat(test1[0].getVendorId(), is(LINKING_VENDOR_ID));
assertThat(test1[0].getVersion(), is(LINKING_VERSION));
assertThat(test1[0].getTimeStamp(), is(LINKING_TIME_STAMP));
assertThat(test2[0].getRssi(), is(LINKING_RSSI));
assertThat(test2[0].getTxPower(), is(LINKING_TX_POWER));
assertThat(test2[0].getDistance(), is(LINKING_DISTANCE));
assertThat(test6[0].getValue(), is(LINKING_ATMOSPHERIC_PRESSURE));
assertThat(test3[0].isLowBatteryFlag(), is(LINKING_LOW_BATTERY));
assertThat(test3[0].getLevel(), is(LINKING_BATTERY_LEVEL));
assertThat(test7[0].getValue(), is(LINKING_HUMIDITY));
assertThat(test8[0].getValue(), is(LINKING_TEMPERATURE));
assertThat(test9[0].getValue(), is(LINKING_RAW_DATA));
assertThat(test4[0], is(LINKING_BUTTON_ID));
assertThat(test5[0], is(LINKING_TIME_STAMP));
mgr.destroy();
}
@Test
public void atmosphericPressure() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final AtmosphericPressureData[] test = new AtmosphericPressureData[1];
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.addOnBeaconAtmosphericPressureEventListener(new LinkingBeaconManager.OnBeaconAtmosphericPressureEventListener() {
@Override
public void onAtmosphericPressure(LinkingBeacon beacon, AtmosphericPressureData atmosphericPressure) {
test[0] = atmosphericPressure;
latch.countDown();
}
});
sendDelay(mgr, createAtmosphericPressureIntent());
boolean wait = latch.await(10, TimeUnit.SECONDS);
assertThat(wait, is(true));
assertThat(test[0].getTimeStamp(), is(LINKING_TIME_STAMP));
assertThat(test[0].getValue(), is(LINKING_ATMOSPHERIC_PRESSURE));
mgr.destroy();
}
@Test
public void temperature() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final TemperatureData[] test = new TemperatureData[1];
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.addOnBeaconTemperatureEventListener(new LinkingBeaconManager.OnBeaconTemperatureEventListener() {
@Override
public void onTemperature(LinkingBeacon beacon, TemperatureData temperature) {
test[0] = temperature;
latch.countDown();
}
});
sendDelay(mgr, createTemperatureIntent());
boolean wait = latch.await(10, TimeUnit.SECONDS);
assertThat(wait, is(true));
assertThat(test[0].getTimeStamp(), is(LINKING_TIME_STAMP));
assertThat(test[0].getValue(), is(LINKING_TEMPERATURE));
mgr.destroy();
}
@Test
public void humidity() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final HumidityData[] test = new HumidityData[1];
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.addOnBeaconHumidityEventListener(new LinkingBeaconManager.OnBeaconHumidityEventListener() {
@Override
public void onHumidity(LinkingBeacon beacon, HumidityData humidity) {
test[0] = humidity;
latch.countDown();
}
});
sendDelay(mgr, createHumidityIntent());
boolean wait = latch.await(10, TimeUnit.SECONDS);
assertThat(wait, is(true));
assertThat(test[0].getTimeStamp(), is(LINKING_TIME_STAMP));
assertThat(test[0].getValue(), is(LINKING_HUMIDITY));
mgr.destroy();
}
@Test
public void rawData() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final RawData[] test = new RawData[1];
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.addOnBeaconRawDataEventListener(new LinkingBeaconManager.OnBeaconRawDataEventListener() {
@Override
public void onRawData(LinkingBeacon beacon, RawData rawData) {
test[0] = rawData;
latch.countDown();
}
});
sendDelay(mgr, createRawDataIntent());
boolean wait = latch.await(10, TimeUnit.SECONDS);
assertThat(wait, is(true));
assertThat(test[0].getTimeStamp(), is(LINKING_TIME_STAMP));
assertThat(test[0].getValue(), is(LINKING_RAW_DATA));
mgr.destroy();
}
@Test
public void proximity() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final GattData[] test = new GattData[1];
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.addOnBeaconProximityEventListener(new LinkingBeaconManager.OnBeaconProximityEventListener() {
@Override
public void onProximity(LinkingBeacon beacon, GattData gatt) {
test[0] = gatt;
latch.countDown();
}
});
sendDelay(mgr, createGatt());
boolean wait = latch.await(10, TimeUnit.SECONDS);
assertThat(wait, is(true));
assertThat(test[0].getRssi(), is(LINKING_RSSI));
assertThat(test[0].getTxPower(), is(LINKING_TX_POWER));
assertThat(test[0].getDistance(), is(LINKING_DISTANCE));
assertThat(test[0].getTimeStamp(), is(LINKING_TIME_STAMP));
mgr.destroy();
}
@Test
public void battery() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final BatteryData[] test1 = new BatteryData[1];
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.addOnBeaconBatteryEventListener(new LinkingBeaconManager.OnBeaconBatteryEventListener() {
@Override
public void onBattery(LinkingBeacon beacon, BatteryData battery) {
test1[0] = battery;
latch.countDown();
}
});
sendDelay(mgr, createBatteryIntent());
boolean wait = latch.await(10, TimeUnit.SECONDS);
assertThat(wait, is(true));
assertThat(test1[0].isLowBatteryFlag(), is(LINKING_LOW_BATTERY));
assertThat(test1[0].getLevel(), is(LINKING_BATTERY_LEVEL));
mgr.destroy();
}
@Test
public void buttonId() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final int[] test1 = new int[1];
final long[] test2 = new long[1];
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.addOnBeaconButtonEventListener(new LinkingBeaconManager.OnBeaconButtonEventListener() {
@Override
public void onClickButton(LinkingBeacon beacon, int keyCode, long timeStamp) {
test1[0] = keyCode;
test2[0] = timeStamp;
latch.countDown();
}
});
sendDelay(mgr, createButtonIntent());
boolean wait = latch.await(10, TimeUnit.SECONDS);
assertThat(wait, is(true));
assertThat(test1[0], is(LINKING_BUTTON_ID));
assertThat(test2[0], is(LINKING_TIME_STAMP));
mgr.destroy();
}
@Test
public void findBeacon() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.addOnBeaconConnectListener(new LinkingBeaconManager.OnBeaconConnectListener() {
@Override
public void onConnected(LinkingBeacon beacon) {
latch.countDown();
}
@Override
public void onDisconnected(LinkingBeacon beacon) {
latch.countDown();
}
});
sendDelay(mgr, createAll());
boolean wait = latch.await(10, TimeUnit.SECONDS);
assertThat(wait, is(true));
LinkingBeacon beacon = mgr.findBeacon(LINKING_EXTRA_ID, LINKING_VENDOR_ID);
assertThat(beacon, notNullValue());
assertThat(beacon.getExtraId(), is(LINKING_EXTRA_ID));
assertThat(beacon.getVendorId(), is(LINKING_VENDOR_ID));
assertThat(beacon.getVersion(), is(LINKING_VERSION));
assertThat(beacon.getTimeStamp(), is(LINKING_TIME_STAMP));
assertThat(beacon.getGattData().getRssi(), is(LINKING_RSSI));
assertThat(beacon.getGattData().getTxPower(), is(LINKING_TX_POWER));
assertThat(beacon.getGattData().getDistance(), is(LINKING_DISTANCE));
assertThat(beacon.getAtmosphericPressureData().getValue(), is(LINKING_ATMOSPHERIC_PRESSURE));
assertThat(beacon.getBatteryData().isLowBatteryFlag(), is(LINKING_LOW_BATTERY));
assertThat(beacon.getBatteryData().getLevel(), is(LINKING_BATTERY_LEVEL));
assertThat(beacon.getHumidityData().getValue(), is(LINKING_HUMIDITY));
assertThat(beacon.getTemperatureData().getValue(), is(LINKING_TEMPERATURE));
assertThat(beacon.getRawData().getValue(), is(LINKING_RAW_DATA));
mgr.destroy();
}
@Test
public void findBeacon_NotFound() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.addOnBeaconConnectListener(new LinkingBeaconManager.OnBeaconConnectListener() {
@Override
public void onConnected(LinkingBeacon beacon) {
latch.countDown();
}
@Override
public void onDisconnected(LinkingBeacon beacon) {
latch.countDown();
}
});
sendDelay(mgr, createAll());
boolean wait = latch.await(10, TimeUnit.SECONDS);
assertThat(wait, is(true));
LinkingBeacon beacon = mgr.findBeacon(-1, -1);
assertThat(beacon, is(nullValue()));
mgr.destroy();
}
@Test
public void findBeacon_NotFound2() throws Exception {
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
LinkingBeacon beacon = mgr.findBeacon(-1, -1);
assertThat(beacon, is(nullValue()));
mgr.destroy();
}
@Test
public void removeBeacon() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
mgr.addOnBeaconConnectListener(new LinkingBeaconManager.OnBeaconConnectListener() {
@Override
public void onConnected(LinkingBeacon beacon) {
latch.countDown();
}
@Override
public void onDisconnected(LinkingBeacon beacon) {
latch.countDown();
}
});
sendDelay(mgr, createAll());
boolean wait = latch.await(10, TimeUnit.SECONDS);
assertThat(wait, is(true));
LinkingBeacon beacon = mgr.findBeacon(LINKING_EXTRA_ID, LINKING_VENDOR_ID);
assertThat(beacon, notNullValue());
assertThat(beacon.getExtraId(), is(LINKING_EXTRA_ID));
assertThat(beacon.getVendorId(), is(LINKING_VENDOR_ID));
assertThat(beacon.getVersion(), is(LINKING_VERSION));
assertThat(beacon.getTimeStamp(), is(LINKING_TIME_STAMP));
assertThat(beacon.getGattData().getRssi(), is(LINKING_RSSI));
assertThat(beacon.getGattData().getTxPower(), is(LINKING_TX_POWER));
assertThat(beacon.getGattData().getDistance(), is(LINKING_DISTANCE));
assertThat(beacon.getAtmosphericPressureData().getValue(), is(LINKING_ATMOSPHERIC_PRESSURE));
assertThat(beacon.getBatteryData().isLowBatteryFlag(), is(LINKING_LOW_BATTERY));
assertThat(beacon.getBatteryData().getLevel(), is(LINKING_BATTERY_LEVEL));
assertThat(beacon.getHumidityData().getValue(), is(LINKING_HUMIDITY));
assertThat(beacon.getTemperatureData().getValue(), is(LINKING_TEMPERATURE));
assertThat(beacon.getRawData().getValue(), is(LINKING_RAW_DATA));
mgr.removeBeacon(beacon);
beacon = mgr.findBeacon(LINKING_EXTRA_ID, LINKING_VENDOR_ID);
assertThat(beacon, is(nullValue()));
mgr.destroy();
}
@Test
public void removeBeacon_null() throws Exception {
final LinkingBeaconManager mgr = new LinkingBeaconManager(mContext);
assertThat(mgr, is(notNullValue()));
try {
mgr.removeBeacon(null);
assertTrue(true);
} catch (Exception e) {
assertTrue(false);
}
mgr.destroy();
}
private void sendDelay(final LinkingBeaconManager mgr, final Intent intent) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
mgr.onReceivedBeacon(intent);
}
}).start();
}
private Intent createAll() {
Intent intent = new Intent();
intent.setAction(LinkingBeaconUtil.ACTION_BEACON_SCAN_RESULT);
intent.setClass(mContext, LinkingDevicePluginService.class);
intent.putExtra(LinkingBeaconUtil.EXTRA_ID, LINKING_EXTRA_ID);
intent.putExtra(LinkingBeaconUtil.VENDOR_ID, LINKING_VENDOR_ID);
intent.putExtra(LinkingBeaconUtil.VERSION, LINKING_VERSION);
intent.putExtra(LinkingBeaconUtil.TIME_STAMP, LINKING_TIME_STAMP);
intent.putExtra(LinkingBeaconUtil.RSSI, LINKING_RSSI);
intent.putExtra(LinkingBeaconUtil.TX_POWER, LINKING_TX_POWER);
intent.putExtra(LinkingBeaconUtil.DISTANCE, LINKING_DISTANCE);
intent.putExtra(LinkingBeaconUtil.ATMOSPHERIC_PRESSURE, LINKING_ATMOSPHERIC_PRESSURE);
intent.putExtra(LinkingBeaconUtil.LOW_BATTERY, LINKING_LOW_BATTERY);
intent.putExtra(LinkingBeaconUtil.BATTERY_LEVEL, LINKING_BATTERY_LEVEL);
intent.putExtra(LinkingBeaconUtil.HUMIDITY, LINKING_HUMIDITY);
intent.putExtra(LinkingBeaconUtil.TEMPERATURE, LINKING_TEMPERATURE);
intent.putExtra(LinkingBeaconUtil.RAW_DATA, LINKING_RAW_DATA);
intent.putExtra(LinkingBeaconUtil.BUTTON_ID, LINKING_BUTTON_ID);
return intent;
}
private Intent createGatt() {
Intent intent = new Intent();
intent.setAction(LinkingBeaconUtil.ACTION_BEACON_SCAN_RESULT);
intent.setClass(mContext, LinkingDevicePluginService.class);
intent.putExtra(LinkingBeaconUtil.EXTRA_ID, LINKING_EXTRA_ID);
intent.putExtra(LinkingBeaconUtil.VENDOR_ID, LINKING_VENDOR_ID);
intent.putExtra(LinkingBeaconUtil.VERSION, LINKING_VERSION);
intent.putExtra(LinkingBeaconUtil.TIME_STAMP, LINKING_TIME_STAMP);
intent.putExtra(LinkingBeaconUtil.RSSI, LINKING_RSSI);
intent.putExtra(LinkingBeaconUtil.TX_POWER, LINKING_TX_POWER);
intent.putExtra(LinkingBeaconUtil.DISTANCE, LINKING_DISTANCE);
return intent;
}
private Intent createBatteryIntent() {
Intent intent = new Intent();
intent.setAction(LinkingBeaconUtil.ACTION_BEACON_SCAN_RESULT);
intent.setClass(mContext, LinkingDevicePluginService.class);
intent.putExtra(LinkingBeaconUtil.EXTRA_ID, LINKING_EXTRA_ID);
intent.putExtra(LinkingBeaconUtil.VENDOR_ID, LINKING_VENDOR_ID);
intent.putExtra(LinkingBeaconUtil.VERSION, LINKING_VERSION);
intent.putExtra(LinkingBeaconUtil.TIME_STAMP, LINKING_TIME_STAMP);
intent.putExtra(LinkingBeaconUtil.RSSI, LINKING_RSSI);
intent.putExtra(LinkingBeaconUtil.TX_POWER, LINKING_TX_POWER);
intent.putExtra(LinkingBeaconUtil.DISTANCE, LINKING_DISTANCE);
intent.putExtra(LinkingBeaconUtil.BATTERY_LEVEL, LINKING_BATTERY_LEVEL);
intent.putExtra(LinkingBeaconUtil.LOW_BATTERY, LINKING_LOW_BATTERY);
return intent;
}
private Intent createAtmosphericPressureIntent() {
Intent intent = new Intent();
intent.setAction(LinkingBeaconUtil.ACTION_BEACON_SCAN_RESULT);
intent.setClass(mContext, LinkingDevicePluginService.class);
intent.putExtra(LinkingBeaconUtil.EXTRA_ID, LINKING_EXTRA_ID);
intent.putExtra(LinkingBeaconUtil.VENDOR_ID, LINKING_VENDOR_ID);
intent.putExtra(LinkingBeaconUtil.VERSION, LINKING_VERSION);
intent.putExtra(LinkingBeaconUtil.TIME_STAMP, LINKING_TIME_STAMP);
intent.putExtra(LinkingBeaconUtil.RSSI, LINKING_RSSI);
intent.putExtra(LinkingBeaconUtil.TX_POWER, LINKING_TX_POWER);
intent.putExtra(LinkingBeaconUtil.DISTANCE, LINKING_DISTANCE);
intent.putExtra(LinkingBeaconUtil.ATMOSPHERIC_PRESSURE, LINKING_ATMOSPHERIC_PRESSURE);
return intent;
}
private Intent createTemperatureIntent() {
Intent intent = new Intent();
intent.setAction(LinkingBeaconUtil.ACTION_BEACON_SCAN_RESULT);
intent.setClass(mContext, LinkingDevicePluginService.class);
intent.putExtra(LinkingBeaconUtil.EXTRA_ID, LINKING_EXTRA_ID);
intent.putExtra(LinkingBeaconUtil.VENDOR_ID, LINKING_VENDOR_ID);
intent.putExtra(LinkingBeaconUtil.VERSION, LINKING_VERSION);
intent.putExtra(LinkingBeaconUtil.TIME_STAMP, LINKING_TIME_STAMP);
intent.putExtra(LinkingBeaconUtil.RSSI, LINKING_RSSI);
intent.putExtra(LinkingBeaconUtil.TX_POWER, LINKING_TX_POWER);
intent.putExtra(LinkingBeaconUtil.DISTANCE, LINKING_DISTANCE);
intent.putExtra(LinkingBeaconUtil.TEMPERATURE, LINKING_TEMPERATURE);
return intent;
}
private Intent createHumidityIntent() {
Intent intent = new Intent();
intent.setAction(LinkingBeaconUtil.ACTION_BEACON_SCAN_RESULT);
intent.setClass(mContext, LinkingDevicePluginService.class);
intent.putExtra(LinkingBeaconUtil.EXTRA_ID, LINKING_EXTRA_ID);
intent.putExtra(LinkingBeaconUtil.VENDOR_ID, LINKING_VENDOR_ID);
intent.putExtra(LinkingBeaconUtil.VERSION, LINKING_VERSION);
intent.putExtra(LinkingBeaconUtil.TIME_STAMP, LINKING_TIME_STAMP);
intent.putExtra(LinkingBeaconUtil.RSSI, LINKING_RSSI);
intent.putExtra(LinkingBeaconUtil.TX_POWER, LINKING_TX_POWER);
intent.putExtra(LinkingBeaconUtil.DISTANCE, LINKING_DISTANCE);
intent.putExtra(LinkingBeaconUtil.HUMIDITY, LINKING_HUMIDITY);
return intent;
}
private Intent createRawDataIntent() {
Intent intent = new Intent();
intent.setAction(LinkingBeaconUtil.ACTION_BEACON_SCAN_RESULT);
intent.setClass(mContext, LinkingDevicePluginService.class);
intent.putExtra(LinkingBeaconUtil.EXTRA_ID, LINKING_EXTRA_ID);
intent.putExtra(LinkingBeaconUtil.VENDOR_ID, LINKING_VENDOR_ID);
intent.putExtra(LinkingBeaconUtil.VERSION, LINKING_VERSION);
intent.putExtra(LinkingBeaconUtil.TIME_STAMP, LINKING_TIME_STAMP);
intent.putExtra(LinkingBeaconUtil.RSSI, LINKING_RSSI);
intent.putExtra(LinkingBeaconUtil.TX_POWER, LINKING_TX_POWER);
intent.putExtra(LinkingBeaconUtil.DISTANCE, LINKING_DISTANCE);
intent.putExtra(LinkingBeaconUtil.RAW_DATA, LINKING_RAW_DATA);
return intent;
}
private Intent createButtonIntent() {
Intent intent = new Intent();
intent.setAction(LinkingBeaconUtil.ACTION_BEACON_SCAN_RESULT);
intent.setClass(mContext, LinkingDevicePluginService.class);
intent.putExtra(LinkingBeaconUtil.EXTRA_ID, LINKING_EXTRA_ID);
intent.putExtra(LinkingBeaconUtil.VENDOR_ID, LINKING_VENDOR_ID);
intent.putExtra(LinkingBeaconUtil.VERSION, LINKING_VERSION);
intent.putExtra(LinkingBeaconUtil.TIME_STAMP, LINKING_TIME_STAMP);
intent.putExtra(LinkingBeaconUtil.RSSI, LINKING_RSSI);
intent.putExtra(LinkingBeaconUtil.TX_POWER, LINKING_TX_POWER);
intent.putExtra(LinkingBeaconUtil.DISTANCE, LINKING_DISTANCE);
intent.putExtra(LinkingBeaconUtil.BUTTON_ID, LINKING_BUTTON_ID);
return intent;
}
}