Add Event Cancellation #3

Merged
kske merged 6 commits from f/cancel-event into develop 2020-11-26 08:57:46 +01:00
2 changed files with 32 additions and 6 deletions
Showing only changes of commit 8aefb43823 - Show all commits

View File

@ -12,7 +12,8 @@ import org.junit.jupiter.api.*;
*/
class EventBusTest implements EventListener {
int hits;
int hits;
static int canceledHits;
@BeforeEach
public void registerListener() {
@ -25,11 +26,15 @@ class EventBusTest implements EventListener {
EventBus.getInstance().dispatch(new SimpleEvent());
}
@Event(
eventType = SimpleEvent.class,
includeSubtypes = true,
priority = 200
)
@Test
void testCancellation() {
var test2 = new EventBusTest();
test2.registerListener();
EventBus.getInstance().dispatch(new SimpleCancelEvent());
assertTrue(canceledHits == 1);
}
@Event(eventType = SimpleEvent.class, includeSubtypes = true, priority = 200)
private void onSimpleEventFirst() {
++hits;
assertTrue(hits == 1 || hits == 2);
@ -46,4 +51,16 @@ class EventBusTest implements EventListener {
++hits;
assertEquals(4, hits);
}
@Event(eventType = SimpleCancelEvent.class, priority = 500)
private void onSimpleCancelFirst() {
++canceledHits;
assertTrue(canceledHits == 1);
EventBus.getInstance().cancel();
}
@Event(eventType = SimpleCancelEvent.class, priority = 200)
private void onSimpleCancelSecond() {
fail();
}
}

View File

@ -0,0 +1,9 @@
package dev.kske.eventbus;
/**
* A simple event for testing purposes that will get cancelled during propagation.
*
* @author Leon Hofmeister
* @since 0.1
*/
public class SimpleCancelEvent implements IEvent {}