MetalinkerTest.cc 1.8 KB

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