diff --git a/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/Dog.java b/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/Dog.java new file mode 100644 index 0000000000..45f05b78d8 --- /dev/null +++ b/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/Dog.java @@ -0,0 +1,13 @@ +package org.jboss.cdi.tck.tests.full.interceptors.contract.invocationContext; + +import jakarta.enterprise.context.Dependent; +import jakarta.interceptor.ExcludeClassInterceptors; +import jakarta.interceptor.Interceptors; + +@Interceptors(DogInterceptor.class) +@Dependent +class Dog { + public String foo() { + return "bar"; + } +} diff --git a/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/DogInterceptor.java b/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/DogInterceptor.java new file mode 100644 index 0000000000..6df7cf0048 --- /dev/null +++ b/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/DogInterceptor.java @@ -0,0 +1,21 @@ +package org.jboss.cdi.tck.tests.full.interceptors.contract.invocationContext; + +import jakarta.interceptor.AroundInvoke; +import jakarta.interceptor.InvocationContext; + +import java.lang.annotation.Annotation; +import java.util.Set; + +public class DogInterceptor { + private static Set allBindings; + + @AroundInvoke + public Object intercept(InvocationContext ctx) throws Exception { + allBindings = ctx.getInterceptorBindings(); + return "dog: " + ctx.proceed(); + } + + public static Set getAllBindings() { + return allBindings; + } +} diff --git a/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/Fish.java b/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/Fish.java new file mode 100644 index 0000000000..c8d947aee5 --- /dev/null +++ b/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/Fish.java @@ -0,0 +1,12 @@ +package org.jboss.cdi.tck.tests.full.interceptors.contract.invocationContext; + +import jakarta.enterprise.context.Dependent; +import jakarta.interceptor.Interceptors; + +@Dependent +class Fish { + @Interceptors(FishInterceptor.class) + public String foo() { + return "bar"; + } +} diff --git a/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/FishInterceptor.java b/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/FishInterceptor.java new file mode 100644 index 0000000000..9c6b299e20 --- /dev/null +++ b/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/FishInterceptor.java @@ -0,0 +1,21 @@ +package org.jboss.cdi.tck.tests.full.interceptors.contract.invocationContext; + +import jakarta.interceptor.AroundInvoke; +import jakarta.interceptor.InvocationContext; + +import java.lang.annotation.Annotation; +import java.util.Set; + +public class FishInterceptor { + private static Set allBindings; + + @AroundInvoke + public Object intercept(InvocationContext ctx) throws Exception { + allBindings = ctx.getInterceptorBindings(); + return "fish: " + ctx.proceed(); + } + + public static Set getAllBindings() { + return allBindings; + } +} diff --git a/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/InterceptorBindingsWithAtInterceptorsTest.java b/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/InterceptorBindingsWithAtInterceptorsTest.java new file mode 100644 index 0000000000..2ab47d223e --- /dev/null +++ b/impl/src/main/java/org/jboss/cdi/tck/tests/full/interceptors/contract/invocationContext/InterceptorBindingsWithAtInterceptorsTest.java @@ -0,0 +1,38 @@ +package org.jboss.cdi.tck.tests.full.interceptors.contract.invocationContext; + +import org.jboss.arquillian.container.test.api.Deployment; +import org.jboss.cdi.tck.AbstractTest; +import org.jboss.cdi.tck.shrinkwrap.WebArchiveBuilder; +import org.jboss.shrinkwrap.api.spec.WebArchive; +import org.jboss.test.audit.annotations.SpecAssertion; +import org.jboss.test.audit.annotations.SpecVersion; +import org.testng.annotations.Test; + +import static org.jboss.cdi.tck.TestGroups.CDI_FULL; +import static org.jboss.cdi.tck.interceptors.InterceptorsSections.INVOCATIONCONTEXT; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; +import static org.testng.Assert.assertTrue; + +@SpecVersion(spec = "interceptors", version = "2.2") +@Test(groups = CDI_FULL) +public class InterceptorBindingsWithAtInterceptorsTest extends AbstractTest { + @Deployment + public static WebArchive createTestArchive() { + return new WebArchiveBuilder().withTestClassPackage(InterceptorBindingsWithAtInterceptorsTest.class).build(); + } + + @Test + @SpecAssertion(section = INVOCATIONCONTEXT, id = "n") + public void testInterceptorBindingsEmptyWithAtInterceptors() { + Dog dog = getContextualReference(Dog.class); + assertEquals(dog.foo(), "dog: bar"); + assertNotNull(DogInterceptor.getAllBindings()); + assertTrue(DogInterceptor.getAllBindings().isEmpty()); + + Fish fish = getContextualReference(Fish.class); + assertEquals(fish.foo(), "fish: bar"); + assertNotNull(FishInterceptor.getAllBindings()); + assertTrue(FishInterceptor.getAllBindings().isEmpty()); + } +}