mirror of
https://github.com/aljazceru/Android-nRF-Toolbox.git
synced 2025-12-20 07:54:20 +01:00
Fix tests
This commit is contained in:
@@ -66,6 +66,10 @@ dependencies {
|
|||||||
implementation(libs.androidx.activity.compose)
|
implementation(libs.androidx.activity.compose)
|
||||||
implementation(libs.androidx.lifecycle.service)
|
implementation(libs.androidx.lifecycle.service)
|
||||||
|
|
||||||
|
testImplementation(libs.hilt.android.testing)
|
||||||
|
kaptTest(libs.hilt.compiler)
|
||||||
|
testImplementation(libs.androidx.test.rules)
|
||||||
|
|
||||||
testImplementation(libs.junit4)
|
testImplementation(libs.junit4)
|
||||||
testImplementation(libs.test.mockk)
|
testImplementation(libs.test.mockk)
|
||||||
testImplementation(libs.androidx.test.ext)
|
testImplementation(libs.androidx.test.ext)
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import kotlinx.coroutines.flow.mapNotNull
|
|||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import no.nordicsemi.android.common.core.DataByteArray
|
import no.nordicsemi.android.common.core.DataByteArray
|
||||||
|
import no.nordicsemi.android.common.logger.BleLogger
|
||||||
import no.nordicsemi.android.gls.main.viewmodel.BATTERY_LEVEL_CHARACTERISTIC_UUID
|
import no.nordicsemi.android.gls.main.viewmodel.BATTERY_LEVEL_CHARACTERISTIC_UUID
|
||||||
import no.nordicsemi.android.gls.main.viewmodel.BATTERY_SERVICE_UUID
|
import no.nordicsemi.android.gls.main.viewmodel.BATTERY_SERVICE_UUID
|
||||||
import no.nordicsemi.android.gls.main.viewmodel.GLS_SERVICE_UUID
|
import no.nordicsemi.android.gls.main.viewmodel.GLS_SERVICE_UUID
|
||||||
@@ -106,7 +107,8 @@ class GlsServer @Inject constructor(
|
|||||||
server = ServerBleGatt.create(
|
server = ServerBleGatt.create(
|
||||||
context = context,
|
context = context,
|
||||||
config = arrayOf(serviceConfig, batteryService),
|
config = arrayOf(serviceConfig, batteryService),
|
||||||
mock = device
|
mock = device,
|
||||||
|
logger = { priority, log -> println(log) }
|
||||||
)
|
)
|
||||||
|
|
||||||
val advertiser = BleAdvertiser.create(context)
|
val advertiser = BleAdvertiser.create(context)
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
package no.nordicsemi.android.gls
|
package no.nordicsemi.android.gls
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import dagger.hilt.android.testing.HiltAndroidTest
|
||||||
|
import dagger.hilt.android.testing.HiltTestApplication
|
||||||
import io.mockk.every
|
import io.mockk.every
|
||||||
import io.mockk.impl.annotations.MockK
|
import io.mockk.impl.annotations.MockK
|
||||||
import io.mockk.impl.annotations.RelaxedMockK
|
import io.mockk.impl.annotations.RelaxedMockK
|
||||||
import io.mockk.junit4.MockKRule
|
import io.mockk.junit4.MockKRule
|
||||||
import io.mockk.justRun
|
import io.mockk.justRun
|
||||||
import io.mockk.mockk
|
|
||||||
import io.mockk.mockkObject
|
|
||||||
import io.mockk.mockkStatic
|
import io.mockk.mockkStatic
|
||||||
import io.mockk.spyk
|
import io.mockk.spyk
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
@@ -19,20 +19,19 @@ import kotlinx.coroutines.test.resetMain
|
|||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import kotlinx.coroutines.test.setMain
|
import kotlinx.coroutines.test.setMain
|
||||||
import no.nordicsemi.android.analytics.AppAnalytics
|
import no.nordicsemi.android.analytics.AppAnalytics
|
||||||
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
import no.nordicsemi.android.common.core.ApplicationScope
|
||||||
|
import no.nordicsemi.android.common.logger.BleLoggerAndLauncher
|
||||||
import no.nordicsemi.android.common.navigation.NavigationResult
|
import no.nordicsemi.android.common.navigation.NavigationResult
|
||||||
import no.nordicsemi.android.common.navigation.Navigator
|
import no.nordicsemi.android.common.navigation.Navigator
|
||||||
import no.nordicsemi.android.gls.data.WorkingMode
|
import no.nordicsemi.android.gls.data.WorkingMode
|
||||||
import no.nordicsemi.android.gls.main.view.OnWorkingModeSelected
|
import no.nordicsemi.android.gls.main.view.OnWorkingModeSelected
|
||||||
import no.nordicsemi.android.gls.main.viewmodel.GLSViewModel
|
import no.nordicsemi.android.gls.main.viewmodel.GLSViewModel
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.ClientScope
|
|
||||||
import no.nordicsemi.android.kotlin.ble.core.MockServerDevice
|
import no.nordicsemi.android.kotlin.ble.core.MockServerDevice
|
||||||
import no.nordicsemi.android.kotlin.ble.core.data.BleGattConnectionStatus
|
import no.nordicsemi.android.kotlin.ble.core.data.BleGattConnectionStatus
|
||||||
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
||||||
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionStateWithStatus
|
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionStateWithStatus
|
||||||
import no.nordicsemi.android.kotlin.ble.profile.gls.GlucoseMeasurementParser
|
import no.nordicsemi.android.kotlin.ble.profile.gls.GlucoseMeasurementParser
|
||||||
import no.nordicsemi.android.kotlin.ble.profile.gls.data.RequestStatus
|
import no.nordicsemi.android.kotlin.ble.profile.gls.data.RequestStatus
|
||||||
import no.nordicsemi.android.kotlin.ble.server.main.ServerScope
|
|
||||||
import no.nordicsemi.android.ui.view.NordicLoggerFactory
|
import no.nordicsemi.android.ui.view.NordicLoggerFactory
|
||||||
import no.nordicsemi.android.ui.view.StringConst
|
import no.nordicsemi.android.ui.view.StringConst
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
@@ -40,6 +39,9 @@ import org.junit.Assert.assertEquals
|
|||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
import org.junit.runner.RunWith
|
||||||
|
import org.robolectric.RobolectricTestRunner
|
||||||
|
import org.robolectric.annotation.Config
|
||||||
import kotlin.test.assertContentEquals
|
import kotlin.test.assertContentEquals
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -47,6 +49,9 @@ import kotlin.test.assertContentEquals
|
|||||||
*
|
*
|
||||||
* See [testing documentation](http://d.android.com/tools/testing).
|
* See [testing documentation](http://d.android.com/tools/testing).
|
||||||
*/
|
*/
|
||||||
|
@HiltAndroidTest
|
||||||
|
@Config(application = HiltTestApplication::class)
|
||||||
|
@RunWith(RobolectricTestRunner::class)
|
||||||
internal class GLSViewModelTest {
|
internal class GLSViewModelTest {
|
||||||
|
|
||||||
@get:Rule
|
@get:Rule
|
||||||
@@ -65,7 +70,7 @@ internal class GLSViewModelTest {
|
|||||||
lateinit var context: Context
|
lateinit var context: Context
|
||||||
|
|
||||||
@RelaxedMockK
|
@RelaxedMockK
|
||||||
lateinit var logger: NordicBlekLogger
|
lateinit var logger: BleLoggerAndLauncher
|
||||||
|
|
||||||
lateinit var viewModel: GLSViewModel
|
lateinit var viewModel: GLSViewModel
|
||||||
|
|
||||||
@@ -89,10 +94,8 @@ internal class GLSViewModelTest {
|
|||||||
@Before
|
@Before
|
||||||
fun before() {
|
fun before() {
|
||||||
runBlocking {
|
runBlocking {
|
||||||
mockkStatic("no.nordicsemi.android.kotlin.ble.client.main.ClientScopeKt")
|
mockkStatic("no.nordicsemi.android.common.core.ApplicationScopeKt")
|
||||||
every { ClientScope } returns CoroutineScope(UnconfinedTestDispatcher())
|
every { ApplicationScope } returns CoroutineScope(UnconfinedTestDispatcher())
|
||||||
mockkStatic("no.nordicsemi.android.kotlin.ble.server.main.ServerScopeKt")
|
|
||||||
every { ServerScope } returns CoroutineScope(UnconfinedTestDispatcher())
|
|
||||||
every { stringConst.APP_NAME } returns "Test"
|
every { stringConst.APP_NAME } returns "Test"
|
||||||
|
|
||||||
viewModel = spyk(GLSViewModel(context, navigator, analytics, stringConst, object :
|
viewModel = spyk(GLSViewModel(context, navigator, analytics, stringConst, object :
|
||||||
@@ -102,7 +105,7 @@ internal class GLSViewModelTest {
|
|||||||
profile: String?,
|
profile: String?,
|
||||||
key: String,
|
key: String,
|
||||||
name: String?,
|
name: String?,
|
||||||
): NordicBlekLogger {
|
): BleLoggerAndLauncher {
|
||||||
return logger
|
return logger
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,12 +117,6 @@ internal class GLSViewModelTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
|
||||||
fun prepareLogger() {
|
|
||||||
mockkObject(NordicBlekLogger.Companion)
|
|
||||||
every { NordicBlekLogger.create(any(), any(), any(), any()) } returns mockk()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `when connection fails return disconnected`() = runTest {
|
fun `when connection fails return disconnected`() = runTest {
|
||||||
val disconnectedState = GattConnectionStateWithStatus(
|
val disconnectedState = GattConnectionStateWithStatus(
|
||||||
|
|||||||
Reference in New Issue
Block a user