private void assertMyStatefulBean(IEnterpriseBeanMetaData enterpriseBean)
{
assertTrue(enterpriseBean instanceof SessionBeanMetaData);
SessionBeanMetaData bean = (SessionBeanMetaData) enterpriseBean;
assertEquals(SessionType.Stateful, bean.getSessionType());
assertEquals(MyStatefulBean.class.getName(), bean.getEjbClass());
assertEquals("AnotherName", bean.getEjbName());
assertNotNull("bean has no business remotes", bean.getBusinessRemotes());
assertEquals(1, bean.getBusinessRemotes().size());
assertTrue(bean.getBusinessRemotes().contains(MyStateful.class.getName()));
assertEquals(MyStatefulHome.class.getName(), bean.getHome());
// @EJBs
AnnotatedEJBReferencesMetaData ejbRefs = bean.getAnnotatedEjbReferences();
assertEquals(2, ejbRefs.size());
AnnotatedEJBReferenceMetaData local1 = ejbRefs.get("ejb/local1");
assertNotNull(local1);
assertEquals("java:/MyLocalSession1", local1.getMappedName());
assertEquals("ejb/local1", local1.getEjbRefName());
assertEquals("MyLocalSession1", local1.getLink());
assertEquals("A reference to MyLocalSession1", local1.getDescriptions().value()[0].value());
assertEquals(MyStatelessLocal.class, local1.getBeanInterface());
AnnotatedEJBReferenceMetaData local2 = ejbRefs.get("ejb/local2");
assertNotNull(local2);
assertEquals("java:/MyLocalSession2", local2.getMappedName());
assertEquals("ejb/local2", local2.getEjbRefName());
assertEquals("local.jar#MyLocalSession1", local2.getLink());
assertEquals("A reference to MyLocalSession2", local2.getDescriptions().value()[0].value());
assertEquals(MyStatelessLocal.class, local2.getBeanInterface());
// @PostConstruct
LifecycleCallbacksMetaData postConstructs = bean.getPostConstructs();
assertNotNull(postConstructs);
assertEquals(1, postConstructs.size());
LifecycleCallbackMetaData postConstruct = postConstructs.get(0);
assertEquals("setUp", postConstruct.getMethodName());
assertEquals(MyStatefulBean.class.getName(), postConstruct.getClassName());
// @PreDestroy
LifecycleCallbacksMetaData preDestroys = bean.getPreDestroys();
assertNotNull(preDestroys);
assertEquals(1, preDestroys.size());
LifecycleCallbackMetaData preDestroy = preDestroys.get(0);
assertEquals("tearDown", preDestroy.getMethodName());
assertEquals(MyStatefulBean.class.getName(), preDestroy.getClassName());
// @Init
InitMethodsMetaData initMethods = bean.getInitMethods();
assertNotNull(initMethods);
assertEquals(1, initMethods.size());
InitMethodMetaData initMethod = initMethods.get(0);
assertEquals("init", initMethod.getBeanMethod().getMethodName());
// @PostActivate
LifecycleCallbacksMetaData postActivates = bean.getPostActivates();
assertNotNull(postActivates);
assertEquals(1, postActivates.size());
LifecycleCallbackMetaData postActivate = postActivates.get(0);
assertEquals("activate", postActivate.getMethodName());
assertEquals(MyStatefulBean.class.getName(), postActivate.getClassName());
// @PrePassivate
LifecycleCallbacksMetaData prePassivates = bean.getPrePassivates();
assertNotNull(prePassivates);
assertEquals(1, prePassivates.size());
LifecycleCallbackMetaData prePassivate = prePassivates.get(0);
assertEquals("passivate", prePassivate.getMethodName());
assertEquals(MyStatefulBean.class.getName(), prePassivate.getClassName());
// @Remove
RemoveMethodsMetaData removeMethods = bean.getRemoveMethods();
assertNotNull(removeMethods);
assertEquals(1, removeMethods.size());
RemoveMethodMetaData removeMethod = removeMethods.get(0);
assertEquals("remove", removeMethod.getBeanMethod().getMethodName());
// @Resource
ResourceEnvironmentReferencesMetaData resource = bean.getResourceEnvironmentReferences();
assertNotNull(resource);
assertEquals(1, resource.size());
ResourceEnvironmentReferenceMetaData ref = resource.get(bean.getEjbClass() + "/context");
assertNotNull(ref);
assertNotNull(ref.getInjectionTargets());
// @PersistenceContext
PersistenceContextReferenceMetaData persistence = bean.getPersistenceContextReferenceByName("string");
assertNotNull(persistence);
assertNotNull(persistence.getInjectionTargets());
// @WebServiceRef
ServiceReferencesMetaData serviceRefs = bean.getServiceReferences();
assertNotNull(serviceRefs);
assertEquals(1, serviceRefs.size());
ServiceReferenceMetaData serviceRef = serviceRefs.get(bean.getEjbClass() + "/webserviceRef");
assertNotNull(serviceRef);
assertNotNull(serviceRef.getInjectionTargets());
}