From ef0fd0d8a919a759bcff64a026e3abd7a71db1e7 Mon Sep 17 00:00:00 2001 From: Martin Ritchie Date: Fri, 7 May 2010 15:11:25 +0000 Subject: QPID-1447 : Add initial test for SlowConsumers git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@942106 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/qpid/test/utils/QpidTestCase.java | 69 +++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) (limited to 'java/systests/src') diff --git a/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java b/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java index f3f978239b..17546b4d39 100644 --- a/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java +++ b/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java @@ -42,6 +42,11 @@ import javax.jms.MessageConsumer; import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.Session; +import javax.jms.BytesMessage; +import javax.jms.MapMessage; +import javax.jms.TextMessage; +import javax.jms.ObjectMessage; +import javax.jms.StreamMessage; import javax.naming.InitialContext; import javax.naming.NamingException; @@ -91,6 +96,8 @@ public class QpidTestCase extends TestCase private XMLConfiguration _testVirtualhosts = new XMLConfiguration(); protected static final String INDEX = "index"; + protected static final String CONTENT = "content"; + /** * Some tests are excluded when the property test.excludes is set to true. @@ -216,6 +223,22 @@ public class QpidTestCase extends TestCase /** Map to hold test defined environment properties */ private Map _env; + /** Ensure our messages have some sort of size */ + protected static final int DEFAULT_MESSAGE_SIZE = 1024; + + /** Size to create our message*/ + private int _messageSize = DEFAULT_MESSAGE_SIZE; + /** Type of message*/ + protected enum MessageType + { + BYTES, + MAP, + OBJECT, + STREAM, + TEXT + } + private MessageType _messageType = MessageType.TEXT; + public QpidTestCase(String name) { super(name); @@ -1264,13 +1287,57 @@ public class QpidTestCase extends TestCase public Message createNextMessage(Session session, int msgCount) throws JMSException { - Message message = session.createMessage(); + Message message = createMessage(session, _messageSize); message.setIntProperty(INDEX, msgCount); return message; } + public Message createMessage(Session session, int messageSize) throws JMSException + { + String payload = new String(new byte[messageSize]); + + Message message; + + switch (_messageType) + { + case BYTES: + message = session.createBytesMessage(); + ((BytesMessage) message).writeUTF(payload); + break; + case MAP: + message = session.createMapMessage(); + ((MapMessage) message).setString(CONTENT, payload); + break; + default: // To keep the compiler happy + case TEXT: + message = session.createTextMessage(); + ((TextMessage) message).setText(payload); + break; + case OBJECT: + message = session.createObjectMessage(); + ((ObjectMessage) message).setObject(payload); + break; + case STREAM: + message = session.createStreamMessage(); + ((StreamMessage) message).writeString(payload); + break; + } + + return message; + } + + protected int getMessageSize() + { + return _messageSize; + } + + protected void setMessageSize(int byteSize) + { + _messageSize = byteSize; + } + public ConnectionURL getConnectionURL() throws NamingException { return getConnectionFactory().getConnectionURL(); -- cgit v1.2.1