MetalinkerTest.cc 2.1 KB

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