You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ri...@apache.org on 2008/07/16 14:38:18 UTC
svn commit: r677260 -
/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java
Author: ritchiem
Date: Wed Jul 16 05:38:18 2008
New Revision: 677260
URL: http://svn.apache.org/viewvc?rev=677260&view=rev
Log:
QPID-1179 : Adjusted the test size from 100 to 10, this should reduce the likely hood of a slow machine failing the test.
Modified:
incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java
Modified: incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java?rev=677260&r1=677259&r2=677260&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java (original)
+++ incubator/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/QueueBrowserAutoAckTest.java Wed Jul 16 05:38:18 2008
@@ -111,7 +111,7 @@
}
- protected void sendMessages(Connection producerConnection, int num) throws JMSException
+ protected void sendMessages(Connection producerConnection, int messageSendCount) throws JMSException
{
producerConnection.start();
@@ -122,7 +122,7 @@
MessageProducer producer = producerSession.createProducer(_queue);
- for (int messsageID = 0; messsageID < num; messsageID++)
+ for (int messsageID = 0; messsageID < messageSendCount; messsageID++)
{
TextMessage textMsg = producerSession.createTextMessage("Message " + messsageID);
textMsg.setIntProperty(MESSAGE_ID_PROPERTY, messsageID);
@@ -132,7 +132,15 @@
producerConnection.close();
}
- protected void checkQueueDepth(int depth) throws JMSException
+ /**
+ * Using the Protocol getQueueDepth method ensure that the correct number of messages are on the queue.
+ *
+ * Also uses a QueueBrowser as a second method of validating the message count on the queue.
+ *
+ * @param expectedDepth The expected Queue depth
+ * @throws JMSException on error
+ */
+ protected void checkQueueDepth(int expectedDepth) throws JMSException
{
// create QueueBrowser
@@ -143,7 +151,7 @@
// check for messages
if (_logger.isDebugEnabled())
{
- _logger.debug("Checking for " + depth + " messages with QueueBrowser");
+ _logger.debug("Checking for " + expectedDepth + " messages with QueueBrowser");
}
//Check what the session believes the queue count to be.
@@ -157,7 +165,7 @@
{
}
- assertEquals("Session reports Queue depth not as expected", depth, queueDepth);
+ assertEquals("Session reports Queue expectedDepth not as expected", expectedDepth, queueDepth);
@@ -177,7 +185,7 @@
}
// check to see if all messages found
- assertEquals("Browser did not find all messages", depth, msgCount);
+ assertEquals("Browser did not find all messages", expectedDepth, msgCount);
//Close browser
queueBrowser.close();
@@ -207,13 +215,20 @@
}
}
-
- protected void checkMultipleGetEnum(int sentMessages, int browserCount) throws JMSException
+ /**
+ * This method checks that multiple calls to getEnumeration() on a queueBrowser provide the same behaviour.
+ *
+ * @param sentMessages The number of messages sent
+ * @param browserEnumerationCount The number of times to call getEnumeration()
+ * @throws JMSException
+ */
+ protected void checkMultipleGetEnum(int sentMessages, int browserEnumerationCount) throws JMSException
{
QueueBrowser queueBrowser = _clientSession.createBrowser(_queue);
- for (int count = 0; count < browserCount; count++)
+ for (int count = 0; count < browserEnumerationCount; count++)
{
+ _logger.info("Checking getEnumeration:" + count);
Enumeration msgs = queueBrowser.getEnumeration();
int msgCount = 0;
@@ -223,7 +238,9 @@
msgs.nextElement();
msgCount++;
}
- assertEquals(msgCount, sentMessages);
+
+ // Verify that the browser can see all the messages sent.
+ assertEquals(sentMessages, msgCount);
}
try
@@ -236,22 +253,22 @@
}
}
- protected void checkOverlappingMultipleGetEnum(int browserCount, int expectedMessages) throws JMSException
+ protected void checkOverlappingMultipleGetEnum(int expectedMessages, int browserEnumerationCount) throws JMSException
{
- checkOverlappingMultipleGetEnum(browserCount, expectedMessages, null);
+ checkOverlappingMultipleGetEnum(expectedMessages, browserEnumerationCount, null);
}
- protected void checkOverlappingMultipleGetEnum(int browserCount, int expectedMessages, String selector) throws JMSException
+ protected void checkOverlappingMultipleGetEnum(int expectedMessages, int browserEnumerationCount, String selector) throws JMSException
{
QueueBrowser queueBrowser = selector == null ?
_clientSession.createBrowser(_queue, selector) :
_clientSession.createBrowser(_queue);
- Enumeration[] msgs = new Enumeration[browserCount];
- int[] msgCount = new int[browserCount];
+ Enumeration[] msgs = new Enumeration[browserEnumerationCount];
+ int[] msgCount = new int[browserEnumerationCount];
//create Enums
- for (int count = 0; count < browserCount; count++)
+ for (int count = 0; count < browserEnumerationCount; count++)
{
msgs[count] = queueBrowser.getEnumeration();
}
@@ -259,7 +276,7 @@
//interleave reads
for (int cnt = 0; cnt < expectedMessages; cnt++)
{
- for (int count = 0; count < browserCount; count++)
+ for (int count = 0; count < browserEnumerationCount; count++)
{
if (msgs[count].hasMoreElements())
{
@@ -270,7 +287,7 @@
}
//validate all browsers get right message count.
- for (int count = 0; count < browserCount; count++)
+ for (int count = 0; count < browserEnumerationCount; count++)
{
assertEquals(msgCount[count], expectedMessages);
}
@@ -327,12 +344,12 @@
checkQueueDepth(0);
}
- protected void checkQueueDepthWithSelectors(int clients, int totalMessages) throws JMSException
+ protected void checkQueueDepthWithSelectors(int totalMessages, int clients) throws JMSException
{
String selector = MESSAGE_ID_PROPERTY + " % " + clients;
- checkOverlappingMultipleGetEnum(clients, totalMessages / clients, selector);
+ checkOverlappingMultipleGetEnum(totalMessages / clients, clients, selector);
}
@@ -377,9 +394,14 @@
}
+ /**
+ * This tests that multiple getEnumerations on a QueueBrowser return the required number of messages.
+ * @throws NamingException
+ * @throws JMSException
+ */
public void testMultipleGetEnum() throws NamingException, JMSException
{
- int messages = 100;
+ int messages = 10;
sendMessages(messages);
@@ -398,7 +420,7 @@
checkQueueDepth(messages);
- checkOverlappingMultipleGetEnum(5, messages);
+ checkOverlappingMultipleGetEnum(messages, 5);
validate(messages);
}
@@ -414,20 +436,20 @@
for (int clients = 2; clients <= 10; clients++)
{
- checkQueueDepthWithSelectors(clients, messages);
+ checkQueueDepthWithSelectors(messages, clients);
}
validate(messages);
}
/**
- * Testing that a QueueBrowser doesn't actually consume messages from a broker when it fails over.
+ * Testing that a QueueBrowser doesn't actually consume messages from a broker when it fails over.
* @throws JMSException
*/
public void testFailoverWithQueueBrowser() throws JMSException
{
int messages = 5;
-
+
sendMessages("connection1", messages);
sendMessages("connection2", messages);
@@ -504,5 +526,5 @@
//Validate all messages still on Broker 1
validate(messages);
}
-
+
}