This library adds support for testing the bluetooth
module to test-utils
This library is available on Maven Central. You can import Kaluga Test Utils Bluetooth as follows:
repositories {
// ...
mavenCentral()
}
// ...
dependencies {
// ...
implementation("com.splendo.kaluga:test-utils-bluetooth:$kalugaVersion")
}
This library contains mock classes for Scanner
, DeviceConnectionManager
, AdvertisementData
, Characteristic
, Descriptor
, BluetoothMonitor
, and MockDevice
.
In addition use createDeviceWrapper
, createServiceWrapper
to generate mocked Device and Service wrappers.
Create mock using buildMockDevice
:
val device = buildMockDevice(coroutineContext) {
identifier = identifierFromString("1234")!!
manufacturerId = 0xf00d
services {
add(uuidFrom("2345"))
}
connectionDelay = 100.milliseconds
}
Simulate connection to the device after given delay (connectionDelay
) and check connected state afterwards:
device.connect()
device.state.firstInstance<ConnectableDeviceState.Connected>()
Disconnect from the device:
device.disconnect()
device.state.firstInstance<ConnectableDeviceState.Disconnected>()