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