public void testConsumer() throws Exception
{
JBossMetaData result = unmarshal();
assertEquals(1, result.getEnterpriseBeans().size());
JBossConsumerBeanMetaData bean = (JBossConsumerBeanMetaData) result.getEnterpriseBean("DeploymentDescriptorQueueTestConsumer");
assertNotNull(bean);
assertTrue(bean.isConsumer());
assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestConsumer", bean.getEjbClass());
assertEquals("queue/consumertest", bean.getMessageDestination());
assertEquals("javax.jms.Queue", bean.getMessageDestinationType());
assertEquals(2, bean.getProducers().size());
{
ProducerMetaData producer = bean.getProducers().get(0);
assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestRemote", producer.getClassName());
}
{
ProducerMetaData producer = bean.getProducers().get(1);
assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestXA", producer.getClassName());
assertEquals("java:/JmsXA", producer.getConnectionFactory());
}
assertEquals(1, bean.getLocalProducers().size());
{
ProducerMetaData producer = bean.getLocalProducers().get(0);
assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestLocal", producer.getClassName());
assertTrue(producer.isLocal());
}
assertEquals(2, bean.getCurrentMessage().size());
assertNotNull(bean.getCurrentMessage().getMethodAttribute("currentMessage"));
assertNotNull(bean.getCurrentMessage().getMethodAttribute("setMessage"));
assertEquals(2, bean.getMessageProperties().size());
{
MessagePropertiesMetaData messageProperties = bean.getMessageProperties().get(0);
assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTest", messageProperties.getClassName());
assertEquals("method2", messageProperties.getMethod().getMethodName());
assertEquals("NonPersistent", messageProperties.getDelivery());
}
{
MessagePropertiesMetaData messageProperties = bean.getMessageProperties().get(1);
assertEquals("org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestXA", messageProperties.getClassName());
assertEquals("method2", messageProperties.getMethod().getMethodName());
assertEquals("Persistent", messageProperties.getDelivery());
assertEquals(4, (int) messageProperties.getPriority());
}
String pkg = "consumer";
String injectionTargetClass = "org.jboss.ejb3.test.consumer.DeploymentDescriptorQueueTestConsumer";
{
assertEquals(1, bean.getEjbReferences().size());
EJBReferenceMetaData ejbRef = bean.getEjbReferenceByName("ejb/StatelessRemote");
assertNotNull(ejbRef);
//assertEquals("test", ejbRef.getDescriptions().value()[0].value());
assertEquals(EJBReferenceType.Session, ejbRef.getEjbRefType());
assertEquals("org.jboss.ejb3.test." + pkg + ".StatelessRemote", ejbRef.getRemote());
assertEquals("StatelessBean", ejbRef.getLink());
assertEquals("StatelessBean/remote", ejbRef.getJndiName());
assertEquals(1, ejbRef.getInjectionTargets().size());
ResourceInjectionTargetMetaData injectionTarget = ejbRef.getInjectionTargets().iterator().next();
assertNotNull(injectionTarget);
assertEquals(injectionTargetClass, injectionTarget.getInjectionTargetClass());
assertEquals("stateless", injectionTarget.getInjectionTargetName());
}
{
assertEquals(1, bean.getEjbLocalReferences().size());
EJBLocalReferenceMetaData ejbLocalRef = bean.getEjbLocalReferenceByName("ejb/StatelessLocal");
assertNotNull(ejbLocalRef);
assertEquals(EJBReferenceType.Session, ejbLocalRef.getEjbRefType());
assertEquals("org.jboss.ejb3.test." + pkg +".StatelessLocal", ejbLocalRef.getLocal());
assertEquals("StatelessBean", ejbLocalRef.getLink());
assertEquals("StatelessBean/local", ejbLocalRef.getJndiName());
assertEquals(1, ejbLocalRef.getInjectionTargets().size());
ResourceInjectionTargetMetaData injectionTarget = ejbLocalRef.getInjectionTargets().iterator().next();
assertNotNull(injectionTarget);
assertEquals(injectionTargetClass, injectionTarget.getInjectionTargetClass());
assertEquals("setStatelessLocal", injectionTarget.getInjectionTargetName());
}
{
assertEquals(1, bean.getResourceReferences().size());
ResourceReferenceMetaData resourceRef = bean.getResourceReferenceByName("testDatasource");
assertNotNull(resourceRef);
assertEquals("javax.sql.DataSource", resourceRef.getType());
assertEquals(ResourceAuthorityType.Container, resourceRef.getResAuth());
assertEquals("java:/DefaultDS", resourceRef.getMappedName());
assertEquals(1, resourceRef.getInjectionTargets().size());
ResourceInjectionTargetMetaData injectionTarget = resourceRef.getInjectionTargets().iterator().next();
assertNotNull(injectionTarget);
assertEquals(injectionTargetClass, injectionTarget.getInjectionTargetClass());
assertEquals("testDatasource", injectionTarget.getInjectionTargetName());
}
{
assertEquals(1, bean.getResourceEnvironmentReferences().size());
ResourceEnvironmentReferenceMetaData resourceEnvRef = bean.getResourceEnvironmentReferenceByName("res/aQueue");
assertEquals("javax.jms.Queue", resourceEnvRef.getType());
assertEquals("queue/mdbtest", resourceEnvRef.getJndiName());
}
/*