You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2015/07/28 22:56:19 UTC
[3/4] activemq-cpp git commit:
https://issues.apache.org/jira/browse/AMQCPP-580
https://issues.apache.org/jira/browse/AMQCPP-552
https://issues.apache.org/jira/browse/AMQCPP-580
https://issues.apache.org/jira/browse/AMQCPP-552
Add more tests for these scenarios
Project: http://git-wip-us.apache.org/repos/asf/activemq-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-cpp/commit/9a4abd61
Tree: http://git-wip-us.apache.org/repos/asf/activemq-cpp/tree/9a4abd61
Diff: http://git-wip-us.apache.org/repos/asf/activemq-cpp/diff/9a4abd61
Branch: refs/heads/master
Commit: 9a4abd619a73c1b1b4e9826c7981e8932b1bbb8d
Parents: e04676c
Author: Timothy Bish <ta...@gmail.com>
Authored: Tue Jul 28 16:51:45 2015 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Tue Jul 28 16:51:45 2015 -0400
----------------------------------------------------------------------
.../openwire/OpenWireRedeliveryPolicyTest.cpp | 38 +++++++++++++-------
.../openwire/OpenWireRedeliveryPolicyTest.h | 11 +++---
2 files changed, 31 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-cpp/blob/9a4abd61/activemq-cpp/src/test-integration/activemq/test/openwire/OpenWireRedeliveryPolicyTest.cpp
----------------------------------------------------------------------
diff --git a/activemq-cpp/src/test-integration/activemq/test/openwire/OpenWireRedeliveryPolicyTest.cpp b/activemq-cpp/src/test-integration/activemq/test/openwire/OpenWireRedeliveryPolicyTest.cpp
index ba3a265..ff9fcda 100644
--- a/activemq-cpp/src/test-integration/activemq/test/openwire/OpenWireRedeliveryPolicyTest.cpp
+++ b/activemq-cpp/src/test-integration/activemq/test/openwire/OpenWireRedeliveryPolicyTest.cpp
@@ -82,6 +82,20 @@ void OpenWireRedeliveryPolicyTest::testGetNext() {
}
////////////////////////////////////////////////////////////////////////////////
+void OpenWireRedeliveryPolicyTest::testGetNextWithInitialDelay() {
+
+ DefaultRedeliveryPolicy policy;
+ policy.setInitialRedeliveryDelay(500);
+
+ long long delay = policy.getNextRedeliveryDelay(500);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Incorrect delay for cycle 1", 1000LL, delay);
+ delay = policy.getNextRedeliveryDelay(delay);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Incorrect delay for cycle 2", 1000LL, delay);
+ delay = policy.getNextRedeliveryDelay(delay);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Incorrect delay for cycle 3", 1000LL, delay);
+}
+
+////////////////////////////////////////////////////////////////////////////////
void OpenWireRedeliveryPolicyTest::testExponentialRedeliveryPolicyDelaysDeliveryOnRollback() {
Pointer<ActiveMQConnectionFactory> connectionFactory(
@@ -223,7 +237,8 @@ void OpenWireRedeliveryPolicyTest::testDLQHandling() {
Pointer<MessageProducer> producer(session->createProducer(destination.get()));
Pointer<MessageConsumer> consumer(session->createConsumer(destination.get()));
Pointer<Queue> dlq(session->createQueue("ActiveMQ.DLQ"));
- Pointer<MessageConsumer> dlqConsumer(session->createConsumer(destination.get()));
+ amqConnection->destroyDestination(dlq.get());
+ Pointer<MessageConsumer> dlqConsumer(session->createConsumer(dlq.get()));
// Send the messages
Pointer<TextMessage> message1(session->createTextMessage("1st"));
@@ -362,7 +377,7 @@ void OpenWireRedeliveryPolicyTest::testMaximumRedeliveryDelay() {
policy->setUseExponentialBackOff(true);
policy->setMaximumRedeliveries(-1);
policy->setRedeliveryDelay(50);
- // TODO - policy->setMaximumRedeliveryDelay(1000);
+ policy->setMaximumRedeliveryDelay(1000);
policy->setBackOffMultiplier((short) 2);
policy->setUseExponentialBackOff(true);
@@ -403,8 +418,8 @@ void OpenWireRedeliveryPolicyTest::testMaximumRedeliveryDelay() {
CPPUNIT_ASSERT_EQUAL(std::string("2nd"), textMessage->getText());
session->commit();
- CPPUNIT_ASSERT_MESSAGE("Max delay should be 1 second.",
- policy->getNextRedeliveryDelay(Long::MAX_VALUE) == 1000);
+ long long result = policy->getNextRedeliveryDelay(Integer::MAX_VALUE);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Max delay should be 1 second.", 1000LL, result);
}
////////////////////////////////////////////////////////////////////////////////
@@ -473,8 +488,8 @@ void OpenWireRedeliveryPolicyTest::testRepeatedRedeliveryReceiveNoCommit() {
producer->send(message1.get());
const int MAX_REDELIVERIES = 4;
- for (int i = 0; i <= MAX_REDELIVERIES + 1; i++) {
+ for (int i = 0; i <= MAX_REDELIVERIES + 1; i++) {
Pointer<Connection> loopConnection(connectionFactory->createConnection());
Pointer<ActiveMQConnection> amqConnection = loopConnection.dynamicCast<ActiveMQConnection>();
@@ -489,15 +504,16 @@ void OpenWireRedeliveryPolicyTest::testRepeatedRedeliveryReceiveNoCommit() {
Pointer<MessageConsumer> consumer(session->createConsumer(destination.get()));
Pointer<cms::Message> received(consumer->receive(1000));
- Pointer<ActiveMQTextMessage> textMessage = received.dynamicCast<ActiveMQTextMessage>();
if (i <= MAX_REDELIVERIES) {
+ Pointer<ActiveMQTextMessage> textMessage = received.dynamicCast<ActiveMQTextMessage>();
CPPUNIT_ASSERT_MESSAGE("Failed to get first delivery", textMessage != NULL);
CPPUNIT_ASSERT_EQUAL(std::string("1st"), textMessage->getText());
CPPUNIT_ASSERT_EQUAL(i, textMessage->getRedeliveryCounter());
} else {
- CPPUNIT_ASSERT_MESSAGE("null on exceeding redelivery count", textMessage == NULL);
+ CPPUNIT_ASSERT_MESSAGE("null on exceeding redelivery count", received == NULL);
}
+
loopConnection->close();
}
@@ -512,10 +528,8 @@ void OpenWireRedeliveryPolicyTest::testRepeatedRedeliveryReceiveNoCommit() {
CPPUNIT_ASSERT_MESSAGE("cause exception has no policy ref",
cause.find("RedeliveryPolicy") != std::string::npos);
} else {
- //CPPUNIT_FAIL("Message did not have a rollback cause");
+ CPPUNIT_FAIL("Message did not have a rollback cause");
}
-
- dlqSession->commit();
}
////////////////////////////////////////////////////////////////////////////////
@@ -615,10 +629,8 @@ void OpenWireRedeliveryPolicyTest::testRepeatedRedeliveryOnMessageNoCommit() {
CPPUNIT_ASSERT_MESSAGE("cause exception has no policy ref",
cause.find("RedeliveryPolicy") != std::string::npos);
} else {
- //CPPUNIT_FAIL("Message did not have a rollback cause");
+ CPPUNIT_FAIL("Message did not have a rollback cause");
}
-
- dlqSession->commit();
}
////////////////////////////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/activemq-cpp/blob/9a4abd61/activemq-cpp/src/test-integration/activemq/test/openwire/OpenWireRedeliveryPolicyTest.h
----------------------------------------------------------------------
diff --git a/activemq-cpp/src/test-integration/activemq/test/openwire/OpenWireRedeliveryPolicyTest.h b/activemq-cpp/src/test-integration/activemq/test/openwire/OpenWireRedeliveryPolicyTest.h
index 207adc8..e85197a 100644
--- a/activemq-cpp/src/test-integration/activemq/test/openwire/OpenWireRedeliveryPolicyTest.h
+++ b/activemq-cpp/src/test-integration/activemq/test/openwire/OpenWireRedeliveryPolicyTest.h
@@ -29,18 +29,18 @@ namespace openwire {
CPPUNIT_TEST_SUITE( OpenWireRedeliveryPolicyTest );
CPPUNIT_TEST( testGetNext );
+ CPPUNIT_TEST( testGetNextWithInitialDelay );
CPPUNIT_TEST( testExponentialRedeliveryPolicyDelaysDeliveryOnRollback );
CPPUNIT_TEST( testNornalRedeliveryPolicyDelaysDeliveryOnRollback );
- // TODO CPPUNIT_TEST( testDLQHandling );
+ CPPUNIT_TEST( testDLQHandling );
CPPUNIT_TEST( testInfiniteMaximumNumberOfRedeliveries );
CPPUNIT_TEST( testZeroMaximumNumberOfRedeliveries );
- // TODO CPPUNIT_TEST( testRepeatedRedeliveryReceiveNoCommit );
- // TODO CPPUNIT_TEST( testRepeatedRedeliveryOnMessageNoCommit );
+ CPPUNIT_TEST( testRepeatedRedeliveryReceiveNoCommit );
+ CPPUNIT_TEST( testRepeatedRedeliveryOnMessageNoCommit );
CPPUNIT_TEST( testInitialRedeliveryDelayZero );
CPPUNIT_TEST( testInitialRedeliveryDelayOne );
CPPUNIT_TEST( testRedeliveryDelayOne );
- // TODO - We don't currently support this property.
- // CPPUNIT_TEST( testMaximumRedeliveryDelay );
+ CPPUNIT_TEST( testMaximumRedeliveryDelay );
CPPUNIT_TEST_SUITE_END();
public:
@@ -54,6 +54,7 @@ namespace openwire {
virtual std::string getBrokerURL() const;
void testGetNext();
+ void testGetNextWithInitialDelay();
void testExponentialRedeliveryPolicyDelaysDeliveryOnRollback();
void testNornalRedeliveryPolicyDelaysDeliveryOnRollback();
void testDLQHandling();