| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | using System;using System.Net;using System.Net.Sockets;using Microsoft.VisualStudio.TestTools.UnitTesting;using Renci.SshNet.Abstractions;namespace Renci.SshNet.Tests.Abstractions{    [TestClass]    public class DnsAbstraction_GetHostAddresses    {        [TestMethod]        public void ShouldThrowArgumentNullExceptionWhenHostNameOrAddressIsNull()        {            const string hostNameOrAddress = null;            try            {                DnsAbstraction.GetHostAddresses(hostNameOrAddress);                Assert.Fail();            }            catch (ArgumentNullException)            {            }        }        [TestMethod]        public void ShouldThrowSocketExceptionWhenHostIsNotFound()        {            const string hostNameOrAddress = "surelydoesnotexist.OrAmIWrong";            try            {                var addresses = DnsAbstraction.GetHostAddresses(hostNameOrAddress);                Assert.Fail(addresses.ToString());            }            catch (SocketException ex)            {                Assert.IsNull(ex.InnerException);                Assert.AreEqual(SocketError.HostNotFound, ex.SocketErrorCode);            }        }        [TestMethod]        public void ShouldReturnHostAddressesOfLocalHostWhenHostNameOrAddressIsEmpty()        {            const string hostNameOrAddress = "";            var addresses = DnsAbstraction.GetHostAddresses(hostNameOrAddress);            Assert.IsNotNull(addresses);            var hostEntry = Dns.GetHostEntry(Dns.GetHostName());            Assert.IsNotNull(hostEntry);            Assert.AreEqual(hostEntry.AddressList.Length, addresses.Length);            for (var i = 0; i < hostEntry.AddressList.Length; i++)                Assert.AreEqual(hostEntry.AddressList[i], addresses[i]);        }        [TestMethod]        public void ShouldReturnSingleIpv4AddressWhenHostNameOrAddressIsValidIpv4Address()        {            const string hostNameOrAddress = "1.2.3.4";            var addresses = DnsAbstraction.GetHostAddresses(hostNameOrAddress);            Assert.IsNotNull(addresses);            Assert.AreEqual(1, addresses.Length);            Assert.AreEqual(AddressFamily.InterNetwork, addresses[0].AddressFamily);            Assert.AreEqual(IPAddress.Parse(hostNameOrAddress), addresses[0]);        }        [TestMethod]        public void ShouldReturnSingleIpv6AddressWhenHostNameOrAddressIsValidIpv6Address()        {            const string hostNameOrAddress = "2001:0:9d38:90d7:384f:2133:ab3d:d152";            var addresses = DnsAbstraction.GetHostAddresses(hostNameOrAddress);            Assert.IsNotNull(addresses);            Assert.AreEqual(1, addresses.Length);            Assert.AreEqual(AddressFamily.InterNetworkV6, addresses[0].AddressFamily);            Assert.AreEqual(IPAddress.Parse(hostNameOrAddress), addresses[0]);        }    }}
 |