Beispiel #1
0
        public void TestCheckOpenPorts(bool portAccessible, bool portInResult, string message)
        {
            _moqDataServiceNetwork.Setup(a => a.PortAccessible(It.IsAny <int>(), It.IsAny <string>())).Returns(portAccessible);
            _moqDataServiceOpenPort.Setup(a => a.Create(It.IsAny <EntityOpenPort>())).Returns(Task.FromResult(default(object)));
            var toCheckPorts = new int[] { 80 };

            _iBusinessServiceOpenPort = new BusinessServiceOpenPort(_moqDataServiceNetwork.Object, _moqDataServiceOpenPort.Object, toCheckPorts);

            var domainIpAddress  = new DomainIpAddress();
            var notInResultPorts = toCheckPorts.Except(_iBusinessServiceOpenPort.CheckOpenPorts(domainIpAddress));

            Assert.True((notInResultPorts.Count() == 0) == portInResult, message);
        }
        public List <int> CheckOpenPorts(DomainIpAddress domainIpAddress)
        {
            var openPorts = new List <int>();

            Parallel.ForEach(_toCheckPorts, async toCheckPort =>
            {
                using (TcpClient tcpClient = new TcpClient())
                {
                    if (_iDataServiceNetwork.PortAccessible(toCheckPort, domainIpAddress.IpAddress))
                    {
                        var entityOpenPort = new EntityOpenPort
                        {
                            DomainIpAddressId = domainIpAddress.DomainIpAddressId,
                            Port = toCheckPort
                        };
                        await _iDataServiceOpenPort.Create(entityOpenPort);
                        openPorts.Add(toCheckPort);
                    }
                }
            });
            return(openPorts);
        }