DHTIDCloserTest.cc 1.5 KB

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