95 lines
2.3 KiB
Kotlin
95 lines
2.3 KiB
Kotlin
package net.shadowfacts.cacao.view
|
|
|
|
import net.shadowfacts.cacao.Window
|
|
import net.shadowfacts.cacao.geometry.Point
|
|
import net.shadowfacts.cacao.geometry.Rect
|
|
import net.shadowfacts.cacao.util.MouseButton
|
|
import net.shadowfacts.cacao.view.button.EnumButton
|
|
import net.shadowfacts.kiwidsl.dsl
|
|
import org.junit.jupiter.api.Assertions.assertEquals
|
|
import org.junit.jupiter.api.BeforeAll
|
|
import org.junit.jupiter.api.BeforeEach
|
|
import org.junit.jupiter.api.Test
|
|
|
|
/**
|
|
* @author shadowfacts
|
|
*/
|
|
class EnumButtonTests {
|
|
|
|
companion object {
|
|
@BeforeAll
|
|
@JvmStatic
|
|
fun setupAll() {
|
|
System.setProperty("cacao.drawing.disabled", "true")
|
|
}
|
|
}
|
|
|
|
enum class MyEnum {
|
|
ONE, TWO, THREE
|
|
}
|
|
|
|
lateinit var window: Window
|
|
|
|
@BeforeEach
|
|
fun setup() {
|
|
window = Window()
|
|
}
|
|
|
|
@Test
|
|
fun testCyclesValues() {
|
|
val values = mutableListOf<MyEnum>()
|
|
window.addView(EnumButton(MyEnum.ONE, MyEnum::name).apply {
|
|
frame = Rect(0.0, 0.0, 25.0, 25.0)
|
|
content.frame = Rect(0.0, 0.0, 25.0, 25.0)
|
|
handler = {
|
|
values.add(it.value)
|
|
}
|
|
})
|
|
|
|
window.mouseClicked(Point(5.0, 5.0), MouseButton.LEFT)
|
|
assertEquals(1, values.size)
|
|
assertEquals(MyEnum.TWO, values.last())
|
|
window.mouseClicked(Point(5.0, 5.0), MouseButton.LEFT)
|
|
assertEquals(2, values.size)
|
|
assertEquals(MyEnum.THREE, values.last())
|
|
window.mouseClicked(Point(5.0, 5.0), MouseButton.LEFT)
|
|
assertEquals(3, values.size)
|
|
assertEquals(MyEnum.ONE, values.last())
|
|
}
|
|
|
|
@Test
|
|
fun testCyclesValuesBackwards() {
|
|
val values = mutableListOf<MyEnum>()
|
|
window.addView(EnumButton(MyEnum.ONE, MyEnum::name).apply {
|
|
frame = Rect(0.0, 0.0, 25.0, 25.0)
|
|
content.frame = Rect(0.0, 0.0, 25.0, 25.0)
|
|
handler = {
|
|
values.add(it.value)
|
|
}
|
|
})
|
|
|
|
window.mouseClicked(Point(5.0, 5.0), MouseButton.LEFT)
|
|
assertEquals(1, values.size)
|
|
assertEquals(MyEnum.TWO, values.last())
|
|
window.mouseClicked(Point(5.0, 5.0), MouseButton.RIGHT)
|
|
assertEquals(2, values.size)
|
|
assertEquals(MyEnum.ONE, values.last())
|
|
}
|
|
|
|
@Test
|
|
fun testMiddleClickDoesNotChangeValue() {
|
|
val values = mutableListOf<MyEnum>()
|
|
window.addView(EnumButton(MyEnum.ONE, MyEnum::name).apply {
|
|
frame = Rect(0.0, 0.0, 25.0, 25.0)
|
|
content.frame = Rect(0.0, 0.0, 25.0, 25.0)
|
|
handler = {
|
|
values.add(it.value)
|
|
}
|
|
})
|
|
|
|
window.mouseClicked(Point(5.0, 5.0), MouseButton.MIDDLE)
|
|
assertEquals(1, values.size)
|
|
assertEquals(MyEnum.ONE, values.last())
|
|
}
|
|
|
|
} |