aria2/test/PeerListProcessorTest.cc
Tatsuhiro Tsujikawa 99654e4160 2009-09-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Move all functions in PeerMessageUtil to bittorrent_helper.
	* src/BtBitfieldMessage.cc
	* src/BtBitfieldMessageValidator.h
	* src/BtExtendedMessage.cc
	* src/BtHandshakeMessage.cc
	* src/BtHandshakeMessageValidator.h
	* src/BtPieceMessage.cc
	* src/BtPieceMessageValidator.h
	* src/BtPortMessage.cc
	* src/DHTFindNodeReplyMessage.cc
	* src/DHTGetPeersReplyMessage.cc
	* src/DHTMessageFactoryImpl.cc
	* src/DHTRoutingTableDeserializer.cc
	* src/DHTRoutingTableSerializer.cc
	* src/DHTTokenTracker.cc
	* src/DefaultBtMessageFactory.cc
	* src/IndexBtMessage.cc
	* src/IndexBtMessage.h
	* src/IndexBtMessageValidator.h
	* src/Makefile.am
	* src/PeerMessageUtil.cc: Removed.
	* src/PeerMessageUtil.h: Removed.
	* src/RangeBtMessage.cc
	* src/RangeBtMessage.h
	* src/RangeBtMessageValidator.h
	* src/UTPexExtensionMessage.cc
	* src/ZeroBtMessage.cc
	* src/ZeroBtMessage.h
	* src/bittorrent_helper.cc
	* src/bittorrent_helper.h
	* test/BittorrentHelperTest.cc
	* test/BtAllowedFastMessageTest.cc
	* test/BtBitfieldMessageTest.cc
	* test/BtCancelMessageTest.cc
	* test/BtChokeMessageTest.cc
	* test/BtExtendedMessageTest.cc
	* test/BtHandshakeMessageTest.cc
	* test/BtHaveAllMessageTest.cc
	* test/BtHaveMessageTest.cc
	* test/BtHaveNoneMessageTest.cc
	* test/BtInterestedMessageTest.cc
	* test/BtNotInterestedMessageTest.cc
	* test/BtPieceMessageTest.cc
	* test/BtPortMessageTest.cc
	* test/BtRejectMessageTest.cc
	* test/BtRequestMessageTest.cc
	* test/BtSuggestPieceMessageTest.cc
	* test/BtUnchokeMessageTest.cc
	* test/DHTFindNodeReplyMessageTest.cc
	* test/DHTGetPeersReplyMessageTest.cc
	* test/DHTMessageFactoryImplTest.cc
	* test/DHTRoutingTableDeserializerTest.cc
	* test/DHTRoutingTableSerializerTest.cc
	* test/DefaultBtMessageFactoryTest.cc
	* test/DefaultExtensionMessageFactoryTest.cc
	* test/Makefile.am
	* test/PeerListProcessorTest.cc
	* test/PeerMessageUtilTest.cc: Removed.
	* test/UTPexExtensionMessageTest.cc
2009-09-29 14:52:42 +00:00

70 lines
1.9 KiB
C++

#include "PeerListProcessor.h"
#include <cstdlib>
#include <cppunit/extensions/HelperMacros.h>
#include "Exception.h"
#include "Peer.h"
#include "bencode.h"
#include "TimeA2.h"
namespace aria2 {
class PeerListProcessorTest:public CppUnit::TestFixture {
CPPUNIT_TEST_SUITE(PeerListProcessorTest);
CPPUNIT_TEST(testExtractPeerFromList);
CPPUNIT_TEST(testExtract2PeersFromList);
CPPUNIT_TEST_SUITE_END();
private:
public:
void setUp() {
}
void testExtractPeerFromList();
void testExtract2PeersFromList();
};
CPPUNIT_TEST_SUITE_REGISTRATION( PeerListProcessorTest );
void PeerListProcessorTest::testExtractPeerFromList() {
PeerListProcessor proc;
std::string peersString =
"d5:peersld2:ip11:192.168.0.17:peer id20:aria2-00000000000000"
"4:porti2006eeee";
const BDE dict = bencode::decode(peersString);
std::deque<SharedHandle<Peer> > peers;
proc.extractPeerFromList(dict["peers"], std::back_inserter(peers));
CPPUNIT_ASSERT_EQUAL((size_t)1, peers.size());
SharedHandle<Peer> peer = *peers.begin();
CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.1"), peer->ipaddr);
CPPUNIT_ASSERT_EQUAL((uint16_t)2006, peer->port);
}
void PeerListProcessorTest::testExtract2PeersFromList() {
PeerListProcessor proc;
std::string peersString =
"d5:peersld2:ip11:192.168.0.17:peer id20:aria2-00000000000000"
"4:porti65535eed2:ip11:192.168.0.27:peer id20:aria2-00000000000000"
"4:porti2007eeee";
const BDE dict = bencode::decode(peersString);
std::deque<SharedHandle<Peer> > peers;
proc.extractPeerFromList(dict["peers"], std::back_inserter(peers));
CPPUNIT_ASSERT_EQUAL((size_t)2, peers.size());
SharedHandle<Peer> peer = *peers.begin();
CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.1"), peer->ipaddr);
CPPUNIT_ASSERT_EQUAL((uint16_t)65535, peer->port);
peer = *(peers.begin()+1);
CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.2"), peer->ipaddr);
CPPUNIT_ASSERT_EQUAL((uint16_t)2007, peer->port);
}
} // namespace aria2