mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-15 08:45:04 +01:00
add tests for CallRecordingViewModel
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
5f8e52b312
commit
869dc86757
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
package com.nextcloud.talk.viewmodels
|
package com.nextcloud.talk.viewmodels
|
||||||
|
|
||||||
|
import android.util.Log
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
@ -103,11 +104,12 @@ class CallRecordingViewModel @Inject constructor(private val repository: CallRec
|
|||||||
this.roomToken = roomToken
|
this.roomToken = roomToken
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://nextcloud-talk.readthedocs.io/en/latest/constants/#call-recording-status
|
||||||
fun setRecordingState(state: Int) {
|
fun setRecordingState(state: Int) {
|
||||||
when (state) {
|
when (state) {
|
||||||
0 -> _viewState.value = RecordingStoppedState
|
RECORDING_STOPPED_CODE -> _viewState.value = RecordingStoppedState
|
||||||
1 -> _viewState.value = RecordingStartedState
|
RECORDING_STARTED_VIDEO_CODE -> _viewState.value = RecordingStartedState
|
||||||
2 -> _viewState.value = RecordingStartedState
|
RECORDING_STARTED_AUDIO_CODE -> _viewState.value = RecordingStartedState
|
||||||
else -> {}
|
else -> {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -122,7 +124,7 @@ class CallRecordingViewModel @Inject constructor(private val repository: CallRec
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onError(e: Throwable) {
|
override fun onError(e: Throwable) {
|
||||||
// Log.e(TAG, "failure in CallStartRecordingObserver", e)
|
Log.e(TAG, "failure in CallStartRecordingObserver", e)
|
||||||
_viewState.value = RecordingErrorState
|
_viewState.value = RecordingErrorState
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -143,7 +145,7 @@ class CallRecordingViewModel @Inject constructor(private val repository: CallRec
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onError(e: Throwable) {
|
override fun onError(e: Throwable) {
|
||||||
// Log.e(TAG, "failure in CallStopRecordingObserver", e)
|
Log.e(TAG, "failure in CallStopRecordingObserver", e)
|
||||||
_viewState.value = RecordingErrorState
|
_viewState.value = RecordingErrorState
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,5 +156,8 @@ class CallRecordingViewModel @Inject constructor(private val repository: CallRec
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val TAG = CallRecordingViewModel::class.java.simpleName
|
private val TAG = CallRecordingViewModel::class.java.simpleName
|
||||||
|
const val RECORDING_STOPPED_CODE = 0
|
||||||
|
const val RECORDING_STARTED_VIDEO_CODE = 1
|
||||||
|
const val RECORDING_STARTED_AUDIO_CODE = 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,15 +16,53 @@ class CallRecordingViewModelTest : AbstractViewModelTest() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testCallRecordingViewModel_startRecord() {
|
fun testCallRecordingViewModel_clickStartRecord() {
|
||||||
val viewModel = CallRecordingViewModel(repository)
|
val viewModel = CallRecordingViewModel(repository)
|
||||||
|
|
||||||
viewModel.setData("foo")
|
viewModel.setData("foo")
|
||||||
|
|
||||||
viewModel.clickRecordButton()
|
viewModel.clickRecordButton()
|
||||||
|
|
||||||
// implement extension function for liveData to await value?!
|
|
||||||
|
|
||||||
Assert.equals(CallRecordingViewModel.RecordingStartLoadingState, viewModel.viewState.value)
|
Assert.equals(CallRecordingViewModel.RecordingStartLoadingState, viewModel.viewState.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testCallRecordingViewModel_clickStopRecord() {
|
||||||
|
val viewModel = CallRecordingViewModel(repository)
|
||||||
|
viewModel.setData("foo")
|
||||||
|
viewModel.setRecordingState(CallRecordingViewModel.RECORDING_STARTED_VIDEO_CODE)
|
||||||
|
viewModel.clickRecordButton()
|
||||||
|
|
||||||
|
Assert.equals(CallRecordingViewModel.RecordingConfirmStopState, viewModel.viewState.value)
|
||||||
|
|
||||||
|
viewModel.stopRecording()
|
||||||
|
|
||||||
|
Assert.equals(CallRecordingViewModel.RecordingStopLoadingState, viewModel.viewState.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testCallRecordingViewModel_keepConfirmState() {
|
||||||
|
val viewModel = CallRecordingViewModel(repository)
|
||||||
|
viewModel.setData("foo")
|
||||||
|
viewModel.setRecordingState(CallRecordingViewModel.RECORDING_STARTED_VIDEO_CODE)
|
||||||
|
viewModel.clickRecordButton()
|
||||||
|
|
||||||
|
Assert.equals(CallRecordingViewModel.RecordingConfirmStopState, viewModel.viewState.value)
|
||||||
|
|
||||||
|
viewModel.clickRecordButton()
|
||||||
|
|
||||||
|
Assert.equals(CallRecordingViewModel.RecordingConfirmStopState, viewModel.viewState.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testCallRecordingViewModel_continueRecordingWhenDismissStopDialog() {
|
||||||
|
val viewModel = CallRecordingViewModel(repository)
|
||||||
|
viewModel.setData("foo")
|
||||||
|
viewModel.setRecordingState(CallRecordingViewModel.RECORDING_STARTED_VIDEO_CODE)
|
||||||
|
viewModel.clickRecordButton()
|
||||||
|
|
||||||
|
Assert.equals(CallRecordingViewModel.RecordingConfirmStopState, viewModel.viewState.value)
|
||||||
|
|
||||||
|
viewModel.dismissStopRecording()
|
||||||
|
|
||||||
|
Assert.equals(CallRecordingViewModel.RecordingStartedState, viewModel.viewState.value)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user