@Test(dataProvider = ARQUILLIAN_DATA_PROVIDER) @SpecAssertions({ @SpecAssertion(section = NEW_EE, id = "yl") }) public void testNewBeanCreatedForDisposerMethod(DragonProducer producer) { Bean<Fireball> bean = getUniqueBean(Fireball.class, New.Literal.INSTANCE); checkNewQualifiedBean(bean, Object.class, Fireball.class); Bean<Dragon> dragonBean = getUniqueBean(Dragon.class, TameLiteral.INSTANCE); CreationalContext<Dragon> ctx = getCurrentManager().createCreationalContext(dragonBean); Dragon dragon = dragonBean.create(ctx); dragonBean.destroy(dragon, ctx); assertTrue(producer.isDragonDestroyed()); }
@Test @SpecAssertion(section = NEW_EE, id = "n") public void testNewBeanHasSameInjectedFields() { Bean<InitializerSimpleBeanLocal> simpleBean = getBeans(InitializerSimpleBeanLocal.class).iterator().next(); Bean<InitializerSimpleBeanLocal> newSimpleBean = getBeans(InitializerSimpleBeanLocal.class, New.Literal.of(InitializerSimpleBean.class)).iterator().next(); assert !newSimpleBean.getInjectionPoints().isEmpty(); assert simpleBean.getInjectionPoints().equals(newSimpleBean.getInjectionPoints()); }
@Test(dataProvider = ARQUILLIAN_DATA_PROVIDER) @SpecAssertions({ @SpecAssertion(section = NEW_EE, id = "yd") }) public void testNewBeanCreatedForInitializerInjectionPoint(Wizard wizard) { Bean<Staff> bean = getUniqueBean(Staff.class, New.Literal.INSTANCE); checkNewQualifiedBean(bean, Object.class, Staff.class); assertTrue(wizard.getStaff().ping()); }
private <T> void checkNewQualifiedBean(Bean<T> bean, Type... requiredTypes) { assertTrue(typeSetMatches(bean.getTypes(), requiredTypes)); // Has scope @Dependent, assertEquals(bean.getScope(), Dependent.class); // Has exactly one qualifier... assertTrue(annotationSetMatches(bean.getQualifiers(), New.Literal.of(bean.getBeanClass()))); // Has no bean EL name assertNull(bean.getName()); // Has no stereotypes assertTrue(bean.getStereotypes() == null || bean.getStereotypes().isEmpty()); // Is not an alternative assertFalse(bean.isAlternative()); } }
@Test @SpecAssertion(section = NEW_EE, id = "u") public void testNewBeanHasNoObservers() { // Should just be 1 observer from bean, not new bean assert getCurrentManager().resolveObserverMethods("event").size() == 1; }
@Test @SpecAssertion(section = NEW_EE, id = "o") public void testNewBeanHasTheSameInterceptorBindings() { // Method foo() is intercepted assertTrue(getContextualReference(NewSessionBeanConsumer.class).getOrder().ping()); }
@Test(dataProvider = ARQUILLIAN_DATA_PROVIDER) @SpecAssertions({ @SpecAssertion(section = NEW_EE, id = "yf") }) public void testNewBeanCreatedForConstructorInjectionPoint(Wizard wizard) { Bean<Spell> bean = getUniqueBean(Spell.class, New.Literal.INSTANCE); checkNewQualifiedBean(bean, Object.class, Spell.class); assertTrue(wizard.getSpell().ping()); }
@Test(dataProvider = ARQUILLIAN_DATA_PROVIDER) @SpecAssertions({ @SpecAssertion(section = NEW_EE, id = "yj") }) public void testNewBeanCreatedForObserverMethod(Wizard wizard) { Bean<Hat> bean = getUniqueBean(Hat.class, New.Literal.INSTANCE); checkNewQualifiedBean(bean, Object.class, Hat.class); getCurrentManager().fireEvent(new Wizard()); assertTrue(wizard.getHat().ping()); }
@Test(dataProvider = ARQUILLIAN_DATA_PROVIDER) @SpecAssertions({ @SpecAssertion(section = NEW_EE, id = "yb") }) public void testNewBeanCreatedForFieldInjectionPoint(Wizard wizard) { Bean<Tiger> bean = getUniqueBean(Tiger.class, New.Literal.INSTANCE); checkNewQualifiedBean(bean, Object.class, Tiger.class); assertTrue(wizard.getTiger().ping()); }
@Test @SpecAssertion(section = NEW_EE, id = "r") public void testNewBeanHasOnlyOneQualifier() { Set<Bean<WrappedEnterpriseBeanLocal>> beans = getBeans(WrappedEnterpriseBeanLocal.class, New.Literal.of( WrappedEnterpriseBean.class)); assert beans.size() == 1; Bean<WrappedEnterpriseBeanLocal> newEnterpriseBean = beans.iterator().next(); assert newEnterpriseBean.getQualifiers().size() == 1; assert newEnterpriseBean.getQualifiers().iterator().next().annotationType().equals(New.class); }
@Test(dataProvider = ARQUILLIAN_DATA_PROVIDER) @SpecAssertions({ @SpecAssertion(section = NEW_EE, id = "yh") }) public void testNewBeanCreatedForProducerMethod(Wizard wizard) { Bean<Dragon> bean = getUniqueBean(Dragon.class, New.Literal.INSTANCE); checkNewQualifiedBean(bean, Object.class, Dragon.class); assertTrue(wizard.getDragon().ping()); }
@Test @SpecAssertion(section = NEW_EE, id = "p") public void testNewBeanIsDependentScoped() { Set<Bean<WrappedEnterpriseBeanLocal>> beans = getBeans(WrappedEnterpriseBeanLocal.class, New.Literal.of( WrappedEnterpriseBean.class)); assert beans.size() == 1; Bean<WrappedEnterpriseBeanLocal> newEnterpriseBean = beans.iterator().next(); assert Dependent.class.equals(newEnterpriseBean.getScope()); }
@Test @SpecAssertion(section = NEW_EE, id = "s") public void testNewBeanHasNoBeanELName() { Set<Bean<WrappedEnterpriseBeanLocal>> beans = getBeans(WrappedEnterpriseBeanLocal.class, New.Literal.of( WrappedEnterpriseBean.class)); assert beans.size() == 1; Bean<WrappedEnterpriseBeanLocal> newEnterpriseBean = beans.iterator().next(); assert newEnterpriseBean.getName() == null; }
@Test @SpecAssertion(section = NEW_EE, id = "t") public void testNewBeanHasNoStereotypes() { Bean<MonkeyLocal> monkeyBean = getBeans(MonkeyLocal.class).iterator().next(); Bean<MonkeyLocal> newMonkeyBean = getBeans(MonkeyLocal.class, New.Literal.of(Monkey.class)).iterator().next(); assert monkeyBean.getScope().equals(RequestScoped.class); assert newMonkeyBean.getScope().equals(Dependent.class); assert monkeyBean.getName().equals("monkey"); assert newMonkeyBean.getName() == null; }
@Test @SpecAssertions({ @SpecAssertion(section = NEW_EE, id = "j"), @SpecAssertion(section = NEW_EE, id = "k") }) public void testForEachEnterpriseBeanANewBeanExists() { Bean<OrderLocal> orderBean = getBeans(OrderLocal.class).iterator().next(); Set<Bean<OrderLocal>> newOrderBeans = getBeans(OrderLocal.class, New.Literal.of(Order.class)); assert newOrderBeans.size() == 1; Bean<OrderLocal> newOrderBean = newOrderBeans.iterator().next(); assert orderBean.getQualifiers().size() == 2; assert orderBean.getQualifiers().contains(Default.Literal.INSTANCE); assert orderBean.getQualifiers().contains(Any.Literal.INSTANCE); assert orderBean.getTypes().equals(newOrderBean.getTypes()); assert orderBean.getBeanClass().equals(newOrderBean.getBeanClass()); assert newOrderBean.getQualifiers().size() == 1; assert newOrderBean.getQualifiers().iterator().next().annotationType().equals(New.class); Set<Bean<LionLocal>> lionBeans = getBeans(LionLocal.class, TameLiteral.INSTANCE); Set<Bean<LionLocal>> newLionBeans = getBeans(LionLocal.class, New.Literal.of(Lion.class)); assert lionBeans.size() == 1; assert newLionBeans.size() == 1; Bean<LionLocal> lionBean = lionBeans.iterator().next(); Bean<LionLocal> newLionBean = newLionBeans.iterator().next(); assert lionBean.getQualifiers().size() == 2; assert lionBean.getQualifiers().contains(TameLiteral.INSTANCE); assert lionBean.getQualifiers().contains(Any.Literal.INSTANCE); assert newLionBean.getQualifiers().size() == 1; assert newLionBean.getQualifiers().iterator().next().annotationType().equals(New.class); assert lionBean.getTypes().equals(newLionBean.getTypes()); assert lionBean.getBeanClass().equals(newLionBean.getBeanClass()); }