qpid-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From g...@apache.org
Subject svn commit: r711328 - in /incubator/qpid/trunk/qpid/cpp/src/tests: Makefile.am MessageReplayTracker.cpp
Date Tue, 04 Nov 2008 17:43:05 GMT
Author: gsim
Date: Tue Nov  4 09:43:05 2008
New Revision: 711328

URL: http://svn.apache.org/viewvc?rev=711328&view=rev
Log:
Added unit test for replay utility class.


Added:
    incubator/qpid/trunk/qpid/cpp/src/tests/MessageReplayTracker.cpp   (with props)
Modified:
    incubator/qpid/trunk/qpid/cpp/src/tests/Makefile.am

Modified: incubator/qpid/trunk/qpid/cpp/src/tests/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/tests/Makefile.am?rev=711328&r1=711327&r2=711328&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/tests/Makefile.am (original)
+++ incubator/qpid/trunk/qpid/cpp/src/tests/Makefile.am Tue Nov  4 09:43:05 2008
@@ -65,7 +65,8 @@
 	MessageBuilderTest.cpp \
 	ConnectionOptions.h \
 	ForkedBroker.h \
-	ManagementTest.cpp
+	ManagementTest.cpp \
+	MessageReplayTracker.cpp
 
 if HAVE_XML
 unit_test_SOURCES+= XmlClientSessionTest.cpp

Added: incubator/qpid/trunk/qpid/cpp/src/tests/MessageReplayTracker.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/tests/MessageReplayTracker.cpp?rev=711328&view=auto
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/tests/MessageReplayTracker.cpp (added)
+++ incubator/qpid/trunk/qpid/cpp/src/tests/MessageReplayTracker.cpp Tue Nov  4 09:43:05 2008
@@ -0,0 +1,79 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+#include "unit_test.h"
+#include "BrokerFixture.h"
+#include "qpid/client/MessageReplayTracker.h"
+#include "qpid/sys/Time.h"
+
+QPID_AUTO_TEST_SUITE(MessageReplayTracker)
+
+using namespace qpid::client;
+using namespace qpid::sys;
+using std::string;
+
+QPID_AUTO_TEST_CASE(testReplay)
+{
+    ProxySessionFixture fix;
+    fix.session.queueDeclare(arg::queue="my-queue", arg::exclusive=true, arg::autoDelete=true);
+
+    MessageReplayTracker tracker(10);
+    tracker.init(fix.session);
+    for (uint i = 0; i < 5; i++) {        
+        Message message((boost::format("Message_%1%") % (i+1)).str(), "my-queue");      
 
+        tracker.send(message);
+    }
+    tracker.replay(fix.session);
+    for (uint j = 0; j < 2; j++) {//each message should have been sent twice
+        for (uint i = 0; i < 5; i++) {        
+            Message m;
+            BOOST_CHECK(fix.subs.get(m, "my-queue", TIME_SEC));
+            BOOST_CHECK_EQUAL((boost::format("Message_%1%") % (i+1)).str(), m.getData());
+        }
+    }
+    Message m;
+    BOOST_CHECK(!fix.subs.get(m, "my-queue"));
+}
+
+QPID_AUTO_TEST_CASE(testCheckCompletion)
+{
+    ProxySessionFixture fix;
+    fix.session.queueDeclare(arg::queue="my-queue", arg::exclusive=true, arg::autoDelete=true);
+
+    MessageReplayTracker tracker(10);
+    tracker.init(fix.session);
+    for (uint i = 0; i < 5; i++) {        
+        Message message((boost::format("Message_%1%") % (i+1)).str(), "my-queue");      
 
+        tracker.send(message);
+    }
+    fix.session.sync();//ensures all messages are complete
+    tracker.checkCompletion();
+    tracker.replay(fix.session);
+    Message received;
+    for (uint i = 0; i < 5; i++) {        
+        BOOST_CHECK(fix.subs.get(received, "my-queue"));
+        BOOST_CHECK_EQUAL((boost::format("Message_%1%") % (i+1)).str(), received.getData());
+    }
+    BOOST_CHECK(!fix.subs.get(received, "my-queue"));
+}
+
+QPID_AUTO_TEST_SUITE_END()
+
+

Propchange: incubator/qpid/trunk/qpid/cpp/src/tests/MessageReplayTracker.cpp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/qpid/trunk/qpid/cpp/src/tests/MessageReplayTracker.cpp
------------------------------------------------------------------------------
    svn:keywords = Rev Date



Mime
View raw message