Add test on NotificationBroadcastReceiverHandler
This commit is contained in:
parent
add5c39db0
commit
afe5c33f33
7 changed files with 554 additions and 33 deletions
|
|
@ -20,39 +20,33 @@ import io.element.android.libraries.matrix.api.core.EventId
|
|||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.SessionId
|
||||
import io.element.android.libraries.push.api.notifications.NotificationDrawerManager
|
||||
import io.element.android.tests.testutils.lambda.lambdaError
|
||||
|
||||
class FakeNotificationDrawerManager : NotificationDrawerManager {
|
||||
private val clearMemberShipNotificationForSessionCallsCount = mutableMapOf<String, Int>()
|
||||
private val clearMemberShipNotificationForRoomCallsCount = mutableMapOf<String, Int>()
|
||||
class FakeNotificationDrawerManager(
|
||||
private val clearAllMessagesEventsLambda: (SessionId) -> Unit = { lambdaError() },
|
||||
private val clearMessagesForRoomLambda: (SessionId, RoomId) -> Unit = { _, _ -> lambdaError() },
|
||||
private val clearEventLambda: (SessionId, EventId) -> Unit = { _, _ -> lambdaError() },
|
||||
private val clearMembershipNotificationForSessionLambda: (SessionId) -> Unit = { lambdaError() },
|
||||
private val clearMembershipNotificationForRoomLambda: (SessionId, RoomId) -> Unit = { _, _ -> lambdaError() }
|
||||
) : NotificationDrawerManager {
|
||||
|
||||
override fun clearAllMessagesEvents(sessionId: SessionId) {
|
||||
clearAllMessagesEventsLambda(sessionId)
|
||||
}
|
||||
|
||||
override fun clearMessagesForRoom(sessionId: SessionId, roomId: RoomId) {
|
||||
clearMessagesForRoomLambda(sessionId, roomId)
|
||||
}
|
||||
|
||||
override fun clearEvent(sessionId: SessionId, eventId: EventId) {
|
||||
clearEventLambda(sessionId, eventId)
|
||||
}
|
||||
|
||||
override fun clearMembershipNotificationForSession(sessionId: SessionId) {
|
||||
clearMemberShipNotificationForSessionCallsCount.merge(sessionId.value, 1) { oldValue, value -> oldValue + value }
|
||||
clearMembershipNotificationForSessionLambda(sessionId)
|
||||
}
|
||||
|
||||
override fun clearMembershipNotificationForRoom(sessionId: SessionId, roomId: RoomId) {
|
||||
val key = getMembershipNotificationKey(sessionId, roomId)
|
||||
clearMemberShipNotificationForRoomCallsCount.merge(key, 1) { oldValue, value -> oldValue + value }
|
||||
}
|
||||
|
||||
fun getClearMembershipNotificationForSessionCount(sessionId: SessionId): Int {
|
||||
return clearMemberShipNotificationForRoomCallsCount[sessionId.value] ?: 0
|
||||
}
|
||||
|
||||
fun getClearMembershipNotificationForRoomCount(sessionId: SessionId, roomId: RoomId): Int {
|
||||
val key = getMembershipNotificationKey(sessionId, roomId)
|
||||
return clearMemberShipNotificationForRoomCallsCount[key] ?: 0
|
||||
}
|
||||
|
||||
private fun getMembershipNotificationKey(sessionId: SessionId, roomId: RoomId): String {
|
||||
return "$sessionId-$roomId"
|
||||
clearMembershipNotificationForRoomLambda(sessionId, roomId)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue