MetalinkerTest.cc 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #include "Metalinker.h"
  2. #include <cppunit/extensions/HelperMacros.h>
  3. #include "MetalinkEntry.h"
  4. #include "a2functional.h"
  5. namespace aria2 {
  6. class MetalinkerTest:public CppUnit::TestFixture {
  7. CPPUNIT_TEST_SUITE(MetalinkerTest);
  8. CPPUNIT_TEST(testQueryEntry);
  9. CPPUNIT_TEST_SUITE_END();
  10. private:
  11. public:
  12. void setUp() {
  13. }
  14. void tearDown() {
  15. }
  16. void testQueryEntry();
  17. };
  18. CPPUNIT_TEST_SUITE_REGISTRATION( MetalinkerTest );
  19. void MetalinkerTest::testQueryEntry()
  20. {
  21. Metalinker metalinker;
  22. auto entry1 = make_unique<MetalinkEntry>();
  23. entry1->version = "0.5.2";
  24. entry1->languages.push_back("en-US");
  25. entry1->oses.push_back("Linux-x86");
  26. auto entry2 = make_unique<MetalinkEntry>();
  27. entry2->version = "0.5.1";
  28. entry2->languages.push_back("ja-JP");
  29. entry2->oses.push_back("Linux-m68k");
  30. metalinker.addEntry(std::move(entry1));
  31. metalinker.addEntry(std::move(entry2));
  32. std::string version;
  33. std::string language;
  34. std::string os;
  35. version = "0.5.1";
  36. language = "ja-JP";
  37. os = "Linux-m68k";
  38. {
  39. auto result = metalinker.queryEntry(version, language, os);
  40. CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
  41. CPPUNIT_ASSERT_EQUAL(std::string("0.5.1"), result.at(0)->version);
  42. CPPUNIT_ASSERT_EQUAL(std::string("ja-JP"), result.at(0)->languages[0]);
  43. CPPUNIT_ASSERT_EQUAL(std::string("Linux-m68k"), result.at(0)->oses[0]);
  44. }
  45. version = "0.6.0";
  46. language = "";
  47. os = "";
  48. {
  49. auto result = metalinker.queryEntry(version, language, os);
  50. CPPUNIT_ASSERT_EQUAL((size_t)0, result.size());
  51. }
  52. version = "0.5.2";
  53. language = "";
  54. os = "";
  55. {
  56. auto result = metalinker.queryEntry(version, language, os);
  57. CPPUNIT_ASSERT_EQUAL((size_t)1, result.size());
  58. CPPUNIT_ASSERT_EQUAL(std::string("0.5.2"), result.at(0)->version);
  59. CPPUNIT_ASSERT_EQUAL(std::string("en-US"), result.at(0)->languages[0]);
  60. CPPUNIT_ASSERT_EQUAL(std::string("Linux-x86"), result.at(0)->oses[0]);
  61. }
  62. }
  63. } // namespace aria2