import javax.annotation.Resource; import javax.jms.*; import org.jboss.arquillian.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import com.acme.ejb.MessageEcho; import com.acme.util.jms.QueueRequestor; @RunWith(Arquillian.class) public class InjectionTestCase { @Deployment public static JavaArchive createTestArchive() { return ShrinkWrap.create(JavaArchive.class, "test.jar") .addClasses(MessageEcho.class, QueueRequestor.class); } @Resource(mappedName = "/queue/DLQ") private Queue dlq; @Resource(mappedName = "/ConnectionFactory") private ConnectionFactory factory; @Test public void shouldBeAbleToSendMessage() throws Exception { String messageBody = "ping"; Connection connection = factory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); QueueRequestor requestor = new QueueRequestor((QueueSession) session, dlq); connection.start(); Message request = session.createTextMessage(messageBody); Message response = requestor.request(request, 5000); Assert.assertEquals("Should have responded with same message", messageBody, ((TextMessage) response).getText()); } }