| 79 | } |
| 80 | |
| 81 | void DHTFindNodeMessageTest::testDoReceivedAction() |
| 82 | { |
| 83 | unsigned char tid[DHT_TRANSACTION_ID_LENGTH]; |
| 84 | util::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); |
| 85 | std::string transactionID(&tid[0], &tid[DHT_TRANSACTION_ID_LENGTH]); |
| 86 | |
| 87 | auto targetNode = std::make_shared<DHTNode>(); |
| 88 | |
| 89 | MockDHTMessageDispatcher dispatcher; |
| 90 | MockDHTMessageFactory2 factory; |
| 91 | factory.setLocalNode(localNode_); |
| 92 | DHTRoutingTable routingTable(localNode_); |
| 93 | routingTable.addNode(targetNode); |
| 94 | |
| 95 | DHTFindNodeMessage msg(localNode_, remoteNode_, targetNode->getID(), |
| 96 | transactionID); |
| 97 | msg.setMessageDispatcher(&dispatcher); |
| 98 | msg.setMessageFactory(&factory); |
| 99 | msg.setRoutingTable(&routingTable); |
| 100 | |
| 101 | msg.doReceivedAction(); |
| 102 | |
| 103 | CPPUNIT_ASSERT_EQUAL((size_t)1, dispatcher.messageQueue_.size()); |
| 104 | auto m = dynamic_cast<DHTFindNodeReplyMessage*>( |
| 105 | dispatcher.messageQueue_[0].message_.get()); |
| 106 | CPPUNIT_ASSERT(*localNode_ == *m->getLocalNode()); |
| 107 | CPPUNIT_ASSERT(*remoteNode_ == *m->getRemoteNode()); |
| 108 | CPPUNIT_ASSERT_EQUAL(std::string("find_node"), m->getMessageType()); |
| 109 | CPPUNIT_ASSERT_EQUAL(msg.getTransactionID(), m->getTransactionID()); |
| 110 | CPPUNIT_ASSERT_EQUAL((size_t)1, m->getClosestKNodes().size()); |
| 111 | } |
| 112 | |
| 113 | } // namespace aria2 |
nothing calls this directly
no test coverage detected