Return-Path: Delivered-To: apmail-incubator-qpid-commits-archive@locus.apache.org Received: (qmail 42613 invoked from network); 4 Nov 2008 17:43:39 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 4 Nov 2008 17:43:39 -0000 Received: (qmail 89912 invoked by uid 500); 4 Nov 2008 17:43:45 -0000 Delivered-To: apmail-incubator-qpid-commits-archive@incubator.apache.org Received: (qmail 89891 invoked by uid 500); 4 Nov 2008 17:43:45 -0000 Mailing-List: contact qpid-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: qpid-dev@incubator.apache.org Delivered-To: mailing list qpid-commits@incubator.apache.org Received: (qmail 89872 invoked by uid 99); 4 Nov 2008 17:43:45 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Nov 2008 09:43:45 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Nov 2008 17:42:24 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 1F68D2388878; Tue, 4 Nov 2008 09:43:06 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r711328 - in /incubator/qpid/trunk/qpid/cpp/src/tests: Makefile.am MessageReplayTracker.cpp Date: Tue, 04 Nov 2008 17:43:05 -0000 To: qpid-commits@incubator.apache.org From: gsim@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20081104174306.1F68D2388878@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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