summaryrefslogtreecommitdiff
path: root/test/DHTBucketTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-01-07 00:14:42 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-01-07 00:14:42 +0900
commit920583502e654e8ae3e47ecb8b5df515b2d072f2 (patch)
tree1e3bca7db322e9ba11df74314351ac744353caef /test/DHTBucketTest.cc
parentd429943d05726569758a884fa67238958972970f (diff)
Consider IP address and port when finding DHT node.
Diffstat (limited to 'test/DHTBucketTest.cc')
-rw-r--r--test/DHTBucketTest.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/DHTBucketTest.cc b/test/DHTBucketTest.cc
index 11adca59..ff2b7cac 100644
--- a/test/DHTBucketTest.cc
+++ b/test/DHTBucketTest.cc
@@ -24,6 +24,7 @@ class DHTBucketTest:public CppUnit::TestFixture {
CPPUNIT_TEST(testGetGoodNodes);
CPPUNIT_TEST(testCacheNode);
CPPUNIT_TEST(testDropNode);
+ CPPUNIT_TEST(testGetNode);
CPPUNIT_TEST_SUITE_END();
public:
void setUp() {}
@@ -40,6 +41,7 @@ public:
void testGetGoodNodes();
void testCacheNode();
void testDropNode();
+ void testGetNode();
};
@@ -451,4 +453,23 @@ void DHTBucketTest::testDropNode()
CPPUNIT_ASSERT(*cachedNode1 == *bucket.getCachedNodes()[0]);
}
+void DHTBucketTest::testGetNode()
+{
+ unsigned char localNodeID[DHT_ID_LENGTH];
+ memset(localNodeID, 0, DHT_ID_LENGTH);
+ SharedHandle<DHTNode> localNode(new DHTNode(localNodeID));
+ DHTBucket bucket(localNode);
+
+ unsigned char id[DHT_ID_LENGTH];
+ createID(id, 0xf0, 0);
+ SharedHandle<DHTNode> node(new DHTNode(id));
+ node->setIPAddress("192.168.0.1");
+ node->setPort(6881);
+ CPPUNIT_ASSERT(bucket.addNode(node));
+ CPPUNIT_ASSERT(bucket.getNode(id, "192.168.0.1", 6881));
+ CPPUNIT_ASSERT(!bucket.getNode(id, "192.168.0.2", 6881));
+ CPPUNIT_ASSERT(!bucket.getNode(id, "192.168.0.1", 6882));
+ CPPUNIT_ASSERT(!bucket.getNode(localNodeID, "192.168.0.1", 6881));
+}
+
} // namespace aria2