| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #include "DefaultPieceStorage.h"
- #include "DefaultBtContext.h"
- #include "Util.h"
- #include "Exception.h"
- #include <cppunit/extensions/HelperMacros.h>
- using namespace std;
- class DefaultPieceStorageTest:public CppUnit::TestFixture {
- CPPUNIT_TEST_SUITE(DefaultPieceStorageTest);
- CPPUNIT_TEST(testGetTotalLength);
- CPPUNIT_TEST(testGetMissingPiece);
- CPPUNIT_TEST(testGetMissingFastPiece);
- CPPUNIT_TEST(testHasMissingPiece);
- CPPUNIT_TEST(testCompletePiece);
- CPPUNIT_TEST_SUITE_END();
- private:
- BtContextHandle btContext;
- PeerHandle peer;
- Option* option;
- public:
- DefaultPieceStorageTest():btContext(0) {}
- void setUp() {
- btContext = BtContextHandle(new DefaultBtContext());
- btContext->load("test.torrent");
- peer = PeerHandle(new Peer("192.168.0.1", 6889,
- btContext->getPieceLength(),
- btContext->getTotalLength()));
- option = new Option();
- }
- void testGetTotalLength();
- void testGetMissingPiece();
- void testGetMissingFastPiece();
- void testHasMissingPiece();
- void testCompletePiece();
- };
- CPPUNIT_TEST_SUITE_REGISTRATION(DefaultPieceStorageTest);
- void DefaultPieceStorageTest::testGetTotalLength() {
- DefaultPieceStorage pss(btContext, option);
- CPPUNIT_ASSERT_EQUAL((long long int)384,
- pss.getTotalLength());
- }
- void DefaultPieceStorageTest::testGetMissingPiece() {
- DefaultPieceStorage pss(btContext, option);
- pss.setEndGamePieceNum(0);
- peer->setAllBitfield();
- Piece piece = pss.getMissingPiece(peer);
- CPPUNIT_ASSERT_EQUAL(string("piece: index=0, length=128"),
- piece.toString());
- piece = pss.getMissingPiece(peer);
- CPPUNIT_ASSERT_EQUAL(string("piece: index=1, length=128"),
- piece.toString());
- piece = pss.getMissingPiece(peer);
- CPPUNIT_ASSERT_EQUAL(string("piece: index=2, length=128"),
- piece.toString());
- piece = pss.getMissingPiece(peer);
- CPPUNIT_ASSERT(Piece::isNull(piece));
- }
- void DefaultPieceStorageTest::testGetMissingFastPiece() {
- DefaultPieceStorage pss(btContext, option);
- pss.setEndGamePieceNum(0);
- peer->setAllBitfield();
- peer->setFastExtensionEnabled(true);
- peer->addFastSetIndex(2);
- Piece piece = pss.getMissingFastPiece(peer);
- CPPUNIT_ASSERT_EQUAL(string("piece: index=2, length=128"),
- piece.toString());
- }
- void DefaultPieceStorageTest::testHasMissingPiece() {
- DefaultPieceStorage pss(btContext, option);
- CPPUNIT_ASSERT(!pss.hasMissingPiece(peer));
-
- peer->setAllBitfield();
- CPPUNIT_ASSERT(pss.hasMissingPiece(peer));
- }
- void DefaultPieceStorageTest::testCompletePiece() {
- DefaultPieceStorage pss(btContext, option);
- pss.setEndGamePieceNum(0);
- peer->setAllBitfield();
- Piece piece = pss.getMissingPiece(peer);
- CPPUNIT_ASSERT_EQUAL(string("piece: index=0, length=128"),
- piece.toString());
- CPPUNIT_ASSERT_EQUAL((long long int)0,
- pss.getCompletedLength());
- pss.completePiece(piece);
- CPPUNIT_ASSERT_EQUAL((long long int)128,
- pss.getCompletedLength());
- }
|