MCPcopy Create free account
hub / github.com/aria2/aria2 / testMessageArrived

Method testMessageArrived

test/DHTMessageTrackerTest.cc:35–96  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33CPPUNIT_TEST_SUITE_REGISTRATION(DHTMessageTrackerTest);
34
35void DHTMessageTrackerTest::testMessageArrived()
36{
37 auto localNode = std::make_shared<DHTNode>();
38 auto routingTable = make_unique<DHTRoutingTable>(localNode);
39 auto factory = make_unique<MockDHTMessageFactory>();
40 factory->setLocalNode(localNode);
41
42 auto r1 = std::make_shared<DHTNode>();
43 r1->setIPAddress("192.168.0.1");
44 r1->setPort(6881);
45 auto r2 = std::make_shared<DHTNode>();
46 r2->setIPAddress("192.168.0.2");
47 r2->setPort(6882);
48 auto r3 = std::make_shared<DHTNode>();
49 r3->setIPAddress("192.168.0.3");
50 r3->setPort(6883);
51
52 auto m1 = make_unique<MockDHTMessage>(localNode, r1);
53 auto m2 = make_unique<MockDHTMessage>(localNode, r2);
54 auto m3 = make_unique<MockDHTMessage>(localNode, r3);
55
56 DHTMessageTracker tracker;
57 tracker.setRoutingTable(routingTable.get());
58 tracker.setMessageFactory(factory.get());
59 tracker.addMessage(m1.get(), DHT_MESSAGE_TIMEOUT);
60 tracker.addMessage(m2.get(), DHT_MESSAGE_TIMEOUT);
61 tracker.addMessage(m3.get(), DHT_MESSAGE_TIMEOUT);
62
63 {
64 Dict resDict;
65 resDict.put("t", m2->getTransactionID());
66
67 auto p =
68 tracker.messageArrived(&resDict, r2->getIPAddress(), r2->getPort());
69 auto& reply = p.first;
70
71 CPPUNIT_ASSERT(reply);
72 CPPUNIT_ASSERT(!tracker.getEntryFor(m2.get()));
73 CPPUNIT_ASSERT_EQUAL((size_t)2, tracker.countEntry());
74 }
75 {
76 Dict resDict;
77 resDict.put("t", m3->getTransactionID());
78
79 auto p =
80 tracker.messageArrived(&resDict, r3->getIPAddress(), r3->getPort());
81 auto& reply = p.first;
82
83 CPPUNIT_ASSERT(reply);
84 CPPUNIT_ASSERT(!tracker.getEntryFor(m3.get()));
85 CPPUNIT_ASSERT_EQUAL((size_t)1, tracker.countEntry());
86 }
87 {
88 Dict resDict;
89 resDict.put("t", m1->getTransactionID());
90
91 auto p = tracker.messageArrived(&resDict, "192.168.1.100", 6889);
92 auto& reply = p.first;

Callers

nothing calls this directly

Calls 12

setIPAddressMethod · 0.80
messageArrivedMethod · 0.80
getEntryForMethod · 0.80
countEntryMethod · 0.80
setLocalNodeMethod · 0.45
setPortMethod · 0.45
setRoutingTableMethod · 0.45
getMethod · 0.45
setMessageFactoryMethod · 0.45
addMessageMethod · 0.45
putMethod · 0.45
getPortMethod · 0.45

Tested by

no test coverage detected