You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by nm...@apache.org on 2008/02/09 19:06:00 UTC
svn commit: r620165 - in /activemq/activemq-cpp/trunk/src:
main/activemq/cmsutil/CmsTemplate.cpp
test/activemq/cmsutil/CmsTemplateTest.cpp
Author: nmittler
Date: Sat Feb 9 10:05:59 2008
New Revision: 620165
URL: http://svn.apache.org/viewvc?rev=620165&view=rev
Log:
AMQCPP-152 - Adding unit tests for CmsTemplate
Modified:
activemq/activemq-cpp/trunk/src/main/activemq/cmsutil/CmsTemplate.cpp
activemq/activemq-cpp/trunk/src/test/activemq/cmsutil/CmsTemplateTest.cpp
Modified: activemq/activemq-cpp/trunk/src/main/activemq/cmsutil/CmsTemplate.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/activemq/cmsutil/CmsTemplate.cpp?rev=620165&r1=620164&r2=620165&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/activemq/cmsutil/CmsTemplate.cpp (original)
+++ activemq/activemq-cpp/trunk/src/main/activemq/cmsutil/CmsTemplate.cpp Sat Feb 9 10:05:59 2008
@@ -233,9 +233,6 @@
// Set the default values on the producer.
producer->setDisableMessageID(!isMessageIdEnabled());
producer->setDisableMessageTimeStamp(!isMessageTimestampEnabled());
- producer->setTimeToLive(getTimeToLive());
- producer->setDeliveryMode(getDeliveryMode());
- producer->setPriority(getPriority());
return producer;
}
Modified: activemq/activemq-cpp/trunk/src/test/activemq/cmsutil/CmsTemplateTest.cpp
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/test/activemq/cmsutil/CmsTemplateTest.cpp?rev=620165&r1=620164&r2=620165&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/test/activemq/cmsutil/CmsTemplateTest.cpp (original)
+++ activemq/activemq-cpp/trunk/src/test/activemq/cmsutil/CmsTemplateTest.cpp Sat Feb 9 10:05:59 2008
@@ -78,26 +78,12 @@
try {
cmsTemplate->setPubSubDomain(false);
-
- // Set the pass-thru values that will be applied to the producer.
- cmsTemplate->setDeliveryMode(1);
- cmsTemplate->setTimeToLive(100);
- cmsTemplate->setPriority(5);
- cmsTemplate->setMessageTimestampEnabled(true);
- cmsTemplate->setMessageIdEnabled(true);
// Test basics.
MyProducerCallback callback;
cmsTemplate->execute(&callback);
CPPUNIT_ASSERT(callback.session != NULL);
CPPUNIT_ASSERT(callback.producer != NULL);
-
- // Check the pass-thru values from CmsTemplate
- CPPUNIT_ASSERT_EQUAL(1, callback.producer->getDeliveryMode());
- CPPUNIT_ASSERT_EQUAL(100LL, callback.producer->getTimeToLive());
- CPPUNIT_ASSERT_EQUAL(5, callback.producer->getPriority());
- CPPUNIT_ASSERT_EQUAL(false, callback.producer->getDisableMessageID());
- CPPUNIT_ASSERT_EQUAL(false, callback.producer->getDisableMessageTimeStamp());
// Try again and make sure we have the same producer
MyProducerCallback callback2;
@@ -118,25 +104,6 @@
cmsTemplate->execute(&callback4);
CPPUNIT_ASSERT(callback4.session == callback.session);
CPPUNIT_ASSERT(callback4.producer != callback3.producer);
-
- // Change the pass-thru values
- cmsTemplate->setDeliveryMode(0);
- cmsTemplate->setTimeToLive(1000);
- cmsTemplate->setPriority(7);
- cmsTemplate->setMessageTimestampEnabled(false);
- cmsTemplate->setMessageIdEnabled(false);
-
- // Now with the producer from the test 4, verify that the pass-thru
- // values are changed.
- MyProducerCallback callback5;
- cmsTemplate->execute(&callback5);
- CPPUNIT_ASSERT(callback5.session == callback.session);
- CPPUNIT_ASSERT(callback5.producer == callback4.producer);
- CPPUNIT_ASSERT_EQUAL(0, callback5.producer->getDeliveryMode());
- CPPUNIT_ASSERT_EQUAL(1000LL, callback5.producer->getTimeToLive());
- CPPUNIT_ASSERT_EQUAL(7, callback5.producer->getPriority());
- CPPUNIT_ASSERT_EQUAL(true, callback5.producer->getDisableMessageID());
- CPPUNIT_ASSERT_EQUAL(true, callback5.producer->getDisableMessageTimeStamp());
} catch( cms::CMSException& e) {
e.printStackTrace();
@@ -155,13 +122,44 @@
DummyMessageCreator msgCreator;
- cmsTemplate->send(&msgCreator);
-
+ // First, test basics.
+ cmsTemplate->send(&msgCreator);
const cms::Queue* q = dynamic_cast<const cms::Queue*>(listener.dest);
CPPUNIT_ASSERT(q != NULL);
CPPUNIT_ASSERT_EQUAL((std::string)"test", q->getQueueName());
+ CPPUNIT_ASSERT(listener.message != NULL);
CPPUNIT_ASSERT_EQUAL(4, listener.priority);
+ CPPUNIT_ASSERT_EQUAL(0LL, listener.ttl);
+ CPPUNIT_ASSERT_EQUAL(1, listener.deliveryMode);
+
+ // Now change the defaults and verify that they did not change
+ // the values (explicit qos not enabled). Also, change to using topics.
+ cmsTemplate->setPubSubDomain(true);
+ cmsTemplate->setPriority(5);
+ cmsTemplate->setDeliveryMode(cms::DeliveryMode::NON_PERSISTENT);
+ cmsTemplate->setTimeToLive(10LL);
+ cmsTemplate->setDefaultDestinationName("bob");
+ cmsTemplate->setDeliveryMode(0);
+ cmsTemplate->send(&msgCreator);
+ const cms::Topic* t = dynamic_cast<const cms::Topic*>(listener.dest);
+ CPPUNIT_ASSERT(t != NULL);
+ CPPUNIT_ASSERT_EQUAL((std::string)"bob", t->getTopicName());
+ CPPUNIT_ASSERT(listener.message != NULL);
CPPUNIT_ASSERT_EQUAL(4, listener.priority);
+ CPPUNIT_ASSERT_EQUAL(0LL, listener.ttl);
+ CPPUNIT_ASSERT_EQUAL(1, listener.deliveryMode);
+
+ // Now enable explicit quality of service and verify that the new default
+ // values are used.
+ cmsTemplate->setExplicitQosEnabled(true);
+ cmsTemplate->send(&msgCreator);
+ t = dynamic_cast<const cms::Topic*>(listener.dest);
+ CPPUNIT_ASSERT(t != NULL);
+ CPPUNIT_ASSERT_EQUAL((std::string)"bob", t->getTopicName());
+ CPPUNIT_ASSERT(listener.message != NULL);
+ CPPUNIT_ASSERT_EQUAL(5, listener.priority);
+ CPPUNIT_ASSERT_EQUAL(10LL, listener.ttl);
+ CPPUNIT_ASSERT_EQUAL(0, listener.deliveryMode);
} catch( cms::CMSException& e) {
e.printStackTrace();