Add site view model should have default values

This commit is contained in:
Aidan Follestad 2018-12-07 00:17:46 -08:00
commit 76a5a46454
2 changed files with 26 additions and 3 deletions

View file

@ -18,9 +18,11 @@ package com.afollestad.nocknock.ui.addsite
import androidx.annotation.CheckResult
import androidx.annotation.VisibleForTesting
import androidx.annotation.VisibleForTesting.PRIVATE
import androidx.lifecycle.Lifecycle.Event.ON_START
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.OnLifecycleEvent
import com.afollestad.nocknock.R
import com.afollestad.nocknock.data.AppDatabase
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.engine.validation.ValidationManager
import com.afollestad.nocknock.ui.ScopedViewModel
import com.afollestad.nocknock.utilities.ext.MINUTE
import com.afollestad.nocknock.utilities.livedata.map
import com.afollestad.nocknock.viewcomponents.ext.isNullOrLessThan
import kotlinx.coroutines.CoroutineDispatcher
@ -50,15 +53,21 @@ class AddSiteViewModel(
// Public properties
val name = MutableLiveData<String>()
val url = MutableLiveData<String>()
val timeout = MutableLiveData<Int>().apply {
this.value = 10000
}
val timeout = MutableLiveData<Int>()
val validationMode = MutableLiveData<ValidationMode>()
val validationSearchTerm = MutableLiveData<String>()
val validationScript = MutableLiveData<String>()
val checkIntervalValue = MutableLiveData<Int>()
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 val isLoading = MutableLiveData<Boolean>()
private val nameError = MutableLiveData<Int?>()

View file

@ -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.engine.validation.ValidationManager
import com.afollestad.nocknock.mockDatabase
import com.afollestad.nocknock.utilities.ext.MINUTE
import com.afollestad.nocknock.utilities.livedata.test
import com.google.common.truth.Truth.assertThat
import com.nhaarman.mockitokotlin2.any
@ -56,6 +57,19 @@ class AddSiteViewModelTest {
@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() {
val urlWarningVisibility = viewModel.onUrlWarningVisibility()
.test()