### Question:
DefaultEventManager implements EventManager { @Nullable @Override public <T extends Event> T callEvent(@NotNull Class<? extends T> event) { try { return this.callEvent(event.getDeclaredConstructor().newInstance()); } catch (final NoSuchMethodException exception) { System.err.println("Missing NoArgsConstructor in event class " + event.getName()); } catch (final InstantiationException | IllegalAccessException | InvocationTargetException exception) { exception.printStackTrace(); } return null; }  @Nullable @Override T callEvent(@NotNull Class<? extends T> event); @NotNull @Override T callEvent(@NotNull T event); @NotNull @Override Task<T> callEventAsync(@NotNull Class<? extends T> event); @NotNull @Override Task<T> callEventAsync(@NotNull T event); @Override void registerListener(@NotNull Object listener); @Override void registerListener(@NotNull Class<?> listener); @Override void unregisterListener(@NotNull Object listener); @Override void unregisterAll(); @NotNull @Override @UnmodifiableView List<ListenerContainer> getListeners();  }### Answer:
@Test @Order(2) void testCallEvent() { TestEvent event = this.eventManager.callEvent(new TestEvent()); Assertions.assertEquals(2, event.counter.get()); }