DHTIDCloserTest.cc 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include "DHTNode.h"
  2. #include "DHTNodeLookupEntry.h"
  3. #include "DHTIDCloser.h"
  4. #include "Exception.h"
  5. #include "Util.h"
  6. #include <cstring>
  7. #include <algorithm>
  8. #include <cppunit/extensions/HelperMacros.h>
  9. namespace aria2 {
  10. class DHTIDCloserTest:public CppUnit::TestFixture {
  11. CPPUNIT_TEST_SUITE(DHTIDCloserTest);
  12. CPPUNIT_TEST(testOperator);
  13. CPPUNIT_TEST_SUITE_END();
  14. public:
  15. void setUp() {}
  16. void tearDown() {}
  17. void testOperator();
  18. };
  19. CPPUNIT_TEST_SUITE_REGISTRATION(DHTIDCloserTest);
  20. void DHTIDCloserTest::testOperator()
  21. {
  22. unsigned char id[DHT_ID_LENGTH];
  23. memset(id, 0xf0, DHT_ID_LENGTH);
  24. SharedHandle<DHTNodeLookupEntry> e1 = new DHTNodeLookupEntry(new DHTNode(id));
  25. id[0] = 0xb0;
  26. SharedHandle<DHTNodeLookupEntry> e2 = new DHTNodeLookupEntry(new DHTNode(id));
  27. id[0] = 0xa0;
  28. SharedHandle<DHTNodeLookupEntry> e3 = new DHTNodeLookupEntry(new DHTNode(id));
  29. id[0] = 0x80;
  30. SharedHandle<DHTNodeLookupEntry> e4 = new DHTNodeLookupEntry(new DHTNode(id));
  31. id[0] = 0x00;
  32. SharedHandle<DHTNodeLookupEntry> e5 = new DHTNodeLookupEntry(new DHTNode(id));
  33. std::deque<SharedHandle<DHTNodeLookupEntry> > entries;
  34. entries.push_back(e1);
  35. entries.push_back(e2);
  36. entries.push_back(e3);
  37. entries.push_back(e4);
  38. entries.push_back(e5);
  39. std::sort(entries.begin(), entries.end(), DHTIDCloser(e3->_node->getID()));
  40. CPPUNIT_ASSERT(e3 == entries[0]);
  41. CPPUNIT_ASSERT(e2 == entries[1]);
  42. CPPUNIT_ASSERT(e4 == entries[2]);
  43. CPPUNIT_ASSERT(e1 == entries[3]);
  44. CPPUNIT_ASSERT(e5 == entries[4]);
  45. }
  46. } // namespace aria2