summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2024-07-24 16:32:45 +0200
committerAlbin <albin@mullvad.net>2024-08-23 09:44:47 +0200
commite686a20f219343d113476ae994d20dba861ef694 (patch)
tree1e069130f1de37e1bda5270edba04370c98c6574 /android
parentca9457348155930527f22209df7a237efa5cf125 (diff)
downloadmullvadvpn-e686a20f219343d113476ae994d20dba861ef694.tar.xz
mullvadvpn-e686a20f219343d113476ae994d20dba861ef694.zip
Add konsist tests for management service to avoid missing Either
Diffstat (limited to 'android')
-rw-r--r--android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ManagementServiceTest.kt31
1 files changed, 31 insertions, 0 deletions
diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ManagementServiceTest.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ManagementServiceTest.kt
new file mode 100644
index 0000000000..a649a3ac5d
--- /dev/null
+++ b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/ManagementServiceTest.kt
@@ -0,0 +1,31 @@
+package net.mullvad.mullvadvpn.test.arch
+
+import com.lemonappdev.konsist.api.Konsist
+import com.lemonappdev.konsist.api.ext.list.modifierprovider.withPublicOrDefaultModifier
+import com.lemonappdev.konsist.api.verify.assertTrue
+import org.junit.jupiter.api.Test
+
+class ManagementServiceTest {
+
+ @Test
+ fun `ensure all public functions are returning Either`() {
+ managementServiceClass()
+ .functions()
+ .withPublicOrDefaultModifier()
+ .filter { excludedFunctions().contains(it.name).not() }
+ .assertTrue { it.returnType?.name?.startsWith(EITHER_CLASS_NAME) == true }
+ }
+
+ private fun managementServiceClass() =
+ Konsist.scopeFromProject().classes().first { it.name == MANAGEMENT_SERVICE_CLASS_NAME }
+
+ private fun excludedFunctions() = setOf(START, STOP, ENTER_IDLE)
+
+ companion object {
+ private const val MANAGEMENT_SERVICE_CLASS_NAME = "ManagementService"
+ private const val START = "start"
+ private const val STOP = "stop"
+ private const val ENTER_IDLE = "enterIdle"
+ private const val EITHER_CLASS_NAME = "Either"
+ }
+}