diff options
Diffstat (limited to 'test-runner/src/test/kotlin/org')
| -rw-r--r-- | test-runner/src/test/kotlin/org/terst/nav/settings/FeatureFlagsTest.kt | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/test-runner/src/test/kotlin/org/terst/nav/settings/FeatureFlagsTest.kt b/test-runner/src/test/kotlin/org/terst/nav/settings/FeatureFlagsTest.kt new file mode 100644 index 0000000..a8e8271 --- /dev/null +++ b/test-runner/src/test/kotlin/org/terst/nav/settings/FeatureFlagsTest.kt @@ -0,0 +1,61 @@ +package org.terst.nav.settings + +import org.junit.Assert.* +import org.junit.Before +import org.junit.Test + +class FeatureFlagsTest { + + private lateinit var flags: InMemoryFeatureFlags + + @Before + fun setup() { + flags = InMemoryFeatureFlags() + } + + @Test + fun `all sources default to disabled`() { + for (source in HardwareSource.values()) { + assertFalse("Expected $source to be disabled by default", flags.isEnabled(source)) + } + } + + @Test + fun `setEnabled true enables source`() { + flags.setEnabled(HardwareSource.AIS_RECEIVER, true) + assertTrue(flags.isEnabled(HardwareSource.AIS_RECEIVER)) + } + + @Test + fun `setEnabled false disables source`() { + flags.setEnabled(HardwareSource.AIS_RECEIVER, true) + flags.setEnabled(HardwareSource.AIS_RECEIVER, false) + assertFalse(flags.isEnabled(HardwareSource.AIS_RECEIVER)) + } + + @Test + fun `toggle flips from false to true`() { + val result = flags.toggle(HardwareSource.NMEA_INSTRUMENTS) + assertTrue(result) + assertTrue(flags.isEnabled(HardwareSource.NMEA_INSTRUMENTS)) + } + + @Test + fun `toggle flips from true to false`() { + flags.setEnabled(HardwareSource.NMEA_INSTRUMENTS, true) + val result = flags.toggle(HardwareSource.NMEA_INSTRUMENTS) + assertFalse(result) + assertFalse(flags.isEnabled(HardwareSource.NMEA_INSTRUMENTS)) + } + + @Test + fun `sources are independent`() { + flags.setEnabled(HardwareSource.AIS_RECEIVER, true) + assertFalse(flags.isEnabled(HardwareSource.NMEA_INSTRUMENTS)) + } + + @Test + fun `toggle returns new state`() { + assertFalse(flags.toggle(HardwareSource.AIS_RECEIVER).also { assertTrue(it) } == false) + } +} |
