@Suppress
public void testConnectMultipleBeansWithSameListener() throws InterruptedException {
/* This test requires at least 3 beans nearby to pass */
final List<Bean> beans = discoverBeans(3);
final Bean beanA = beans.get(0);
final Bean beanB = beans.get(1);
final Bean beanC = beans.get(2);
final CountDownLatch connectionLatch = new CountDownLatch(2);
final HashMap<String, Boolean> connectionState = new HashMap<>();
connectionState.put("bean_a_connected", false);
connectionState.put("bean_b_connected", false);
BeanListener beanListener = new BeanListener() {
@Override
public void onConnected() {
if (connectionState.get("bean_a_connected") == false) {
if (beanA.isConnected()) {
connectionState.put("bean_a_connected", true);
connectionLatch.countDown();
}
}
if (connectionState.get("bean_b_connected") == false) {
if (beanB.isConnected()) {
connectionState.put("bean_b_connected", true);
connectionLatch.countDown();
}
}
if (beanC.isConnected()) {
fail("Bean C not suppose to connect!");
}
}
@Override
public void onConnectionFailed() {
fail("Connection failed!");
}
@Override
public void onDisconnected() {
}
@Override
public void onSerialMessageReceived(byte[] data) {
}
@Override
public void onScratchValueChanged(ScratchBank bank, byte[] value) {
}
@Override
public void onError(BeanError error) {
fail(error.toString());
}
@Override
public void onReadRemoteRssi(final int rssi) {
System.out.println("onReadRemoteRssi: " + rssi);
}
};
beanA.connect(getContext(), beanListener);
beanB.connect(getContext(), beanListener);
connectionLatch.await(60, TimeUnit.SECONDS);
// No need to assert anything, implicit success based on connection latch
}
TestBeanAdvanced.java 文件源码
java
阅读 25
收藏 0
点赞 0
评论 0
项目:bean-sdk-android
作者:
评论列表
文章目录