mirror of
https://github.com/afollestad/nock-nock.git
synced 2025-08-26 12:17:54 +00:00
Add site view model should have default values
This commit is contained in:
parent
fc6bdf1c39
commit
76a5a46454
2 changed files with 26 additions and 3 deletions
|
@ -18,9 +18,11 @@ package com.afollestad.nocknock.ui.addsite
|
||||||
import androidx.annotation.CheckResult
|
import androidx.annotation.CheckResult
|
||||||
import androidx.annotation.VisibleForTesting
|
import androidx.annotation.VisibleForTesting
|
||||||
import androidx.annotation.VisibleForTesting.PRIVATE
|
import androidx.annotation.VisibleForTesting.PRIVATE
|
||||||
|
import androidx.lifecycle.Lifecycle.Event.ON_START
|
||||||
import androidx.lifecycle.LifecycleObserver
|
import androidx.lifecycle.LifecycleObserver
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
|
import androidx.lifecycle.OnLifecycleEvent
|
||||||
import com.afollestad.nocknock.R
|
import com.afollestad.nocknock.R
|
||||||
import com.afollestad.nocknock.data.AppDatabase
|
import com.afollestad.nocknock.data.AppDatabase
|
||||||
import com.afollestad.nocknock.data.model.Site
|
import com.afollestad.nocknock.data.model.Site
|
||||||
|
@ -32,6 +34,7 @@ import com.afollestad.nocknock.data.model.ValidationMode.TERM_SEARCH
|
||||||
import com.afollestad.nocknock.data.putSite
|
import com.afollestad.nocknock.data.putSite
|
||||||
import com.afollestad.nocknock.engine.validation.ValidationManager
|
import com.afollestad.nocknock.engine.validation.ValidationManager
|
||||||
import com.afollestad.nocknock.ui.ScopedViewModel
|
import com.afollestad.nocknock.ui.ScopedViewModel
|
||||||
|
import com.afollestad.nocknock.utilities.ext.MINUTE
|
||||||
import com.afollestad.nocknock.utilities.livedata.map
|
import com.afollestad.nocknock.utilities.livedata.map
|
||||||
import com.afollestad.nocknock.viewcomponents.ext.isNullOrLessThan
|
import com.afollestad.nocknock.viewcomponents.ext.isNullOrLessThan
|
||||||
import kotlinx.coroutines.CoroutineDispatcher
|
import kotlinx.coroutines.CoroutineDispatcher
|
||||||
|
@ -50,15 +53,21 @@ class AddSiteViewModel(
|
||||||
// Public properties
|
// Public properties
|
||||||
val name = MutableLiveData<String>()
|
val name = MutableLiveData<String>()
|
||||||
val url = MutableLiveData<String>()
|
val url = MutableLiveData<String>()
|
||||||
val timeout = MutableLiveData<Int>().apply {
|
val timeout = MutableLiveData<Int>()
|
||||||
this.value = 10000
|
|
||||||
}
|
|
||||||
val validationMode = MutableLiveData<ValidationMode>()
|
val validationMode = MutableLiveData<ValidationMode>()
|
||||||
val validationSearchTerm = MutableLiveData<String>()
|
val validationSearchTerm = MutableLiveData<String>()
|
||||||
val validationScript = MutableLiveData<String>()
|
val validationScript = MutableLiveData<String>()
|
||||||
val checkIntervalValue = MutableLiveData<Int>()
|
val checkIntervalValue = MutableLiveData<Int>()
|
||||||
val checkIntervalUnit = MutableLiveData<Long>()
|
val checkIntervalUnit = MutableLiveData<Long>()
|
||||||
|
|
||||||
|
@OnLifecycleEvent(ON_START)
|
||||||
|
fun setDefaults() {
|
||||||
|
timeout.value = 10000
|
||||||
|
validationMode.value = STATUS_CODE
|
||||||
|
checkIntervalValue.value = 0
|
||||||
|
checkIntervalUnit.value = MINUTE
|
||||||
|
}
|
||||||
|
|
||||||
// Private properties
|
// Private properties
|
||||||
private val isLoading = MutableLiveData<Boolean>()
|
private val isLoading = MutableLiveData<Boolean>()
|
||||||
private val nameError = MutableLiveData<Int?>()
|
private val nameError = MutableLiveData<Int?>()
|
||||||
|
|
|
@ -24,6 +24,7 @@ import com.afollestad.nocknock.data.model.ValidationMode.STATUS_CODE
|
||||||
import com.afollestad.nocknock.data.model.ValidationMode.TERM_SEARCH
|
import com.afollestad.nocknock.data.model.ValidationMode.TERM_SEARCH
|
||||||
import com.afollestad.nocknock.engine.validation.ValidationManager
|
import com.afollestad.nocknock.engine.validation.ValidationManager
|
||||||
import com.afollestad.nocknock.mockDatabase
|
import com.afollestad.nocknock.mockDatabase
|
||||||
|
import com.afollestad.nocknock.utilities.ext.MINUTE
|
||||||
import com.afollestad.nocknock.utilities.livedata.test
|
import com.afollestad.nocknock.utilities.livedata.test
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import com.nhaarman.mockitokotlin2.any
|
import com.nhaarman.mockitokotlin2.any
|
||||||
|
@ -56,6 +57,19 @@ class AddSiteViewModelTest {
|
||||||
|
|
||||||
@After fun tearDown() = viewModel.destroy()
|
@After fun tearDown() = viewModel.destroy()
|
||||||
|
|
||||||
|
@Test fun setDefaults() {
|
||||||
|
viewModel.setDefaults()
|
||||||
|
|
||||||
|
assertThat(viewModel.name.value).isNull()
|
||||||
|
assertThat(viewModel.url.value).isNull()
|
||||||
|
assertThat(viewModel.timeout.value).isEqualTo(10000)
|
||||||
|
assertThat(viewModel.validationMode.value).isEqualTo(STATUS_CODE)
|
||||||
|
assertThat(viewModel.validationSearchTerm.value).isNull()
|
||||||
|
assertThat(viewModel.validationScript.value).isNull()
|
||||||
|
assertThat(viewModel.checkIntervalValue.value).isEqualTo(0)
|
||||||
|
assertThat(viewModel.checkIntervalUnit.value).isEqualTo(MINUTE)
|
||||||
|
}
|
||||||
|
|
||||||
@Test fun onUrlWarningVisibility() {
|
@Test fun onUrlWarningVisibility() {
|
||||||
val urlWarningVisibility = viewModel.onUrlWarningVisibility()
|
val urlWarningVisibility = viewModel.onUrlWarningVisibility()
|
||||||
.test()
|
.test()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue