Skip to content

Commit

Permalink
Add more tests
Browse files Browse the repository at this point in the history
Signed-off-by: Alexander Pinčuk <alexander.v.pinchuk@gmail.com>
  • Loading branch information
avpinchuk committed Mar 14, 2024
1 parent 9da4571 commit 38ed41e
Showing 1 changed file with 83 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,14 @@
import static org.glassfish.api.event.EventTypes.PREPARE_SHUTDOWN;
import static org.glassfish.api.event.EventTypes.PREPARE_SHUTDOWN_NAME;
import static org.glassfish.api.event.EventTypes.SERVER_READY;
import static org.glassfish.api.event.EventTypes.SERVER_READY_NAME;
import static org.glassfish.api.event.EventTypes.SERVER_SHUTDOWN;
import static org.glassfish.api.event.EventTypes.SERVER_SHUTDOWN_NAME;
import static org.glassfish.api.event.EventTypes.SERVER_STARTUP;
import static org.glassfish.api.event.EventTypes.SERVER_STARTUP_NAME;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.empty;
import static org.hamcrest.Matchers.hasSize;
import static org.junit.jupiter.api.Assertions.assertAll;
import static org.junit.jupiter.api.Assertions.assertSame;
Expand Down Expand Up @@ -77,6 +81,85 @@ public void event(@RestrictTo(PREPARE_SHUTDOWN_NAME) Event<?> event) {
events.unregister(listener);
}

@Test
public void repeatableRestrictedEventListenerTest() {
Events events = serviceLocator.getService(Events.class);

List<EventTypes<?>> eventTypes = new ArrayList<>();

// Do not replace with lambda because annotations will be lost
EventListener listener = new EventListener() {

@Override
public void event(@RestrictTo(SERVER_STARTUP_NAME) @RestrictTo(SERVER_SHUTDOWN_NAME) Event<?> event) {
eventTypes.add(event.type());
}
};

events.register(listener);

events.send(new Event<>(SERVER_STARTUP), false);
events.send(new Event<>(SERVER_READY), false);
events.send(new Event<>(PREPARE_SHUTDOWN), false);
events.send(new Event<>(SERVER_SHUTDOWN), false);

assertAll(
() -> assertThat(eventTypes, hasSize(2)),
() -> assertThat(eventTypes, contains(SERVER_STARTUP, SERVER_SHUTDOWN))
);

events.unregister(listener);
}

@Test
public void nonMatchingEventListenerTest() {
Events events = serviceLocator.getService(Events.class);

List<EventTypes<?>> eventTypes = new ArrayList<>();

// Do not replace with lambda because annotation will be lost
EventListener listener = new EventListener() {

@Override
public void event(@RestrictTo(SERVER_STARTUP_NAME) Event<?> event) {
eventTypes.add(event.type());
}
};

events.register(listener);

events.send(new Event<>(SERVER_SHUTDOWN), false);

assertThat(eventTypes, empty());

events.unregister(listener);
}

@Test
public void nonMatchingRepeatableEventListenerTest() {
Events events = serviceLocator.getService(Events.class);

List<EventTypes<?>> eventTypes = new ArrayList<>();

// Do not replace with lambda because annotations will be lost
EventListener listener = new EventListener() {

@Override
public void event(@RestrictTo(SERVER_READY_NAME) @RestrictTo(PREPARE_SHUTDOWN_NAME) Event<?> event) {
eventTypes.add(event.type());
}
};

events.register(listener);

events.send(new Event<>(SERVER_STARTUP), false);
events.send(new Event<>(SERVER_SHUTDOWN), false);

assertThat(eventTypes, empty());

events.unregister(listener);
}

@Test
public void unrestrictedEventListenerTest() {
Events events = serviceLocator.getService(Events.class);
Expand Down

0 comments on commit 38ed41e

Please sign in to comment.