DownloadContextTest.cc 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "DownloadContext.h"
  2. #include <cppunit/extensions/HelperMacros.h>
  3. #include "FileEntry.h"
  4. #include "MockDownloadContext.h"
  5. namespace aria2 {
  6. class DownloadContextTest:public CppUnit::TestFixture {
  7. CPPUNIT_TEST_SUITE(DownloadContextTest);
  8. CPPUNIT_TEST(testFindFileEntryByOffset);
  9. CPPUNIT_TEST_SUITE_END();
  10. public:
  11. void testFindFileEntryByOffset();
  12. };
  13. CPPUNIT_TEST_SUITE_REGISTRATION(DownloadContextTest);
  14. void DownloadContextTest::testFindFileEntryByOffset()
  15. {
  16. MockDownloadContext ctx;
  17. CPPUNIT_ASSERT(ctx.findFileEntryByOffset(0).isNull());
  18. ctx.addFileEntry(SharedHandle<FileEntry>(new FileEntry("file1",1000,0)));
  19. ctx.addFileEntry(SharedHandle<FileEntry>(new FileEntry("file2",0,1000)));
  20. ctx.addFileEntry(SharedHandle<FileEntry>(new FileEntry("file3",0,1000)));
  21. ctx.addFileEntry(SharedHandle<FileEntry>(new FileEntry("file4",2000,1000)));
  22. ctx.addFileEntry(SharedHandle<FileEntry>(new FileEntry("file5",3000,3000)));
  23. ctx.addFileEntry(SharedHandle<FileEntry>(new FileEntry("file6",0,6000)));
  24. CPPUNIT_ASSERT_EQUAL(std::string("file1"),
  25. ctx.findFileEntryByOffset(0)->getPath());
  26. CPPUNIT_ASSERT_EQUAL(std::string("file4"),
  27. ctx.findFileEntryByOffset(1500)->getPath());
  28. CPPUNIT_ASSERT_EQUAL(std::string("file5"),
  29. ctx.findFileEntryByOffset(5999)->getPath());
  30. CPPUNIT_ASSERT(ctx.findFileEntryByOffset(6000).isNull());
  31. }
  32. } // namespace aria2