Skip to content
Snippets Groups Projects
Verified Commit eff4df64 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Fixed issue with flags and added test to ensure they won’t happen again

parent e70e0e15
No related branches found
No related tags found
No related merge requests found
......@@ -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
}
......
......@@ -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
}
......
......@@ -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
}
......
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()
)
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment