DHTIDCloserTest.cc 1.4 KB

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