Add missing unit test on DefaultPushService
This commit is contained in:
parent
d8095faa43
commit
9c16f9b161
2 changed files with 43 additions and 0 deletions
|
|
@ -7,13 +7,17 @@
|
||||||
|
|
||||||
package io.element.android.libraries.push.impl
|
package io.element.android.libraries.push.impl
|
||||||
|
|
||||||
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrix.api.MatrixClient
|
import io.element.android.libraries.matrix.api.MatrixClient
|
||||||
import io.element.android.libraries.matrix.api.core.SessionId
|
import io.element.android.libraries.matrix.api.core.SessionId
|
||||||
|
import io.element.android.libraries.matrix.test.AN_EVENT_ID
|
||||||
import io.element.android.libraries.matrix.test.AN_EXCEPTION
|
import io.element.android.libraries.matrix.test.AN_EXCEPTION
|
||||||
|
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||||
import io.element.android.libraries.matrix.test.A_SESSION_ID
|
import io.element.android.libraries.matrix.test.A_SESSION_ID
|
||||||
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
import io.element.android.libraries.matrix.test.FakeMatrixClient
|
||||||
import io.element.android.libraries.push.api.GetCurrentPushProvider
|
import io.element.android.libraries.push.api.GetCurrentPushProvider
|
||||||
|
import io.element.android.libraries.push.api.history.PushHistoryItem
|
||||||
import io.element.android.libraries.push.impl.push.FakeMutableBatteryOptimizationStore
|
import io.element.android.libraries.push.impl.push.FakeMutableBatteryOptimizationStore
|
||||||
import io.element.android.libraries.push.impl.push.MutableBatteryOptimizationStore
|
import io.element.android.libraries.push.impl.push.MutableBatteryOptimizationStore
|
||||||
import io.element.android.libraries.push.impl.store.InMemoryPushDataStore
|
import io.element.android.libraries.push.impl.store.InMemoryPushDataStore
|
||||||
|
|
@ -297,6 +301,41 @@ class DefaultPushServiceTest {
|
||||||
resetResult.assertions().isCalledOnce()
|
resetResult.assertions().isCalledOnce()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `resetPushHistory invokes the store method`() = runTest {
|
||||||
|
val resetResult = lambdaRecorder<Unit> { }
|
||||||
|
val defaultPushService = createDefaultPushService(
|
||||||
|
pushDataStore = InMemoryPushDataStore(
|
||||||
|
resetResult = resetResult
|
||||||
|
),
|
||||||
|
)
|
||||||
|
defaultPushService.resetPushHistory()
|
||||||
|
resetResult.assertions().isCalledOnce()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `getPushHistoryItemsFlow invokes the store method`() = runTest {
|
||||||
|
val store = InMemoryPushDataStore()
|
||||||
|
val aPushHistoryItem = PushHistoryItem(
|
||||||
|
pushDate = 0L,
|
||||||
|
formattedDate = "formattedDate",
|
||||||
|
providerInfo = "providerInfo",
|
||||||
|
eventId = AN_EVENT_ID,
|
||||||
|
roomId = A_ROOM_ID,
|
||||||
|
sessionId = A_SESSION_ID,
|
||||||
|
hasBeenResolved = false,
|
||||||
|
comment = null,
|
||||||
|
)
|
||||||
|
val defaultPushService = createDefaultPushService(
|
||||||
|
pushDataStore = store,
|
||||||
|
)
|
||||||
|
defaultPushService.getPushHistoryItemsFlow().test {
|
||||||
|
assertThat(awaitItem().isEmpty()).isTrue()
|
||||||
|
store.emitPushHistoryItems(listOf(aPushHistoryItem))
|
||||||
|
assertThat(awaitItem().first()).isEqualTo(aPushHistoryItem)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun createDefaultPushService(
|
private fun createDefaultPushService(
|
||||||
testPush: TestPush = FakeTestPush(),
|
testPush: TestPush = FakeTestPush(),
|
||||||
userPushStoreFactory: UserPushStoreFactory = FakeUserPushStoreFactory(),
|
userPushStoreFactory: UserPushStoreFactory = FakeUserPushStoreFactory(),
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,10 @@ class InMemoryPushDataStore(
|
||||||
return mutablePushHistoryItemsFlow.asStateFlow()
|
return mutablePushHistoryItemsFlow.asStateFlow()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
suspend fun emitPushHistoryItems(items: List<PushHistoryItem>) {
|
||||||
|
mutablePushHistoryItemsFlow.emit(items)
|
||||||
|
}
|
||||||
|
|
||||||
override suspend fun reset() {
|
override suspend fun reset() {
|
||||||
resetResult()
|
resetResult()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue