InOrderURISelectorTest.cc 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. SharedHandle<InOrderURISelector> sel;
  15. public:
  16. void setUp()
  17. {
  18. static const char* urisSrc[] = {
  19. "http://alpha/file",
  20. "ftp://alpha/file",
  21. "http://bravo/file"
  22. };
  23. std::vector<std::string> uris;
  24. uris.assign(vbegin(urisSrc), vend(urisSrc));
  25. fileEntry_.setUris(uris);
  26. sel.reset(new InOrderURISelector());
  27. }
  28. void tearDown() {}
  29. void testSelect();
  30. };
  31. CPPUNIT_TEST_SUITE_REGISTRATION(InOrderURISelectorTest);
  32. void InOrderURISelectorTest::testSelect()
  33. {
  34. std::vector<std::pair<size_t, std::string> > usedHosts;
  35. CPPUNIT_ASSERT_EQUAL(std::string("http://alpha/file"),
  36. sel->select(&fileEntry_, usedHosts));
  37. CPPUNIT_ASSERT_EQUAL(std::string("ftp://alpha/file"),
  38. sel->select(&fileEntry_, usedHosts));
  39. CPPUNIT_ASSERT_EQUAL(std::string("http://bravo/file"),
  40. sel->select(&fileEntry_, usedHosts));
  41. CPPUNIT_ASSERT_EQUAL(std::string(""), sel->select(&fileEntry_, usedHosts));
  42. }
  43. } // namespace aria2