|
@@ -1,7 +1,7 @@
|
|
|
#include "AnnounceList.h"
|
|
|
#include "MetaFileUtil.h"
|
|
|
#include "Exception.h"
|
|
|
-#include "Dictionary.h"
|
|
|
+#include "List.h"
|
|
|
#include <cppunit/extensions/HelperMacros.h>
|
|
|
|
|
|
namespace aria2 {
|
|
@@ -43,11 +43,12 @@ CPPUNIT_TEST_SUITE_REGISTRATION( AnnounceListTest );
|
|
|
|
|
|
void AnnounceListTest::testSingleElementList() {
|
|
|
std::string peersString = "ll8:tracker1el8:tracker2el8:tracker3ee";
|
|
|
- Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString);
|
|
|
+ SharedHandle<List> announces
|
|
|
+ (dynamic_cast<List*>(MetaFileUtil::bdecoding(peersString)));
|
|
|
|
|
|
// ANNOUNCE_LIST
|
|
|
// [ [ tracker1 ], [ tracker2 ], [ tracker3 ] ]
|
|
|
- AnnounceList announceList(announces);
|
|
|
+ AnnounceList announceList(announces.get());
|
|
|
|
|
|
CPPUNIT_ASSERT(!announceList.allTiersFailed());
|
|
|
std::string url = announceList.getAnnounce();
|
|
@@ -89,10 +90,12 @@ void AnnounceListTest::testSingleElementList() {
|
|
|
|
|
|
void AnnounceListTest::testMultiElementList() {
|
|
|
std::string peersString = "ll8:tracker18:tracker28:tracker3ee";
|
|
|
- Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString);
|
|
|
+ SharedHandle<List> announces
|
|
|
+ (dynamic_cast<List*>(MetaFileUtil::bdecoding(peersString)));
|
|
|
+
|
|
|
// ANNOUNCE_LIST
|
|
|
// [ [ tracker1, tracker2, tracker3 ] ]
|
|
|
- AnnounceList announceList(announces);
|
|
|
+ AnnounceList announceList(announces.get());
|
|
|
|
|
|
CPPUNIT_ASSERT(!announceList.allTiersFailed());
|
|
|
std::string url = announceList.getAnnounce();
|
|
@@ -121,11 +124,12 @@ void AnnounceListTest::testMultiElementList() {
|
|
|
|
|
|
void AnnounceListTest::testSingleAndMulti() {
|
|
|
std::string peersString = "ll8:tracker18:tracker2el8:tracker3ee";
|
|
|
- Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString);
|
|
|
+ SharedHandle<List> announces
|
|
|
+ (dynamic_cast<List*>(MetaFileUtil::bdecoding(peersString)));
|
|
|
|
|
|
// ANNOUNCE_LIST
|
|
|
// [ [ tracker1, tracker2 ], [ tracker3 ] ]
|
|
|
- AnnounceList announceList(announces);
|
|
|
+ AnnounceList announceList(announces.get());
|
|
|
|
|
|
std::string url = announceList.getAnnounce();
|
|
|
CPPUNIT_ASSERT_EQUAL(std::string("tracker1"), url);
|
|
@@ -147,20 +151,22 @@ void AnnounceListTest::testSingleAndMulti() {
|
|
|
|
|
|
void AnnounceListTest::testNoGroup() {
|
|
|
std::string peersString = "llee";
|
|
|
- Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString);
|
|
|
+ SharedHandle<List> announces
|
|
|
+ (dynamic_cast<List*>(MetaFileUtil::bdecoding(peersString)));
|
|
|
|
|
|
- AnnounceList announceList(announces);
|
|
|
+ AnnounceList announceList(announces.get());
|
|
|
|
|
|
CPPUNIT_ASSERT(announceList.countTier() == 0);
|
|
|
}
|
|
|
|
|
|
void AnnounceListTest::testNextEventIfAfterStarted() {
|
|
|
std::string peersString = "ll8:tracker1ee";
|
|
|
- Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString);
|
|
|
+ SharedHandle<List> announces
|
|
|
+ (dynamic_cast<List*>(MetaFileUtil::bdecoding(peersString)));
|
|
|
|
|
|
// ANNOUNCE_LIST
|
|
|
// [ [ tracker1 ] ]
|
|
|
- AnnounceList announceList(announces);
|
|
|
+ AnnounceList announceList(announces.get());
|
|
|
announceList.setEvent(AnnounceTier::STOPPED);
|
|
|
announceList.announceFailure();
|
|
|
announceList.resetTier();
|
|
@@ -176,11 +182,12 @@ void AnnounceListTest::testNextEventIfAfterStarted() {
|
|
|
|
|
|
void AnnounceListTest::testEvent() {
|
|
|
std::string peersString = "ll8:tracker1el8:tracker2el8:tracker3ee";
|
|
|
- Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString);
|
|
|
+ SharedHandle<List> announces
|
|
|
+ (dynamic_cast<List*>(MetaFileUtil::bdecoding(peersString)));
|
|
|
|
|
|
// ANNOUNCE_LIST
|
|
|
// [ [ tracker1 ], [ tracker2 ], [ tracker3 ] ]
|
|
|
- AnnounceList announceList(announces);
|
|
|
+ AnnounceList announceList(announces.get());
|
|
|
|
|
|
announceList.setEvent(AnnounceTier::STOPPED);
|
|
|
announceList.announceSuccess();
|
|
@@ -200,11 +207,12 @@ void AnnounceListTest::testEvent() {
|
|
|
|
|
|
void AnnounceListTest::testCountStoppedAllowedTier() {
|
|
|
std::string peersString = "ll8:tracker1el8:tracker2el8:tracker3ee";
|
|
|
- Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString);
|
|
|
+ SharedHandle<List> announces
|
|
|
+ (dynamic_cast<List*>(MetaFileUtil::bdecoding(peersString)));
|
|
|
|
|
|
// ANNOUNCE_LIST
|
|
|
// [ [ tracker1 ], [ tracker2 ], [ tracker3 ] ]
|
|
|
- AnnounceList announceList(announces);
|
|
|
+ AnnounceList announceList(announces.get());
|
|
|
|
|
|
CPPUNIT_ASSERT_EQUAL((size_t)0, announceList.countStoppedAllowedTier());
|
|
|
announceList.setEvent(AnnounceTier::STARTED);
|
|
@@ -227,11 +235,12 @@ void AnnounceListTest::testCountStoppedAllowedTier() {
|
|
|
|
|
|
void AnnounceListTest::testCountCompletedAllowedTier() {
|
|
|
std::string peersString = "ll8:tracker1el8:tracker2el8:tracker3ee";
|
|
|
- Dictionary* announces = (Dictionary*)MetaFileUtil::bdecoding(peersString);
|
|
|
+ SharedHandle<List> announces
|
|
|
+ (dynamic_cast<List*>(MetaFileUtil::bdecoding(peersString)));
|
|
|
|
|
|
// ANNOUNCE_LIST
|
|
|
// [ [ tracker1 ], [ tracker2 ], [ tracker3 ] ]
|
|
|
- AnnounceList announceList(announces);
|
|
|
+ AnnounceList announceList(announces.get());
|
|
|
|
|
|
CPPUNIT_ASSERT_EQUAL((size_t)0, announceList.countCompletedAllowedTier());
|
|
|
announceList.setEvent(AnnounceTier::STARTED);
|