33import static org .junit .jupiter .api .Assertions .assertEquals ;
44
55import java .util .Arrays ;
6+ import java .util .Collections ;
7+ import java .util .function .Supplier ;
68
79import javax .inject .Inject ;
810
1820
1921@ QuarkusTest
2022@ ExtendWith (ParameterResolverTest .UnusedBeanDummyInputResolver .class )
23+ @ ExtendWith (ParameterResolverTest .SupplierParameterResolver .class )
2124public class ParameterResolverTest {
2225
2326 @ Inject
2427 UnusedBean unusedBean ;
2528
2629 @ Test
27- public void testParameterResolver (UnusedBean .DummyInput dummyInput ) {
30+ public void testParameterResolver (UnusedBean .DummyInput dummyInput , Supplier < UnusedBean . DummyInput > supplier ) {
2831 UnusedBean .DummyResult dummyResult = unusedBean .dummy (dummyInput );
2932 assertEquals ("whatever/6" , dummyResult .getResult ());
33+
34+ dummyResult = unusedBean .dummy (supplier .get ());
35+ assertEquals ("fromSupplier/0" , dummyResult .getResult ());
3036 }
3137
3238 public static class UnusedBeanDummyInputResolver implements ParameterResolver {
@@ -44,4 +50,20 @@ public Object resolveParameter(ParameterContext parameterContext,
4450 }
4551 }
4652
53+ public static class SupplierParameterResolver implements ParameterResolver {
54+
55+ @ Override
56+ public boolean supportsParameter (ParameterContext parameterContext , ExtensionContext extensionContext )
57+ throws ParameterResolutionException {
58+ return Supplier .class .getName ().equals (parameterContext .getParameter ().getType ().getName ());
59+ }
60+
61+ @ Override
62+ public Object resolveParameter (ParameterContext parameterContext , ExtensionContext extensionContext )
63+ throws ParameterResolutionException {
64+ return (Supplier <UnusedBean .DummyInput >) () -> new UnusedBean .DummyInput ("fromSupplier" ,
65+ new UnusedBean .NestedDummyInput (Collections .emptyList ()));
66+ }
67+ }
68+
4769}
0 commit comments