Пример #1
0
        public void Found()
        {
            var bitswap = new Bitswap {
                Swarm = new Swarm {
                    LocalPeer = self
                }
            };

            Assert.AreEqual(0, bitswap.PeerWants(self.Id).Count());

            var a      = new DagNode(Encoding.UTF8.GetBytes("BitswapTest found block a"));
            var b      = new DagNode(Encoding.UTF8.GetBytes("BitswapTest found block b"));
            var cancel = new CancellationTokenSource();
            var task   = bitswap.Want(a.Id, self.Id, cancel.Token);

            Assert.IsFalse(task.IsCompleted);
            CollectionAssert.Contains(bitswap.PeerWants(self.Id).ToArray(), a.Id);

            bitswap.Found(b);
            Assert.IsFalse(task.IsCompleted);
            CollectionAssert.Contains(bitswap.PeerWants(self.Id).ToArray(), a.Id);

            bitswap.Found(a);
            Assert.IsTrue(task.IsCompleted);
            CollectionAssert.DoesNotContain(bitswap.PeerWants(self.Id).ToArray(), a.Id);
            CollectionAssert.AreEqual(a.DataBytes, task.Result.DataBytes);
        }
Пример #2
0
        public void Found_Count()
        {
            var bitswap = new Bitswap {
                Swarm = new Swarm {
                    LocalPeer = self
                }
            };

            var a = new DagNode(Encoding.UTF8.GetBytes("BitswapTest found block a"));

            Assert.AreEqual(0, bitswap.Found(a));

            var cancel = new CancellationTokenSource();
            var task1  = bitswap.Want(a.Id, self.Id, cancel.Token);
            var task2  = bitswap.Want(a.Id, self.Id, cancel.Token);

            Assert.AreEqual(2, bitswap.Found(a));

            Assert.IsTrue(task1.IsCompleted);
            Assert.IsTrue(task2.IsCompleted);
        }