diff --git a/app/src/test/java/de/jeanlucmakiola/clockula/ArchitectureRulesTest.kt b/app/src/test/java/de/jeanlucmakiola/clockula/ArchitectureRulesTest.kt index 5cb6e2f..69309d3 100644 --- a/app/src/test/java/de/jeanlucmakiola/clockula/ArchitectureRulesTest.kt +++ b/app/src/test/java/de/jeanlucmakiola/clockula/ArchitectureRulesTest.kt @@ -46,6 +46,9 @@ class ArchitectureRulesTest { "TimerEntity", "WorldClockEntity", "LapEntity", + "AlarmStateEntity", + "AlarmStateDao", + "AlarmStateMapper", "AlarmDao", "TimerDao", "WorldClockDao", @@ -66,4 +69,21 @@ class ArchitectureRulesTest { assertThat(offenders).isEmpty() } + + @Test + fun `the alarm engine and its pure neighbours stay free of Android types`() { + val jvmTestable = kotlinSources.filter { file -> + val path = file.invariantSeparatorsPath + path.contains("de/jeanlucmakiola/clockula/domain/alarm/") || + path.endsWith("de/jeanlucmakiola/clockula/alarm/AlarmEngine.kt") || + path.endsWith("de/jeanlucmakiola/clockula/alarm/AlarmResolver.kt") || + path.contains("de/jeanlucmakiola/clockula/system/") + } + + val offenders = jvmTestable.filter { file -> + file.readLines().any { it.startsWith("import android.") || it.startsWith("import androidx.") } + }.map { it.invariantSeparatorsPath } + + assertThat(offenders).isEmpty() + } }