ShareRatioSeedCriteriaTest.cc 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include "ShareRatioSeedCriteria.h"
  2. #include <cppunit/extensions/HelperMacros.h>
  3. #include "MockBtContext.h"
  4. #include "MockPeerStorage.h"
  5. #include "MockPieceStorage.h"
  6. #include "FileEntry.h"
  7. namespace aria2 {
  8. class ShareRatioSeedCriteriaTest:public CppUnit::TestFixture {
  9. CPPUNIT_TEST_SUITE(ShareRatioSeedCriteriaTest);
  10. CPPUNIT_TEST(testEvaluate);
  11. CPPUNIT_TEST_SUITE_END();
  12. public:
  13. void testEvaluate();
  14. };
  15. CPPUNIT_TEST_SUITE_REGISTRATION(ShareRatioSeedCriteriaTest);
  16. void ShareRatioSeedCriteriaTest::testEvaluate() {
  17. std::string infoHash = "01234567890123456789";
  18. std::string infoHashString =
  19. Util::toHex((const unsigned char*)infoHash.c_str(), infoHash.size());
  20. SharedHandle<MockBtContext> btContext(new MockBtContext());
  21. btContext->setTotalLength(1000000);
  22. btContext->setInfoHash((const unsigned char*)infoHash.c_str());
  23. SharedHandle<MockPeerStorage> peerStorage(new MockPeerStorage());
  24. TransferStat stat;
  25. stat.setAllTimeUploadLength(1000000);
  26. peerStorage->setStat(stat);
  27. SharedHandle<MockPieceStorage> pieceStorage(new MockPieceStorage());
  28. pieceStorage->setCompletedLength(1000000);
  29. ShareRatioSeedCriteria cri(1.0, btContext);
  30. cri.setPeerStorage(peerStorage);
  31. cri.setPieceStorage(pieceStorage);
  32. CPPUNIT_ASSERT(cri.evaluate());
  33. cri.setRatio(2.0);
  34. CPPUNIT_ASSERT(!cri.evaluate());
  35. // check div by zero
  36. btContext->setTotalLength(0);
  37. CPPUNIT_ASSERT(!cri.evaluate());
  38. }
  39. } // namespace aria2