mirror of https://github.com/aria2/aria2
				
				
				
			
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
#include "DHTNode.h"
 | 
						|
#include "DHTNodeLookupEntry.h"
 | 
						|
#include "DHTIDCloser.h"
 | 
						|
#include "Exception.h"
 | 
						|
#include "util.h"
 | 
						|
#include <cstring>
 | 
						|
#include <algorithm>
 | 
						|
#include <cppunit/extensions/HelperMacros.h>
 | 
						|
 | 
						|
namespace aria2 {
 | 
						|
 | 
						|
class DHTIDCloserTest:public CppUnit::TestFixture {
 | 
						|
 | 
						|
  CPPUNIT_TEST_SUITE(DHTIDCloserTest);
 | 
						|
  CPPUNIT_TEST(testOperator);
 | 
						|
  CPPUNIT_TEST_SUITE_END();
 | 
						|
public:
 | 
						|
  void setUp() {}
 | 
						|
 | 
						|
  void tearDown() {}
 | 
						|
 | 
						|
  void testOperator();
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
CPPUNIT_TEST_SUITE_REGISTRATION(DHTIDCloserTest);
 | 
						|
 | 
						|
void DHTIDCloserTest::testOperator()
 | 
						|
{
 | 
						|
  unsigned char id[DHT_ID_LENGTH];
 | 
						|
  memset(id, 0xf0, DHT_ID_LENGTH);
 | 
						|
 | 
						|
  SharedHandle<DHTNodeLookupEntry> e1
 | 
						|
    (new DHTNodeLookupEntry(SharedHandle<DHTNode>(new DHTNode(id))));
 | 
						|
 | 
						|
  id[0] = 0xb0;
 | 
						|
  SharedHandle<DHTNodeLookupEntry> e2
 | 
						|
    (new DHTNodeLookupEntry(SharedHandle<DHTNode>(new DHTNode(id))));
 | 
						|
 | 
						|
  id[0] = 0xa0;
 | 
						|
  SharedHandle<DHTNodeLookupEntry> e3
 | 
						|
    (new DHTNodeLookupEntry(SharedHandle<DHTNode>(new DHTNode(id))));
 | 
						|
 | 
						|
  id[0] = 0x80;
 | 
						|
  SharedHandle<DHTNodeLookupEntry> e4
 | 
						|
    (new DHTNodeLookupEntry(SharedHandle<DHTNode>(new DHTNode(id))));
 | 
						|
 | 
						|
  id[0] = 0x00;
 | 
						|
  SharedHandle<DHTNodeLookupEntry> e5
 | 
						|
    (new DHTNodeLookupEntry(SharedHandle<DHTNode>(new DHTNode(id))));
 | 
						|
 | 
						|
  std::deque<SharedHandle<DHTNodeLookupEntry> > entries;
 | 
						|
  entries.push_back(e1);
 | 
						|
  entries.push_back(e2);
 | 
						|
  entries.push_back(e3);
 | 
						|
  entries.push_back(e4);
 | 
						|
  entries.push_back(e5);
 | 
						|
 | 
						|
  std::sort(entries.begin(), entries.end(), DHTIDCloser(e3->node->getID()));
 | 
						|
 | 
						|
  CPPUNIT_ASSERT(*e3 == *entries[0]);
 | 
						|
  CPPUNIT_ASSERT(*e2 == *entries[1]);
 | 
						|
  CPPUNIT_ASSERT(*e4 == *entries[2]);
 | 
						|
  CPPUNIT_ASSERT(*e1 == *entries[3]);
 | 
						|
  CPPUNIT_ASSERT(*e5 == *entries[4]);
 | 
						|
}
 | 
						|
 | 
						|
} // namespace aria2
 |