0
我有下面的Java類,它從JMS隊列中檢索消息。這個類在騾子流中被調用。你能否請教我如何爲這個班級寫一篇Junit?我試圖創建一個獨立的經紀人,但我有麻煩訪問Mule流中的ActiveMq的Java組件的單元測試
public Object getMessages(final MuleEventContext eventContext)
{
final String consumerID = eventContext.getMessage().getProperty("consumerID", PropertyScope.INVOCATION);
final String messageSelector = "ConsumerID = '" + consumerID + "'";
JmsConnector amqConnector = (JmsConnector) eventContext.getMuleContext().getRegistry().lookupConnector("Active_MQ");
ConnectionFactory factory = amqConnector.getConnectionFactory();
Connection connection = null;
List<String> listOfMessages = null;
try
{
connection = factory.createConnection();
//Consumer Settings
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue(queuename");
MessageConsumer consumer = session.createConsumer(queue, messageSelector);
//Browser Settings
Session sessionBrowser = amqConnector.getSession(false, false);
Queue queueBrowser = sessionBrowser.createQueue(queuename);
QueueBrowser qBrowser = sessionBrowser.createBrowser(queueBrowser, messageSelector);
Enumeration<Message> enumeration = qBrowser.getEnumeration();
connection.start();
listOfMessages = new ArrayList<String>();
while (enumeration.hasMoreElements())
{
enumeration.nextElement();
Message message = consumer.receive();
TextMessage msg = (TextMessage) message;
listOfMessages.add(msg.getText());
}
//Close Browser Settings
qBrowser.close(); sessionBrowser.close();
//Close Consumer Settings
consumer.close(); session.close();
//Close Connection
connection.close();
}
catch (Exception e)
{
throw new RuntimeException("Unable to retrieve messages from Queue "+ e);
}
}