| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | #include "TrackerWatcherCommand.h"#include "TorrentConsoleDownloadEngine.h"#include "MetaFileUtil.h"#include "Exception.h"#include "prefs.h"#include "HttpInitiateConnectionCommand.h"#include "ByteArrayDiskWriter.h"#include "DefaultBtContext.h"#include "DefaultBtAnnounce.h"#include "DefaultPieceStorage.h"#include "DefaultPeerStorage.h"#include "BtRegistry.h"#include "RequestFactory.h"#include "CUIDCounter.h"#include <cppunit/extensions/HelperMacros.h>using namespace std;class TrackerWatcherCommandTest:public CppUnit::TestFixture {  CPPUNIT_TEST_SUITE(TrackerWatcherCommandTest);  CPPUNIT_TEST(testCreateCommand);  CPPUNIT_TEST_SUITE_END();private:  Option* op;public:  TrackerWatcherCommandTest():op(new Option())  {    op->put(PREF_TRACKER_MAX_TRIES, "10");    RequestFactoryHandle requestFactory = new RequestFactory();    requestFactory->setOption(op);    RequestFactorySingletonHolder::instance(requestFactory);  }  void setUp()   {    CUIDCounterHandle counter = new CUIDCounter();    CUIDCounterSingletonHolder::instance(counter);  }  void testCreateCommand();};CPPUNIT_TEST_SUITE_REGISTRATION( TrackerWatcherCommandTest );void TrackerWatcherCommandTest::testCreateCommand() {  try {        BtContextHandle btContext(new DefaultBtContext());    btContext->load("test.torrent");        BtRuntimeHandle btRuntime;    BtRegistry::registerBtRuntime(btContext->getInfoHashAsString(), btRuntime);        PieceStorageHandle pieceStorage(new DefaultPieceStorage(btContext, op));    BtRegistry::registerPieceStorage(btContext->getInfoHashAsString(),				     pieceStorage);    PeerStorageHandle peerStorage(new DefaultPeerStorage(btContext, op));    BtRegistry::registerPeerStorage(btContext->getInfoHashAsString(),				    peerStorage);    BtAnnounceHandle btAnnounce(new DefaultBtAnnounce(btContext, op));    BtRegistry::registerBtAnnounce(btContext->getInfoHashAsString(), btAnnounce);    TorrentConsoleDownloadEngine* te = new TorrentConsoleDownloadEngine();    te->option = op;    te->_requestGroupMan = new RequestGroupMan();    TrackerWatcherCommand command(1, te, btContext);    CPPUNIT_ASSERT(dynamic_cast<HttpInitiateConnectionCommand*>(command.createCommand()));    //cerr << btAnnounce->getAnnounceUrl() << endl;        btAnnounce->announceSuccess();    btAnnounce->resetAnnounce();    te->_requestGroupMan = new RequestGroupMan();        btRuntime->setHalt(true);        CPPUNIT_ASSERT(dynamic_cast<HttpInitiateConnectionCommand*>(command.createCommand()));    //cerr << btAnnounce->getAnnounceUrl() << endl;        btAnnounce->announceSuccess();    btAnnounce->resetAnnounce();    te->_requestGroupMan = new RequestGroupMan();        CPPUNIT_ASSERT(btAnnounce->noMoreAnnounce());      } catch(Exception* e) {    cerr << e->getMsg() << endl;    delete e;  }}
 |