Added missing files
This commit is contained in:
parent
c2f0c24a8f
commit
2fd6595b73
5
src/main/kotlin/no/iktdev/eventi/Annotation.kt
Normal file
5
src/main/kotlin/no/iktdev/eventi/Annotation.kt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package no.iktdev.eventi
|
||||||
|
|
||||||
|
@Target(AnnotationTarget.CLASS)
|
||||||
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
|
annotation class ListenerOrder(val value: Int)
|
||||||
@ -0,0 +1,61 @@
|
|||||||
|
package no.iktdev.eventi.events
|
||||||
|
|
||||||
|
import no.iktdev.eventi.ListenerOrder
|
||||||
|
import no.iktdev.eventi.models.Event
|
||||||
|
import no.iktdev.eventi.testUtil.wipe
|
||||||
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
|
import org.junit.jupiter.api.Assertions.*
|
||||||
|
import org.junit.jupiter.api.BeforeEach
|
||||||
|
import org.junit.jupiter.api.Test
|
||||||
|
|
||||||
|
class EventListenerRegistryTest {
|
||||||
|
|
||||||
|
@ListenerOrder(1)
|
||||||
|
class MockTest1() : EventListener() {
|
||||||
|
override fun onEvent(event: Event, history: List<Event>): Event? {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ListenerOrder(2)
|
||||||
|
class MockTest2() : EventListener() {
|
||||||
|
override fun onEvent(event: Event, history: List<Event>): Event? {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ListenerOrder(3)
|
||||||
|
class MockTest3() : EventListener() {
|
||||||
|
override fun onEvent(event: Event, history: List<Event>): Event? {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class MockTestRandom() : EventListener() {
|
||||||
|
override fun onEvent(event: Event, history: List<Event>): Event? {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
fun clear() {
|
||||||
|
EventListenerRegistry.wipe()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun validateOrder() {
|
||||||
|
MockTestRandom()
|
||||||
|
MockTest1()
|
||||||
|
MockTest2()
|
||||||
|
MockTest3()
|
||||||
|
val listeners = EventListenerRegistry.getListeners()
|
||||||
|
// Assert
|
||||||
|
assertThat(listeners.map { it::class.simpleName }).containsExactly(
|
||||||
|
MockTest1::class.simpleName, // @ListenerOrder(1)
|
||||||
|
MockTest2::class.simpleName, // @ListenerOrder(2)
|
||||||
|
MockTest3::class.simpleName, // @ListenerOrder(3)
|
||||||
|
MockTestRandom::class.simpleName // no annotation → goes last
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,90 @@
|
|||||||
|
package no.iktdev.eventi.tasks
|
||||||
|
|
||||||
|
import no.iktdev.eventi.ListenerOrder
|
||||||
|
import no.iktdev.eventi.events.EventListener
|
||||||
|
import no.iktdev.eventi.events.EventListenerRegistry
|
||||||
|
import no.iktdev.eventi.models.Event
|
||||||
|
import no.iktdev.eventi.models.Task
|
||||||
|
import no.iktdev.eventi.testUtil.wipe
|
||||||
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
|
import org.junit.jupiter.api.Assertions.*
|
||||||
|
import org.junit.jupiter.api.BeforeEach
|
||||||
|
import org.junit.jupiter.api.Test
|
||||||
|
|
||||||
|
class TaskListenerRegistryTest {
|
||||||
|
|
||||||
|
|
||||||
|
@ListenerOrder(1)
|
||||||
|
class MockTest1() : TaskListener() {
|
||||||
|
override fun getWorkerId(): String {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
override fun supports(task: Task): Boolean {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
override suspend fun onTask(task: Task): Event? {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ListenerOrder(2)
|
||||||
|
class MockTest2() : TaskListener() {
|
||||||
|
override fun getWorkerId(): String {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
override fun supports(task: Task): Boolean {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
override suspend fun onTask(task: Task): Event? {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ListenerOrder(3)
|
||||||
|
class MockTest3() : TaskListener() {
|
||||||
|
override fun getWorkerId(): String {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
override fun supports(task: Task): Boolean {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
override suspend fun onTask(task: Task): Event? {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class MockTestRandom() : TaskListener() {
|
||||||
|
override fun getWorkerId(): String {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
override fun supports(task: Task): Boolean {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
override suspend fun onTask(task: Task): Event? {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
fun clear() {
|
||||||
|
TaskListenerRegistry.wipe()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun validateOrder() {
|
||||||
|
MockTestRandom()
|
||||||
|
MockTest1()
|
||||||
|
MockTest2()
|
||||||
|
MockTest3()
|
||||||
|
val listeners = TaskListenerRegistry.getListeners()
|
||||||
|
// Assert
|
||||||
|
assertThat(listeners.map { it::class.simpleName }).containsExactly(
|
||||||
|
MockTest1::class.simpleName, // @ListenerOrder(1)
|
||||||
|
MockTest2::class.simpleName, // @ListenerOrder(2)
|
||||||
|
MockTest3::class.simpleName, // @ListenerOrder(3)
|
||||||
|
MockTestRandom::class.simpleName // no annotation → goes last
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user