1 package com.github.jonasrutishauser.transactional.event.quarkus.deployment.it;
2
3 import static org.hamcrest.Matchers.stringContainsInOrder;
4 import static org.hamcrest.MatcherAssert.assertThat;
5 import static org.junit.jupiter.api.Assertions.fail;
6
7 import org.jboss.shrinkwrap.api.asset.EmptyAsset;
8 import org.junit.jupiter.api.Test;
9 import org.junit.jupiter.api.extension.RegisterExtension;
10
11 import com.github.jonasrutishauser.transactional.event.api.handler.EventHandler;
12 import com.github.jonasrutishauser.transactional.event.api.handler.Handler;
13
14 import io.quarkus.test.QuarkusUnitTest;
15 import jakarta.enterprise.context.Dependent;
16
17 class EventHandlerWrongParentTest {
18
19 @RegisterExtension
20 static final QuarkusUnitTest config = new QuarkusUnitTest()
21 .assertException(t -> assertThat(t.getMessage(),
22 stringContainsInOrder("AbstractHandler type is missing on bean with implicit event type",
23 "InvalidEventHandler")))
24 .withApplicationRoot(archive -> archive
25 .addClasses(ValidEventHandler.class, InvalidEventHandler.class)
26 .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
27 );
28
29 @Test
30 void test() {
31 fail("deployment error expected");
32 }
33
34 @Dependent
35 @EventHandler
36 public static class InvalidEventHandler implements Handler {
37 @Override
38 public void handle(String event) {
39 fail();
40 }
41 }
42
43 @Dependent
44 @EventHandler(eventType = "TestEvent")
45 public static class ValidEventHandler implements Handler {
46 @Override
47 public void handle(String event) {
48 fail();
49 }
50 }
51 }