Skip to content

Commit

Permalink
Simplify Artemis JMS integration test
Browse files Browse the repository at this point in the history
  • Loading branch information
middagj committed Sep 25, 2019
1 parent 393b9b8 commit cf705dc
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 43 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package io.quarkus.it.artemis;

import javax.annotation.PostConstruct;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSConsumer;
import javax.jms.JMSContext;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Session;

@ApplicationScoped
Expand All @@ -15,17 +14,9 @@ public class ArtemisConsumerManager {
@Inject
ConnectionFactory connectionFactory;

private Connection connection;

@PostConstruct
public void init() throws JMSException {
connection = connectionFactory.createConnection();
connection.start();
}

public String receive() {
try (Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE)) {
MessageConsumer consumer = session.createConsumer(session.createQueue("test-jms"));
try (JMSContext context = connectionFactory.createContext(Session.AUTO_ACKNOWLEDGE)) {
JMSConsumer consumer = context.createConsumer(context.createQueue("test-jms"));
return consumer.receive(1000L).getBody(String.class);
} catch (JMSException e) {
throw new RuntimeException("Could not receive message", e);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
package io.quarkus.it.artemis;

import javax.annotation.PostConstruct;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.JMSContext;
import javax.jms.JMSProducer;
import javax.jms.Session;

@ApplicationScoped
Expand All @@ -15,19 +13,10 @@ public class ArtemisProducerManager {
@Inject
ConnectionFactory connectionFactory;

private Connection connection;

@PostConstruct
public void init() throws JMSException {
connection = connectionFactory.createConnection();
}

public void send(String body) {
try (Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE)) {
MessageProducer producer = session.createProducer(session.createQueue("test-jms"));
producer.send(session.createTextMessage(body));
} catch (JMSException e) {
throw new RuntimeException("Could not send message", e);
try (JMSContext context = connectionFactory.createContext(Session.AUTO_ACKNOWLEDGE)) {
JMSProducer producer = context.createProducer();
producer.send(context.createQueue("test-jms"), body);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package io.quarkus.it.artemis;

import javax.jms.Session;
import javax.jms.JMSContext;
import javax.ws.rs.core.Response.Status;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
Expand All @@ -17,12 +18,12 @@ public class ArtemisConsumerTest implements ArtemisHelper {
@Test
public void test() throws Exception {
String body = createBody();
try (Session session = createSession()) {
session.createProducer(session.createQueue("test-jms")).send(session.createTextMessage(body));
try (JMSContext context = createContext()) {
context.createProducer().send(context.createQueue("test-jms"), body);
}

Response response = RestAssured.with().body(body).get("/artemis");
Assertions.assertEquals(javax.ws.rs.core.Response.Status.OK.getStatusCode(), response.statusCode());
Assertions.assertEquals(Status.OK.getStatusCode(), response.statusCode());
Assertions.assertEquals(body, response.getBody().asString());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import java.util.Random;

import javax.jms.Connection;
import javax.jms.JMSContext;
import javax.jms.JMSException;
import javax.jms.Session;

Expand All @@ -14,9 +14,7 @@ default String createBody() {
return Integer.toString(new Random().nextInt(Integer.MAX_VALUE), 16);
}

default Session createSession() throws JMSException {
Connection connection = new ActiveMQJMSConnectionFactory("tcp://localhost:61616").createConnection();
connection.start();
return connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
default JMSContext createContext() throws JMSException {
return new ActiveMQJMSConnectionFactory("tcp://localhost:61616").createContext(Session.AUTO_ACKNOWLEDGE);
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package io.quarkus.it.artemis;

import javax.jms.JMSConsumer;
import javax.jms.JMSContext;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.ws.rs.core.Response.Status;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
Expand All @@ -20,10 +21,10 @@ public class ArtemisProducerTest implements ArtemisHelper {
public void test() throws Exception {
String body = createBody();
Response response = RestAssured.with().body(body).post("/artemis");
Assertions.assertEquals(javax.ws.rs.core.Response.Status.NO_CONTENT.getStatusCode(), response.statusCode());
Assertions.assertEquals(Status.NO_CONTENT.getStatusCode(), response.statusCode());

try (Session session = createSession()) {
MessageConsumer consumer = session.createConsumer(session.createQueue("test-jms"));
try (JMSContext context = createContext()) {
JMSConsumer consumer = context.createConsumer(context.createQueue("test-jms"));
Message message = consumer.receive(1000L);
Assertions.assertEquals(body, message.getBody(String.class));
}
Expand Down

0 comments on commit cf705dc

Please sign in to comment.