コード例 #1
0
        public void DoesntHaveSuggestedPiece()
        {
            peer.IsChoking        = false;
            peer.SupportsFastPeer = true;
            peer.SuggestedPieces.AddRange(new int[] { 1, 2, 3, 4 });
            peer.BitField.SetAll(true);
            picker = new StandardPicker();
            picker.Initialise(rig.Manager.Bitfield, rig.Torrent.Files, new List <Piece>());
            MessageBundle bundle = picker.PickPiece(peer, new MonoTorrent.Common.BitField(peer.BitField.Length), peers, 1, 0, peer.BitField.Length);

            Assert.IsNull(bundle);
        }
コード例 #2
0
        public void RequestFastSeeder()
        {
            int[] allowedFast = new int[] { 1, 2, 3, 5, 8, 13, 21 };
            peers[0].SupportsFastPeer = true;
            peers[0].IsAllowedFastPieces.AddRange((int[])allowedFast.Clone());

            peers[0].BitField.SetAll(true);             // Lets pretend he has everything
            for (int i = 0; i < 7; i++)
            {
                for (int j = 0; j < 16; j++)
                {
                    RequestMessage msg = picker.PickPiece(peers[0], peers);
                    Assert.IsNotNull(msg, "#1." + j);
                    Assert.IsTrue(Array.IndexOf <int>(allowedFast, msg.PieceIndex) > -1, "#2." + j);
                }
            }
            Assert.IsNull(picker.PickPiece(peers[0], peers));
        }
コード例 #3
0
 public virtual MessageBundle PickPiece(PeerId id, BitField peerBitfield, List <PeerId> otherPeers, int count, int startIndex, int endIndex)
 {
     CheckOverriden();
     return(picker.PickPiece(id, peerBitfield, otherPeers, count, startIndex, endIndex));
 }
コード例 #4
0
 public void DoesntHaveSuggestedPiece()
 {
     peer.IsChoking = false;
     peer.SupportsFastPeer = true;
     peer.SuggestedPieces.AddRange(new int[] { 1, 2, 3, 4 });
     peer.BitField.SetAll(true);
     picker = new StandardPicker();
     picker.Initialise(rig.Manager.Bitfield, rig.Torrent.Files, new List<Piece>());
     MessageBundle bundle = picker.PickPiece(peer, new MonoTorrent.Common.BitField(peer.BitField.Length), peers, 1, 0, peer.BitField.Length);
     Assert.IsNull(bundle);
 }
コード例 #5
0
 public void DoesntHaveFastPiece()
 {
     peer.IsChoking = true;
     peer.SupportsFastPeer = true;
     peer.IsAllowedFastPieces.AddRange(new[] {1, 2, 3, 4});
     peer.BitField.SetAll(true);
     picker = new StandardPicker();
     picker.Initialise(rig.Manager.Bitfield, rig.Torrent.Files, new List<Piece>());
     var bundle = picker.PickPiece(peer, new BitField(peer.BitField.Length), peers,
         1, 0, peer.BitField.Length);
     Assert.Null(bundle);
 }