diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-02-11 06:23:01 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-02-11 06:23:01 +0000 |
| commit | 413cbe192b842c23759c9b31088b34e88ce96ed2 (patch) | |
| tree | 21987616a5e43642d71bbb626f4ba4d7f9cb298c /test/DHTMessageFactoryImplTest.cc | |
| parent | 34e6a1dc9af8c2716bf5ffb6ea04c5fcc0a78844 (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.cc | 24 |
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 |
