summaryrefslogtreecommitdiffhomepage
path: root/android/test
diff options
context:
space:
mode:
authorAlbin <albin@mullvad.net>2024-06-19 09:29:18 +0200
committerAlbin <albin@mullvad.net>2024-06-19 09:29:18 +0200
commit88c5d622d797faf99528f79a0907b101fa8f4cae (patch)
treebe6f7fcc14c3c2eba80837fe3dea4f720485eac9 /android/test
parent9be52437a1a9065ca7fa2f831f0833cf959e2e36 (diff)
parentff73f8d7f1320dd2c282ac19746e18cd329c2cda (diff)
downloadmullvadvpn-88c5d622d797faf99528f79a0907b101fa8f4cae.tar.xz
mullvadvpn-88c5d622d797faf99528f79a0907b101fa8f4cae.zip
Merge branch 'unify-use-case-structure-and-function-naming-droid-1013'
Diffstat (limited to 'android/test')
-rw-r--r--android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/UseCaseTest.kt29
1 files changed, 29 insertions, 0 deletions
diff --git a/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/UseCaseTest.kt b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/UseCaseTest.kt
new file mode 100644
index 0000000000..305ba7127b
--- /dev/null
+++ b/android/test/arch/src/test/kotlin/net/mullvad/mullvadvpn/test/arch/UseCaseTest.kt
@@ -0,0 +1,29 @@
+package net.mullvad.mullvadvpn.test.arch
+
+import com.lemonappdev.konsist.api.Konsist
+import com.lemonappdev.konsist.api.ext.list.functions
+import com.lemonappdev.konsist.api.ext.list.modifierprovider.withPublicOrDefaultModifier
+import com.lemonappdev.konsist.api.verify.assertTrue
+import org.junit.jupiter.api.Test
+
+class UseCaseTest {
+ @Test
+ fun `ensure all use cases end with UseCase suffix`() =
+ allUseCasesFiles().assertTrue { it.name.endsWith("UseCase") }
+
+ @Test
+ fun `ensure every use cases is public`() =
+ allUseCases().assertTrue { it.hasPublicOrDefaultModifier }
+
+ @Test
+ fun `ensure every public functions method is named 'invoke' with operator modifier`() =
+ allUseCases().functions().withPublicOrDefaultModifier().assertTrue {
+ it.name == "invoke" && it.hasOperatorModifier
+ }
+
+ private fun allUseCasesFiles() =
+ Konsist.scopeFromProduction().files.filter { it.resideInPath("..usecase..") }
+
+ private fun allUseCases() =
+ Konsist.scopeFromProduction().classes().filter { it.resideInPackage("..usecase..") }
+}