diff --git a/lib/src/main/java/de/kuschku/libquassel/util/flag/Flag.kt b/lib/src/main/java/de/kuschku/libquassel/util/flag/Flag.kt index a73c80f57cfa4a1051cde7f206db54eac12914d2..ab5ce92ea7a934eed15ea4b6834b9a497a99a386 100644 --- a/lib/src/main/java/de/kuschku/libquassel/util/flag/Flag.kt +++ b/lib/src/main/java/de/kuschku/libquassel/util/flag/Flag.kt @@ -104,7 +104,7 @@ data class Flags<E>( infix fun <T> Flags<T>.hasFlag(which: T): Boolean where T : Enum<T>, T : Flag<T> { // an Undefined flag is a special case. - if (value == 0u) return false + if (which.bit == 0u) return false return value and which.bit == which.bit } diff --git a/lib/src/main/java/de/kuschku/libquassel/util/flag/LongFlag.kt b/lib/src/main/java/de/kuschku/libquassel/util/flag/LongFlag.kt index 61dec8af07fd596fab138b1f8c6119102fe11592..5aa32e1826e8f41b76db4b66f225247b7279b0c2 100644 --- a/lib/src/main/java/de/kuschku/libquassel/util/flag/LongFlag.kt +++ b/lib/src/main/java/de/kuschku/libquassel/util/flag/LongFlag.kt @@ -104,7 +104,7 @@ data class LongFlags<E>( infix fun <T> LongFlags<T>.hasFlag(which: T): Boolean where T : Enum<T>, T : LongFlag<T> { // an Undefined flag is a special case. - if (value == 0uL) return false + if (which.bit == 0uL) return false return value and which.bit == which.bit } diff --git a/lib/src/main/java/de/kuschku/libquassel/util/flag/ShortFlag.kt b/lib/src/main/java/de/kuschku/libquassel/util/flag/ShortFlag.kt index 273d8cce62ce9e27bfd246e4bd158d60da6de6dd..0eacf94f316f45eab5a7c2c2bdff2d32842bbd2f 100644 --- a/lib/src/main/java/de/kuschku/libquassel/util/flag/ShortFlag.kt +++ b/lib/src/main/java/de/kuschku/libquassel/util/flag/ShortFlag.kt @@ -104,7 +104,7 @@ data class ShortFlags<E>( infix fun <T> ShortFlags<T>.hasFlag(which: T): Boolean where T : Enum<T>, T : ShortFlag<T> { // an Undefined flag is a special case. - if (value == 0u.toUShort()) return false + if (which.bit == 0u.toUShort()) return false return value and which.bit == which.bit } diff --git a/lib/src/test/java/de/kuschku/libquassel/quassel/BufferTypeTest.kt b/lib/src/test/java/de/kuschku/libquassel/quassel/BufferTypeTest.kt new file mode 100644 index 0000000000000000000000000000000000000000..e8e4389d402a0d0f629e47ca5bcd1a36cedbcdad --- /dev/null +++ b/lib/src/test/java/de/kuschku/libquassel/quassel/BufferTypeTest.kt @@ -0,0 +1,70 @@ +package de.kuschku.libquassel.quassel + +import de.kuschku.libquassel.protocol.Buffer_Type +import de.kuschku.libquassel.util.flag.hasFlag +import org.junit.Assert +import org.junit.Test + +class BufferTypeTest { + @Test + fun testHasFlag() { + Assert.assertTrue(Buffer_Type.of(Buffer_Type.StatusBuffer).hasFlag(Buffer_Type.StatusBuffer)) + Assert.assertFalse(Buffer_Type.of(Buffer_Type.StatusBuffer).hasFlag(Buffer_Type.QueryBuffer)) + Assert.assertFalse(Buffer_Type.of(Buffer_Type.StatusBuffer).hasFlag(Buffer_Type.ChannelBuffer)) + Assert.assertFalse(Buffer_Type.of(Buffer_Type.StatusBuffer).hasFlag(Buffer_Type.GroupBuffer)) + + Assert.assertFalse(Buffer_Type.of(Buffer_Type.QueryBuffer).hasFlag(Buffer_Type.StatusBuffer)) + Assert.assertTrue(Buffer_Type.of(Buffer_Type.QueryBuffer).hasFlag(Buffer_Type.QueryBuffer)) + Assert.assertFalse(Buffer_Type.of(Buffer_Type.QueryBuffer).hasFlag(Buffer_Type.ChannelBuffer)) + Assert.assertFalse(Buffer_Type.of(Buffer_Type.QueryBuffer).hasFlag(Buffer_Type.GroupBuffer)) + + Assert.assertFalse(Buffer_Type.of(Buffer_Type.ChannelBuffer).hasFlag(Buffer_Type.StatusBuffer)) + Assert.assertFalse(Buffer_Type.of(Buffer_Type.ChannelBuffer).hasFlag(Buffer_Type.QueryBuffer)) + Assert.assertTrue(Buffer_Type.of(Buffer_Type.ChannelBuffer).hasFlag(Buffer_Type.ChannelBuffer)) + Assert.assertFalse(Buffer_Type.of(Buffer_Type.ChannelBuffer).hasFlag(Buffer_Type.GroupBuffer)) + + Assert.assertFalse(Buffer_Type.of(Buffer_Type.GroupBuffer).hasFlag(Buffer_Type.StatusBuffer)) + Assert.assertFalse(Buffer_Type.of(Buffer_Type.GroupBuffer).hasFlag(Buffer_Type.QueryBuffer)) + Assert.assertFalse(Buffer_Type.of(Buffer_Type.GroupBuffer).hasFlag(Buffer_Type.ChannelBuffer)) + Assert.assertTrue(Buffer_Type.of(Buffer_Type.GroupBuffer).hasFlag(Buffer_Type.GroupBuffer)) + } + + @Test + fun testEnabledValues() { + Assert.assertEquals( + Buffer_Type.StatusBuffer, + Buffer_Type.of(Buffer_Type.StatusBuffer).enabledValues().firstOrNull() + ) + Assert.assertEquals( + setOf(Buffer_Type.StatusBuffer), + Buffer_Type.of(Buffer_Type.StatusBuffer).enabledValues() + ) + + Assert.assertEquals( + Buffer_Type.QueryBuffer, + Buffer_Type.of(Buffer_Type.QueryBuffer).enabledValues().firstOrNull() + ) + Assert.assertEquals( + setOf(Buffer_Type.QueryBuffer), + Buffer_Type.of(Buffer_Type.QueryBuffer).enabledValues() + ) + + Assert.assertEquals( + Buffer_Type.ChannelBuffer, + Buffer_Type.of(Buffer_Type.ChannelBuffer).enabledValues().firstOrNull() + ) + Assert.assertEquals( + setOf(Buffer_Type.ChannelBuffer), + Buffer_Type.of(Buffer_Type.ChannelBuffer).enabledValues() + ) + + Assert.assertEquals( + Buffer_Type.GroupBuffer, + Buffer_Type.of(Buffer_Type.GroupBuffer).enabledValues().firstOrNull() + ) + Assert.assertEquals( + setOf(Buffer_Type.GroupBuffer), + Buffer_Type.of(Buffer_Type.GroupBuffer).enabledValues() + ) + } +}