Example #1
0
        public void Test_GetRandomHashID()
        {
            var randShaId = DHTId.CreateRandom();

            Assert.IsNotNull(randShaId);
            Assert.AreEqual(20, randShaId.Data.Length);
        }
        public void Test_PeerPingedEventArgs()
        {
            IPEndPoint peerEndPoint = new IPEndPoint(IPAddress.Any, 1111);
            var        nodeId       = DHTId.CreateRandom();
            var        evt          = new PeerPingedEventArgs(peerEndPoint, nodeId);

            Assert.IsNotNull(evt);
            Assert.AreEqual(peerEndPoint, evt.EndPoint);
            Assert.AreEqual(nodeId, evt.NodeId);
        }
Example #3
0
        public void Test_CreateAnnouncePeerResponse()
        {
            var        tid    = DHTTransactions.GetNextId();
            var        nodeId = DHTId.CreateRandom();
            DHTMessage msg    = DHTMessage.CreateAnnouncePeerResponse(tid, nodeId, new List <DHTNode>());

            Assert.IsNotNull(msg);
            Assert.AreEqual(MessageType.Response, msg.Type);
            // TODO: test contents
        }
        public void Test_UpdateNode_DDoS_Protection()
        {
            var table = new DHTRoutingTable(10);

            // do not use nodes with ports below 1024
            var node   = new DHTNode(DHTId.CreateRandom(), new IPEndPoint(IPAddress.Any, 111));
            var result = table.UpdateNode(node);

            Assert.IsFalse(result);
        }
        public void Test_UpdateNode()
        {
            var table = new DHTRoutingTable(10);

            table.UpdateNode(null);

            var node = new DHTNode(DHTId.CreateRandom(), new IPEndPoint(IPAddress.Any, 0));

            table.UpdateNode(node);
        }
Example #6
0
        public void Test_CreateFindNodeQuery()
        {
            var        tid    = DHTTransactions.GetNextId();
            var        nodeId = DHTId.CreateRandom();
            DHTMessage msg    = DHTMessage.CreateFindNodeQuery(tid, nodeId, nodeId);

            Assert.IsNotNull(msg);
            Assert.AreEqual(MessageType.Query, msg.Type);
            Assert.AreEqual(QueryType.FindNode, msg.QueryType);
            // TODO: test contents
        }
        public void Test_MessageEventArgs()
        {
            IPEndPoint  peerEndPoint = new IPEndPoint(IPAddress.Any, 1111);
            var         nodeId       = DHTId.CreateRandom();
            BDictionary data         = new BDictionary();
            var         evt          = new MessageEventArgs(peerEndPoint, nodeId, data);

            Assert.IsNotNull(evt);
            Assert.AreEqual(peerEndPoint, evt.EndPoint);
            Assert.AreEqual(nodeId, evt.NodeId);
            Assert.AreEqual(data, evt.Data);
        }
Example #8
0
        public void Test_CreateAnnouncePeerQuery()
        {
            var        tid      = DHTTransactions.GetNextId();
            var        nodeId   = DHTId.CreateRandom();
            var        infoHash = DHTId.CreateRandom();
            DHTMessage msg      = DHTMessage.CreateAnnouncePeerQuery(tid, nodeId, infoHash, 1, 1, new BString("XX"));

            Assert.IsNotNull(msg);
            Assert.AreEqual(MessageType.Query, msg.Type);
            Assert.AreEqual(QueryType.AnnouncePeer, msg.QueryType);
            // TODO: test contents
        }
Example #9
0
        public void Test_CreateGetPeersResponse()
        {
            var        tid      = DHTTransactions.GetNextId();
            var        nodeId   = DHTId.CreateRandom();
            var        infoHash = DHTId.CreateRandom();
            var        peers    = new List <IDHTPeer>();
            var        nodes    = new List <DHTNode>();
            DHTMessage msg      = DHTMessage.CreateGetPeersResponse(tid, nodeId, infoHash, peers, nodes);

            Assert.IsNotNull(msg);
            Assert.AreEqual(MessageType.Response, msg.Type);
            // TODO: test contents
        }
        public void Test_ctor()
        {
            var table = new DHTRoutingTable(10);

            Assert.IsNotNull(table);

            Assert.AreEqual(0, table.Count);

            table.Clear();

            var randId = DHTId.CreateRandom();
            var nodes  = table.GetClosest(randId.Data);
        }
        public void Test_DHTNode()
        {
            var endPoint = new IPEndPoint(IPAddress.Any, 0);
            var randId   = DHTId.CreateRandom();
            var node     = new DHTNode(randId, endPoint);

            Assert.IsNotNull(node);
            Assert.AreEqual(randId.Data, node.Id.Data);
            Assert.AreEqual(endPoint, node.EndPoint);
            Assert.IsNotNullOrEmpty(node.ToString());

            Assert.AreEqual(0, node.LastAnnouncementTime);
            Assert.AreEqual(0, node.LastUpdateTime);
        }
        public void Test_FindNodes()
        {
            var table = new DHTRoutingTable(10);

            var randId = DHTId.CreateRandom();
            var nodes  = table.GetClosest(randId.Data);

            Assert.IsNotNull(nodes);
            Assert.AreEqual(0, nodes.Count);

            var node = new DHTNode(randId, new IPEndPoint(IPAddress.Any, 6881));

            table.UpdateNode(node);
            nodes = table.GetClosest(randId.Data);
            Assert.IsNotNull(nodes);
            Assert.AreEqual(1, nodes.Count);
        }
        public void Test_FindNode()
        {
            var table = new DHTRoutingTable(10);

            var randId       = DHTId.CreateRandom();
            var nodeEndPoint = new IPEndPoint(IPAddress.Any, 6881);
            var node         = new DHTNode(randId, nodeEndPoint);

            table.UpdateNode(node);

            var node2 = table.FindNode(nodeEndPoint);

            Assert.IsNotNull(node2);

            node2 = table.FindNode(null);
            Assert.IsNull(node2);
        }