Add settings copy unit coverage

This commit is contained in:
ajp_anton
2026-07-23 12:30:31 +00:00
parent 9268623fdd
commit 6ce7d65409
2 changed files with 18 additions and 1 deletions
@@ -27,7 +27,7 @@ class LoggingRuleStore(context: Context) {
}
fun copy(from: LoggingType, targets: Set<LoggingType>) {
val source = ruleFor(from)
val source = ruleFor(from).copyForTarget()
preferences.edit {
targets.filterNot { it == from }.forEach { target ->
write(target, source.copy(selectedPackages = source.selectedPackages.toSet()))
@@ -50,3 +50,5 @@ class LoggingRuleStore(context: Context) {
const val FILE_NAME = "logging-rules"
}
}
internal fun LoggingRule.copyForTarget(): LoggingRule = copy(selectedPackages = selectedPackages.toSet())
@@ -0,0 +1,15 @@
package se.ajpanton.notificationlog.settings
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotSame
import org.junit.Test
class LoggingRuleCopyTest {
@Test fun `copy retains every rule field and owns its selected-package set`() {
val source = LoggingRule(false, AppRuleMode.WHITELIST, setOf("example.app"), true, false, false)
val target = source.copyForTarget()
assertEquals(source, target)
assertNotSame(source.selectedPackages, target.selectedPackages)
}
}