TestBeanAdvanced.java 文件源码

java
阅读 25 收藏 0 点赞 0 评论 0

项目:bean-sdk-android 作者:
@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
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号