summaryrefslogtreecommitdiff
path: root/test/DHTMessageFactoryImplTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-02-11 06:23:01 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-02-11 06:23:01 +0000
commit413cbe192b842c23759c9b31088b34e88ce96ed2 (patch)
tree21987616a5e43642d71bbb626f4ba4d7f9cb298c /test/DHTMessageFactoryImplTest.cc
parent34e6a1dc9af8c2716bf5ffb6ea04c5fcc0a78844 (diff)
2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Adding handling of DHT error message. Just log error message and throw exception. * src/DHTMessageFactoryImpl.cc * test/DHTMessageFactoryImplTest.cc
Diffstat (limited to 'test/DHTMessageFactoryImplTest.cc')
-rw-r--r--test/DHTMessageFactoryImplTest.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/DHTMessageFactoryImplTest.cc b/test/DHTMessageFactoryImplTest.cc
index e1f583c6..baefb194 100644
--- a/test/DHTMessageFactoryImplTest.cc
+++ b/test/DHTMessageFactoryImplTest.cc
@@ -33,6 +33,7 @@ class DHTMessageFactoryImplTest:public CppUnit::TestFixture {
CPPUNIT_TEST(testCreateGetPeersReplyMessage_values);
CPPUNIT_TEST(testCreateAnnouncePeerMessage);
CPPUNIT_TEST(testCreateAnnouncePeerReplyMessage);
+ CPPUNIT_TEST(testReceivedErrorMessage);
CPPUNIT_TEST_SUITE_END();
public:
DHTMessageFactoryImplTest():factory(0), routingTable(0), localNode(0) {}
@@ -72,6 +73,7 @@ public:
void testCreateGetPeersReplyMessage_values();
void testCreateAnnouncePeerMessage();
void testCreateAnnouncePeerReplyMessage();
+ void testReceivedErrorMessage();
};
@@ -362,4 +364,26 @@ void DHTMessageFactoryImplTest::testCreateAnnouncePeerReplyMessage()
Util::toHex(m->getTransactionID()));
}
+void DHTMessageFactoryImplTest::testReceivedErrorMessage()
+{
+ SharedHandle<Dictionary> d = new Dictionary();
+ d->put("t", new Data(transactionID, DHT_TRANSACTION_ID_LENGTH));
+ d->put("y", new Data("e"));
+ List* l = new List();
+ l->add(new Data("404"));
+ l->add(new Data("Not found"));
+ d->put("e", l);
+
+ SharedHandle<DHTNode> remoteNode = new DHTNode(remoteNodeID);
+ remoteNode->setIPAddress("192.168.0.1");
+ remoteNode->setPort(6881);
+
+ try {
+ factory->createResponseMessage("announce_peer", d.get(), remoteNode);
+ CPPUNIT_FAIL("exception must be thrown.");
+ } catch(RecoverableException* e) {
+ std::cerr << *e << std::endl;
+ }
+}
+
} // namespace aria2