Skip to content
This repository has been archived by the owner on Aug 4, 2019. It is now read-only.

Commit

Permalink
Work on set timer test , issue #34
Browse files Browse the repository at this point in the history
  • Loading branch information
Miladsalimiiiii committed Jul 31, 2019
1 parent 76b9fe7 commit b7a4379
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package de.netalic.peacock.ui.registeration.codeverification

import android.util.Log
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import de.netalic.peacock.data.exception.ActivationCodeIsNotValid
Expand All @@ -11,9 +12,13 @@ import de.netalic.peacock.data.model.User
import de.netalic.peacock.data.repository.UserRepository
import de.netalic.peacock.ui.base.BaseViewModel
import io.reactivex.Observable
import io.reactivex.Scheduler
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import io.reactivex.schedulers.TestScheduler
import okhttp3.ResponseBody
import org.reactivestreams.Subscription
import java.util.concurrent.TimeUnit


Expand Down Expand Up @@ -42,7 +47,7 @@ class CodeVerificationViewModel(private val userRepository: UserRepository) : Ba

val timerDisposable = Observable.interval(1, TimeUnit.SECONDS)
.take(time)
.map { 30 - it }
.map { time - it }
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
Expand All @@ -52,16 +57,19 @@ class CodeVerificationViewModel(private val userRepository: UserRepository) : Ba
val secondTimer = TimeUnit.SECONDS.toSeconds(it) -
TimeUnit.MINUTES.toSeconds(TimeUnit.SECONDS.toMinutes(it))
mTimerLiveData.value = MyResponse.success(String.format("%02d:%02d ", minuteTimer, secondTimer))
Log.d("onNext", it.toString())
},
{

Log.d("throwble", it?.message)
},
{
mTimerLiveData.value = MyResponse.success(sResend)
Log.d("onComplete", "onComplete")
}
)

mCompositeDisposable.add(timerDisposable)

}

fun bind(user: User) {
Expand Down
3 changes: 3 additions & 0 deletions app/src/test/java/de/netalic/peacock/base/BaseTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import io.reactivex.android.plugins.RxAndroidPlugins
import io.reactivex.disposables.Disposable
import io.reactivex.internal.schedulers.ExecutorScheduler
import io.reactivex.plugins.RxJavaPlugins
import io.reactivex.schedulers.TestScheduler
import org.junit.AfterClass
import org.junit.BeforeClass
import java.util.concurrent.Executor
Expand Down Expand Up @@ -33,6 +34,8 @@ open class BaseTest {
RxJavaPlugins.setInitNewThreadSchedulerHandler { scheduler -> immediate }
RxJavaPlugins.setInitSingleSchedulerHandler { scheduler -> immediate }
RxAndroidPlugins.setInitMainThreadSchedulerHandler { scheduler -> immediate }
// val testScheduler = TestScheduler()
// RxJavaPlugins.setComputationSchedulerHandler { testScheduler }
}

@JvmStatic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.MockitoAnnotations
import retrofit2.Response
import io.reactivex.schedulers.TestScheduler



class CodeVerificationViewModelTest : BaseTest() {

Expand Down Expand Up @@ -232,10 +235,11 @@ class CodeVerificationViewModelTest : BaseTest() {

@Test
fun setTimer() {

val scheduler = TestScheduler()
mCodeVerificationViewModel.setTimer(3)

Assert.assertEquals(LiveDataTestUtil.getValue(mCodeVerificationViewModel.getTimerLiveData()), 3)

Assert.assertEquals(LiveDataTestUtil.getValue(mCodeVerificationViewModel.getTimerLiveData()), Status.SUCCESS)

}

Expand Down

0 comments on commit b7a4379

Please sign in to comment.