This commit is contained in:
1 file changed
+69
@@ -0,0 +1,69 @@
|
|||||||
|
package com.m57.hermescontrol.ui.authlogin
|
||||||
|
|
||||||
|
import android.app.Application
|
||||||
|
import com.m57.hermescontrol.data.local.AuthManager
|
||||||
|
import com.m57.hermescontrol.data.remote.OkHttpProvider
|
||||||
|
import io.mockk.every
|
||||||
|
import io.mockk.mockk
|
||||||
|
import io.mockk.mockkObject
|
||||||
|
import io.mockk.unmockkAll
|
||||||
|
import okhttp3.OkHttpClient
|
||||||
|
import org.junit.After
|
||||||
|
import org.junit.Assert.assertEquals
|
||||||
|
import org.junit.Assert.assertFalse
|
||||||
|
import org.junit.Assert.assertNull
|
||||||
|
import org.junit.Before
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class AuthLoginViewModelTest {
|
||||||
|
private lateinit var viewModel: AuthLoginViewModel
|
||||||
|
private val app = mockk<Application>(relaxed = true)
|
||||||
|
|
||||||
|
@Before
|
||||||
|
fun setup() {
|
||||||
|
mockkObject(AuthManager)
|
||||||
|
every { AuthManager.getHost() } returns "localhost"
|
||||||
|
every { AuthManager.getPort() } returns 9119
|
||||||
|
every { AuthManager.getConnectionProfiles() } returns emptyList()
|
||||||
|
|
||||||
|
mockkObject(OkHttpProvider)
|
||||||
|
every { OkHttpProvider.probe } returns mockk<OkHttpClient>(relaxed = true)
|
||||||
|
|
||||||
|
viewModel = AuthLoginViewModel(app)
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
fun teardown() {
|
||||||
|
unmockkAll()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `onHostChange updates host and clears error and auth mode`() {
|
||||||
|
viewModel.onHostChange(" 192.168.1.100 ")
|
||||||
|
|
||||||
|
val state = viewModel.uiState.value
|
||||||
|
assertEquals("192.168.1.100", state.host)
|
||||||
|
assertNull(state.errorMessage)
|
||||||
|
assertNull(state.authMode)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `onPortChange updates port keeping only digits and clears error and auth mode`() {
|
||||||
|
viewModel.onPortChange("9a1b1c9")
|
||||||
|
|
||||||
|
val state = viewModel.uiState.value
|
||||||
|
assertEquals("9119", state.port)
|
||||||
|
assertNull(state.errorMessage)
|
||||||
|
assertNull(state.authMode)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `clearConnectionState resets connectionSuccess errorMessage and isLoading`() {
|
||||||
|
viewModel.clearConnectionState()
|
||||||
|
|
||||||
|
val state = viewModel.uiState.value
|
||||||
|
assertFalse(state.connectionSuccess)
|
||||||
|
assertFalse(state.isLoading)
|
||||||
|
assertNull(state.errorMessage)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user