summaryrefslogtreecommitdiffhomepage
path: root/android/lib/ipc/src/androidTest
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2023-07-26 23:19:17 +0200
committerAlbin <albin@mullvad.net>2023-07-27 10:41:29 +0200
commit5d1c5ab992eadb08cb51c33d40d894d6024ab4e0 (patch)
tree98f376e9aa275ff5d7d04731b347a90b035caa8a /android/lib/ipc/src/androidTest
parentd4e7a6f0b63027d752e19a55d6df9dcf4a7095ff (diff)
downloadmullvadvpn-5d1c5ab992eadb08cb51c33d40d894d6024ab4e0.tar.xz
mullvadvpn-5d1c5ab992eadb08cb51c33d40d894d6024ab4e0.zip
Move ipc test to ipc module
Diffstat (limited to 'android/lib/ipc/src/androidTest')
-rw-r--r--android/lib/ipc/src/androidTest/kotlin/net/mullvad/mullvadvpn/lib/ipc/HandlerFlowTest.kt44
1 files changed, 44 insertions, 0 deletions
diff --git a/android/lib/ipc/src/androidTest/kotlin/net/mullvad/mullvadvpn/lib/ipc/HandlerFlowTest.kt b/android/lib/ipc/src/androidTest/kotlin/net/mullvad/mullvadvpn/lib/ipc/HandlerFlowTest.kt
new file mode 100644
index 0000000000..e3ad447cc2
--- /dev/null
+++ b/android/lib/ipc/src/androidTest/kotlin/net/mullvad/mullvadvpn/lib/ipc/HandlerFlowTest.kt
@@ -0,0 +1,44 @@
+package net.mullvad.mullvadvpn.lib.ipc
+
+import android.os.Bundle
+import android.os.Looper
+import android.os.Message
+import android.os.Parcelable
+import kotlin.test.assertEquals
+import kotlinx.coroutines.flow.take
+import kotlinx.coroutines.flow.toList
+import kotlinx.coroutines.runBlocking
+import kotlinx.parcelize.Parcelize
+import org.junit.Test
+
+class HandlerFlowTest {
+ val looper by lazy { Looper.getMainLooper() }
+
+ val handler: HandlerFlow<Data?> by lazy {
+ HandlerFlow(looper) { message -> message.data.getParcelable(DATA_KEY) }
+ }
+
+ @Test
+ fun test_message_extraction() {
+ sendMessage(Data(1))
+ sendMessage(Data(2))
+ sendMessage(Data(3))
+
+ val extractedData = runBlocking { handler.take(3).toList() }
+
+ assertEquals(listOf(Data(1), Data(2), Data(3)), extractedData)
+ }
+
+ private fun sendMessage(messageData: Data) {
+ val message =
+ Message().apply { data = Bundle().apply { putParcelable(DATA_KEY, messageData) } }
+
+ handler.handleMessage(message)
+ }
+
+ companion object {
+ const val DATA_KEY = "data"
+
+ @Parcelize data class Data(val id: Int) : Parcelable
+ }
+}