Currently, LiveEvent class inherits from MediatorLiveData. However, when using addSource(), the correct result is not obtained.
For example, if you rewrite the following test code, the test will fail.
|
@Test |
|
fun `observe after emit event`() { |
|
// Given |
|
owner.create() |
|
val event = "event" |
|
liveEvent.value = event |
|
liveEvent.observe(owner, observer) |
|
|
|
// When |
|
owner.start() |
|
|
|
// Then |
|
if (config == LiveEventConfig.Normal) { |
|
verify(observer, never()).onChanged(event) |
|
} else { |
|
verify(observer, times(1)).onChanged(event) |
|
} |
|
} |
@Test
fun `observe after emit event`() {
// Given
val mutableLiveData = MutableLiveData<String>()
liveEvent.addSource(mutableLiveData) {
liveEvent.value = it
}
owner.create()
val event = "event"
mutableLiveData.value = event
liveEvent.observe(owner, observer)
// When
owner.start()
// Then
if (config == LiveEventConfig.Normal) {
verify(observer, never()).onChanged(event) // This test does not pass
} else {
verify(observer, times(1)).onChanged(event)
}
}
Should the LiveEvent class be an inheritance of MutableLiveData?
Currently, LiveEvent class inherits from MediatorLiveData. However, when using
addSource(), the correct result is not obtained.For example, if you rewrite the following test code, the test will fail.
LiveEvent/live-event/src/test/java/com/hadilq/liveevent/LiveEventTest.kt
Lines 146 to 163 in 1c72b2d
Should the LiveEvent class be an inheritance of MutableLiveData?