InorderURISelectorTest.cc 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "InorderURISelector.h"
  2. #include <cppunit/extensions/HelperMacros.h>
  3. #include "Exception.h"
  4. #include "util.h"
  5. #include "array_fun.h"
  6. #include "FileEntry.h"
  7. namespace aria2 {
  8. class InorderURISelectorTest : public CppUnit::TestFixture {
  9. CPPUNIT_TEST_SUITE(InorderURISelectorTest);
  10. CPPUNIT_TEST(testSelect);
  11. CPPUNIT_TEST_SUITE_END();
  12. private:
  13. FileEntry fileEntry_;
  14. std::shared_ptr<InorderURISelector> sel;
  15. public:
  16. void setUp()
  17. {
  18. fileEntry_.setUris(
  19. {"http://alpha/file", "ftp://alpha/file", "http://bravo/file"});
  20. sel.reset(new InorderURISelector());
  21. }
  22. void tearDown() {}
  23. void testSelect();
  24. };
  25. CPPUNIT_TEST_SUITE_REGISTRATION(InorderURISelectorTest);
  26. void InorderURISelectorTest::testSelect()
  27. {
  28. std::vector<std::pair<size_t, std::string>> usedHosts;
  29. CPPUNIT_ASSERT_EQUAL(std::string("http://alpha/file"),
  30. sel->select(&fileEntry_, usedHosts));
  31. CPPUNIT_ASSERT_EQUAL(std::string("ftp://alpha/file"),
  32. sel->select(&fileEntry_, usedHosts));
  33. CPPUNIT_ASSERT_EQUAL(std::string("http://bravo/file"),
  34. sel->select(&fileEntry_, usedHosts));
  35. CPPUNIT_ASSERT_EQUAL(std::string(""), sel->select(&fileEntry_, usedHosts));
  36. }
  37. } // namespace aria2