package uk.co.alt236.bluetoothlelib.util;
import junit.framework.TestCase;
import java.util.List;
import java.util.Map;
import uk.co.alt236.bluetoothlelib.device.adrecord.AdRecord;
/**
*
*/
public class AdRecordUtilsTest extends TestCase {
private static final byte[] NON_IBEACON =
{2, 1, 26, 11, -1, 76, 0, 9, 6, 3, -32, -64, -88,
1, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
public void testParseScanRecordAsList() throws Exception {
final List<AdRecord> adRecords = AdRecordUtils.parseScanRecordAsList(NON_IBEACON);
assertNotNull(adRecords);
assertEquals(2, adRecords.size());
int type = AdRecord.TYPE_FLAGS;
assertEquals(type, adRecords.get(0).getType());
assertEquals(2, adRecords.get(0).getLength());
type = AdRecord.TYPE_MANUFACTURER_SPECIFIC_DATA;
assertEquals(type, adRecords.get(1).getType());
assertEquals(11, adRecords.get(1).getLength());
}
public void testParseScanRecordAsMap() throws Exception {
final Map<Integer, AdRecord> adRecords = AdRecordUtils.parseScanRecordAsMap(NON_IBEACON);
assertNotNull(adRecords);
assertEquals(2, adRecords.size());
int type = AdRecord.TYPE_FLAGS;
assertEquals(type, adRecords.get(type).getType());
assertEquals(2, adRecords.get(type).getLength());
type = AdRecord.TYPE_MANUFACTURER_SPECIFIC_DATA;
assertEquals(type, adRecords.get(type).getType());
assertEquals(11, adRecords.get(type).getLength());
}
public void testParseScanRecordAsSparseArray() throws Exception {
//
// Cannot be tested here as it relies on Android code...
//
// final SparseArray<AdRecord> adRecords = AdRecordUtils.parseScanRecordAsSparseArray(NON_IBEACON);
// assertNotNull(adRecords);
// assertEquals(2, adRecords.size());
// assertEquals(AdRecord.TYPE_FLAGS, adRecords.get(AdRecord.TYPE_FLAGS).getType());
// assertEquals(AdRecord.TYPE_MANUFACTURER_SPECIFIC_DATA, adRecords.get(AdRecord.TYPE_MANUFACTURER_SPECIFIC_DATA).getType());
}
}