24
24
CPPUNIT_TEST(testCreatePortMessage);
25
25
CPPUNIT_TEST_SUITE_END();
27
SharedHandle<DownloadContext> dctx_;
28
SharedHandle<Peer> peer_;
29
SharedHandle<MockExtensionMessageFactory> exmsgFactory_;
30
SharedHandle<DefaultBtMessageFactory> factory_;
27
std::unique_ptr<DownloadContext> dctx_;
28
std::shared_ptr<Peer> peer_;
29
std::shared_ptr<MockExtensionMessageFactory> exmsgFactory_;
30
std::unique_ptr<DefaultBtMessageFactory> factory_;
34
dctx_.reset(new DownloadContext());
34
dctx_ = make_unique<DownloadContext>();
36
peer_.reset(new Peer("192.168.0.1", 6969));
36
peer_ = std::make_shared<Peer>("192.168.0.1", 6969);
37
37
peer_->allocateSessionResource(1024, 1024*1024);
38
38
peer_->setExtendedMessagingEnabled(true);
40
exmsgFactory_.reset(new MockExtensionMessageFactory());
40
exmsgFactory_ = std::make_shared<MockExtensionMessageFactory>();
42
factory_.reset(new DefaultBtMessageFactory());
43
factory_->setDownloadContext(dctx_);
42
factory_ = make_unique<DefaultBtMessageFactory>();
43
factory_->setDownloadContext(dctx_.get());
44
44
factory_->setPeer(peer_);
45
factory_->setExtensionMessageFactory(exmsgFactory_);
45
factory_->setExtensionMessageFactory(exmsgFactory_.get());
48
48
void testCreateBtMessage_BtExtendedMessage();
62
62
msg[5] = 1; // Set dummy extended message ID 1
63
63
memcpy(msg+6, payload.c_str(), payload.size());
65
SharedHandle<BtExtendedMessage> m
66
(dynamic_pointer_cast<BtExtendedMessage>
67
(factory_->createBtMessage((const unsigned char*)msg+4, sizeof(msg))));
66
factory_->createBtMessage((const unsigned char*)msg+4, sizeof(msg));
67
CPPUNIT_ASSERT(BtExtendedMessage::ID == m->getId());
70
69
// disable extended messaging
71
70
peer_->setExtendedMessagingEnabled(false);
83
82
bittorrent::createPeerMessageString(data, sizeof(data), 3, 9);
84
83
bittorrent::setShortIntParam(&data[5], 6881);
86
SharedHandle<BtPortMessage> m
87
(dynamic_pointer_cast<BtPortMessage>
88
(factory_->createBtMessage(&data[4], sizeof(data)-4)));
85
auto r = factory_->createBtMessage(&data[4], sizeof(data)-4);
86
CPPUNIT_ASSERT(BtPortMessage::ID == r->getId());
87
auto m = static_cast<const BtPortMessage*>(r.get());
90
88
CPPUNIT_ASSERT_EQUAL((uint16_t)6881, m->getPort());
91
89
} catch(Exception& e) {
92
90
CPPUNIT_FAIL(e.stackTrace());
96
SharedHandle<BtPortMessage> m
97
(dynamic_pointer_cast<BtPortMessage>(factory_->createPortMessage(6881)));
94
auto m = factory_->createPortMessage(6881);
98
95
CPPUNIT_ASSERT_EQUAL((uint16_t)6881, m->getPort());