Skip to content

Commit

Permalink
Add tests for InvocationContext.getInterceptorBindings() with @interc…
Browse files Browse the repository at this point in the history
  • Loading branch information
Ladicek committed Jul 18, 2023
1 parent 0fcff53 commit 0a0ea5c
Show file tree
Hide file tree
Showing 5 changed files with 105 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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";
}
}
Original file line number Diff line number Diff line change
@@ -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<Annotation> allBindings;

@AroundInvoke
public Object intercept(InvocationContext ctx) throws Exception {
allBindings = ctx.getInterceptorBindings();
return "dog: " + ctx.proceed();
}

public static Set<Annotation> getAllBindings() {
return allBindings;
}
}
Original file line number Diff line number Diff line change
@@ -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";
}
}
Original file line number Diff line number Diff line change
@@ -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<Annotation> allBindings;

@AroundInvoke
public Object intercept(InvocationContext ctx) throws Exception {
allBindings = ctx.getInterceptorBindings();
return "fish: " + ctx.proceed();
}

public static Set<Annotation> getAllBindings() {
return allBindings;
}
}
Original file line number Diff line number Diff line change
@@ -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());
}
}

0 comments on commit 0a0ea5c

Please sign in to comment.