1adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang/* 2adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * Copyright (C) 2014 The Android Open Source Project 3adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * 4adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * Licensed under the Apache License, Version 2.0 (the "License"); 5adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * you may not use this file except in compliance with the License. 6adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * You may obtain a copy of the License at 7adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * 8adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * http://www.apache.org/licenses/LICENSE-2.0 9adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * 10adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * Unless required by applicable law or agreed to in writing, software 11adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * distributed under the License is distributed on an "AS IS" BASIS, 12adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * See the License for the specific language governing permissions and 14adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * limitations under the License. 15adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang */ 16adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang 176d81118032b92caa0f5cfebe11af02a98f819d5eWei Wangpackage android.bluetooth.le; 18adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang 196d81118032b92caa0f5cfebe11af02a98f819d5eWei Wangimport android.bluetooth.BluetoothAdapter; 206d81118032b92caa0f5cfebe11af02a98f819d5eWei Wangimport android.bluetooth.BluetoothDevice; 21adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wangimport android.os.Parcel; 22adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wangimport android.test.suitebuilder.annotation.SmallTest; 23adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang 24adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wangimport junit.framework.TestCase; 25adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang 26adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang/** 27adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * Unit test cases for Bluetooth LE scans. 28adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * <p> 296d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * To run this test, use adb shell am instrument -e class 'android.bluetooth.ScanResultTest' -w 306d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang * 'com.android.bluetooth.tests/android.bluetooth.BluetoothTestRunner' 31adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang */ 326d81118032b92caa0f5cfebe11af02a98f819d5eWei Wangpublic class ScanResultTest extends TestCase { 33adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang 34adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang /** 35adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang * Test read and write parcel of ScanResult 36adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang */ 37adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang @SmallTest 38adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang public void testScanResultParceling() { 396d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang BluetoothDevice device = BluetoothAdapter.getDefaultAdapter().getRemoteDevice( 406d81118032b92caa0f5cfebe11af02a98f819d5eWei Wang "01:02:03:04:05:06"); 41adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang byte[] scanRecord = new byte[] { 42adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang 1, 2, 3 }; 43adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang int rssi = -10; 44adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang long timestampMicros = 10000L; 45adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang 46685c1758902a42a7beb030d8bbaed3f7ce6f6135Wei Wang ScanResult result = new ScanResult(device, ScanRecord.parseFromBytes(scanRecord), rssi, 47685c1758902a42a7beb030d8bbaed3f7ce6f6135Wei Wang timestampMicros); 48adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang Parcel parcel = Parcel.obtain(); 49adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang result.writeToParcel(parcel, 0); 50adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang // Need to reset parcel data position to the beginning. 51adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang parcel.setDataPosition(0); 52adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang ScanResult resultFromParcel = ScanResult.CREATOR.createFromParcel(parcel); 53adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang assertEquals(result, resultFromParcel); 54adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang } 55adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang 56adf6aff5b03b1e3ca4636f9887225a7f906d1238Wei Wang} 57