RequestGroupManTest.cc 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #include "RequestGroupMan.h"
  2. #include "CUIDCounter.h"
  3. #include "prefs.h"
  4. #include "RequestFactory.h"
  5. #include "SingleFileDownloadContext.h"
  6. #include "RequestGroup.h"
  7. #include <cppunit/extensions/HelperMacros.h>
  8. using namespace std;
  9. class RequestGroupManTest : public CppUnit::TestFixture {
  10. CPPUNIT_TEST_SUITE(RequestGroupManTest);
  11. CPPUNIT_TEST(testIsSameFileBeingDownloaded);
  12. CPPUNIT_TEST(testGetInitialCommands);
  13. CPPUNIT_TEST_SUITE_END();
  14. private:
  15. public:
  16. void setUp()
  17. {
  18. CUIDCounterHandle counter = new CUIDCounter();
  19. CUIDCounterSingletonHolder::instance(counter);
  20. }
  21. void testIsSameFileBeingDownloaded();
  22. void testGetInitialCommands();
  23. };
  24. CPPUNIT_TEST_SUITE_REGISTRATION( RequestGroupManTest );
  25. void RequestGroupManTest::testIsSameFileBeingDownloaded()
  26. {
  27. Option option;
  28. Strings uris;
  29. uris.push_back("http://localhost/aria2.tar.bz2");
  30. RequestGroupHandle rg1 = new RequestGroup(&option, uris);
  31. RequestGroupHandle rg2 = new RequestGroup(&option, uris);
  32. SingleFileDownloadContextHandle dctx1 =
  33. new SingleFileDownloadContext(0, 0, "aria2.tar.bz2");
  34. SingleFileDownloadContextHandle dctx2 =
  35. new SingleFileDownloadContext(0, 0, "aria2.tar.bz2");
  36. rg1->setDownloadContext(dctx1);
  37. rg2->setDownloadContext(dctx2);
  38. RequestGroups rgs;
  39. rgs.push_back(rg1);
  40. rgs.push_back(rg2);
  41. RequestGroupMan gm(rgs, 1);
  42. CPPUNIT_ASSERT(gm.isSameFileBeingDownloaded(rg1.get()));
  43. dctx2->setFilename("aria2.tar.gz");
  44. CPPUNIT_ASSERT(!gm.isSameFileBeingDownloaded(rg1.get()));
  45. }
  46. void RequestGroupManTest::testGetInitialCommands()
  47. {
  48. // TODO implement later
  49. /*
  50. Option option;
  51. option.put(PREF_SPLIT, "1");
  52. option.put(PREF_TIMEOUT, "10");
  53. RequestFactoryHandle requestFactory = new RequestFactory();
  54. requestFactory->setOption(&option);
  55. RequestFactorySingletonHolder::instance(requestFactory);
  56. RequestGroupMan gm;
  57. RequestGroupHandle rg1 = new RequestGroup("aria2.tar.bz2.metalink",
  58. &option);
  59. RequestGroupHandle rg2 = new RequestGroup("http://localhost/aria2.tar.bz2",
  60. &option);
  61. gm.addRequestGroup(rg1);
  62. gm.addRequestGroup(rg2);
  63. ConsoleDownloadEngine e;
  64. e.option = &option;
  65. Commands commands = gm.getInitialCommands(&e);
  66. CPPUNIT_ASSERT_EQUAL((size_t)1, commands.size());
  67. */
  68. }