MultiTrackerRequestSessionTest.cpp

Go to the documentation of this file.
00001 /*
00002 
00003 Copyright (C) 2006-2007 by Peter Dimov.
00004 
00005 This file is part of Calitko (http://www.calitko.org).
00006 
00007 Calitko is free software; you can redistribute it and/or modify
00008 it under the terms of the GNU General Public License as published by
00009 the Free Software Foundation; either version 2 of the License, or
00010 (at your option) any later version.
00011 
00012 Calitko is distributed in the hope that it will be useful,
00013 but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015 GNU General Public License for more details.
00016 
00017 You should have received a copy of the GNU General Public License
00018 along with Calitko; if not, write to the Free Software
00019 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00020 
00021 */
00022 
00023 #include "Qt.h"
00024 #include "../MultiTrackerRequestSession.h"
00025 #include "../TrackerResponseParser.h"
00026 #include "generated/HttpRequestSessionMock.h"
00027 #include "generated/MultiTrackerRequestSessionDriver.h"
00028 #include "generated/TrackerRequestSessionMock.h"
00029 #include "Imports.cpp"
00030 
00031 namespace Protocols {
00032 namespace BitTorrent {
00033 namespace Trackers {
00034 namespace Testing {
00035 
00037 
00041 class MultiTrackerRequestSessionTest : public CppUnit::TestFixture
00042 {
00043     CPPUNIT_TEST_SUITE (MultiTrackerRequestSessionTest);
00044     CPPUNIT_TEST_SUITE_END();
00045 
00046     auto_ptr <HttpRequestSessionMock>                   httpRequestSession;
00047     auto_ptr <TrackerRequestSessionStatusMock>          sessionStatus;
00048     auto_ptr <MultiTrackerRequestSession>               sessionReal;
00049     auto_ptr <MultiTrackerRequestSessionDriver>         session;
00050 
00051     Torrent::AnnounceList                               ValidAnnounceList;
00052 
00053 public:
00054     MultiTrackerRequestSessionTest();
00055 
00056     void setUp()
00057     {
00058         httpRequestSession.reset (new HttpRequestSessionMock());
00059         sessionStatus.reset (new TrackerRequestSessionStatusMock());
00060         sessionReal.reset (new MultiTrackerRequestSession (
00061             &httpRequestSession->imp, ValidAnnounceList, &sessionStatus->imp));
00062         session.reset (new MultiTrackerRequestSessionDriver (
00063             *sessionReal.get()));
00064     }
00065 
00066     void tearDown()
00067     {
00068         session.reset();
00069         sessionReal.reset();
00070         sessionStatus.reset();
00071         httpRequestSession.reset();
00072     }
00073 };
00074 
00075 CPPUNIT_TEST_SUITE_REGISTRATION(MultiTrackerRequestSessionTest);
00076 
00078 MultiTrackerRequestSessionTest::MultiTrackerRequestSessionTest()
00079     : httpRequestSession(),
00080       sessionStatus(),
00081       sessionReal(),
00082       session(),
00083       ValidAnnounceList()
00084 {
00085     QList <Uri> firstTier;
00086     firstTier += Uri::fromUnencoded ("http://tracker11.com/announce.php");
00087     firstTier += Uri::fromUnencoded ("http://tracker12.com/announce.php");
00088     firstTier += Uri::fromUnencoded ("http://tracker13.com/announce.php");
00089     ValidAnnounceList += firstTier;
00090 
00091     QList <Uri> secondTier;
00092     secondTier += Uri::fromUnencoded ("http://tracker21.com/announce.php");
00093     secondTier += Uri::fromUnencoded ("http://tracker22.com/announce.php");
00094     secondTier += Uri::fromUnencoded ("http://tracker23.com/announce.php");
00095     ValidAnnounceList += secondTier;
00096 }
00097 
00098 } // namespace Testing
00099 } // namespace Trackers
00100 } // namespace BitTorrent
00101 } // namespace Protocols