summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-01-31 23:00:05 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-01-31 23:00:05 +0900
commit8902c2a8399f1f2234e9598697de2f91d6c4295e (patch)
tree8b7f4952d4d6584a80cbb458c822290380f05649 /test
parent27974108f059d2e4ac2767c304fdbd8358caad07 (diff)
Rewritten DefaultPeerStorage::addPeer(const std::vector<SharedHandle<Peer> >&)
Diffstat (limited to 'test')
-rw-r--r--test/DefaultPeerStorageTest.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/DefaultPeerStorageTest.cc b/test/DefaultPeerStorageTest.cc
index d0801038..f12bf48d 100644
--- a/test/DefaultPeerStorageTest.cc
+++ b/test/DefaultPeerStorageTest.cc
@@ -9,6 +9,7 @@
#include "Peer.h"
#include "Option.h"
#include "BtRuntime.h"
+#include "array_fun.h"
namespace aria2 {
@@ -131,6 +132,26 @@ void DefaultPeerStorageTest::testAddPeer() {
// this returns false because the peer which has same ip and port
// has already added
CPPUNIT_ASSERT_EQUAL(false, ps.addPeer(peer5));
+
+ SharedHandle<Peer> pa[] = {
+ SharedHandle<Peer>(new Peer("192.168.0.4", 6889)),
+ SharedHandle<Peer>(new Peer("192.168.0.5", 6889)),
+ SharedHandle<Peer>(new Peer("192.168.0.6", 6889)),
+ SharedHandle<Peer>(new Peer("192.168.0.7", 6889)),
+ SharedHandle<Peer>(new Peer("192.168.0.8", 6889))
+ };
+ std::vector<SharedHandle<Peer> > peers(vbegin(pa), vend(pa));
+ ps.addPeer(peers);
+ // peers[0] is not added because it has been already added.
+ // peers[1], peers[2] and peers[3] are going to be added. peers[4]
+ // is not added because DefaultPeerStorage::addPeer() limits the
+ // number of peers to add. Finally, unused peers are removed from
+ // back and size 3 vector is made.
+ CPPUNIT_ASSERT_EQUAL((size_t)3, ps.countPeer());
+ CPPUNIT_ASSERT(std::find_if(ps.getPeers().begin(), ps.getPeers().end(),
+ derefEqual(peers[2])) != ps.getPeers().end());
+ CPPUNIT_ASSERT(std::find_if(ps.getPeers().begin(), ps.getPeers().end(),
+ derefEqual(peers[3])) != ps.getPeers().end());
}
void DefaultPeerStorageTest::testGetUnusedPeer() {