From 45bd1bb890447f2e5b5a5baf0c92a38f744936ca Mon Sep 17 00:00:00 2001 From: Martin Kouba Date: Fri, 14 Jun 2024 13:01:17 +0200 Subject: [PATCH] QuarkusComponentTest: fix NPE if component is expected but none exists - related to #41200 --- .../component/QuarkusComponentTestExtension.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/test-framework/junit5-component/src/main/java/io/quarkus/test/component/QuarkusComponentTestExtension.java b/test-framework/junit5-component/src/main/java/io/quarkus/test/component/QuarkusComponentTestExtension.java index 4516f822f1e8f..cd143b17d9abd 100644 --- a/test-framework/junit5-component/src/main/java/io/quarkus/test/component/QuarkusComponentTestExtension.java +++ b/test-framework/junit5-component/src/main/java/io/quarkus/test/component/QuarkusComponentTestExtension.java @@ -1097,18 +1097,25 @@ public FieldInjector(Field field, Object testInstance) throws Exception { } else { InstanceHandle handle = container.instance(requiredType, qualifiers); if (field.isAnnotationPresent(Inject.class)) { + if (!handle.isAvailable()) { + throw new IllegalStateException(String + .format("The injected field [%s] expects a real component; but no matching component was registered", + field, + handle.getBean())); + } if (handle.getBean().getKind() == io.quarkus.arc.InjectableBean.Kind.SYNTHETIC) { throw new IllegalStateException(String - .format("The injected field %s expects a real component; but obtained: %s", field, + .format("The injected field [%s] expects a real component; but obtained: %s", field, handle.getBean())); } } else { if (!handle.isAvailable()) { throw new IllegalStateException(String - .format("The injected field %s expects a mocked bean; but obtained null", field)); - } else if (handle.getBean().getKind() != io.quarkus.arc.InjectableBean.Kind.SYNTHETIC) { + .format("The injected field [%s] expects a mocked bean; but obtained null", field)); + } + if (handle.getBean().getKind() != io.quarkus.arc.InjectableBean.Kind.SYNTHETIC) { throw new IllegalStateException(String - .format("The injected field %s expects a mocked bean; but obtained: %s", field, + .format("The injected field [%s] expects a mocked bean; but obtained: %s", field, handle.getBean())); } }