|
|
@@ -6,10 +6,10 @@
|
|
|
//
|
|
|
// This test assumes the following:
|
|
|
// 1) The following Internet sites exist:
|
|
|
-// www.go-mono.com with IP address 129.250.184.233
|
|
|
-// info.diku.dk with IP address 130.225.96.4
|
|
|
+// www.go-mono.com with IP address 129.250.184.233
|
|
|
+// info.diku.dk with IP address 130.225.96.4
|
|
|
// 2) The following DNS name does not exist:
|
|
|
-// www.hopefullydoesnotexist.dk
|
|
|
+// www.hopefullydoesnotexist.dk
|
|
|
//
|
|
|
|
|
|
using NUnit.Framework;
|
|
|
@@ -20,147 +20,140 @@ using System.Threading;
|
|
|
using System.Collections;
|
|
|
|
|
|
public class DnsTest: TestCase {
|
|
|
-
|
|
|
- private String site1Name = "www.go-mono.com",
|
|
|
- site1Dot = "129.250.184.233",
|
|
|
- site2Name = "info.diku.dk",
|
|
|
- site2Dot = "130.225.96.4",
|
|
|
- noneExistingSite = "www.hopefullydoesnotexist.dk";
|
|
|
- private uint site1IP = 2180692201, site2IP = 2195808260; // Big-Endian
|
|
|
-
|
|
|
- public DnsTest(String name): base(name) {
|
|
|
- }
|
|
|
+
|
|
|
+ private String site1Name = "www.go-mono.com",
|
|
|
+ site1Dot = "129.250.184.233",
|
|
|
+ site2Name = "info.diku.dk",
|
|
|
+ site2Dot = "130.225.96.4",
|
|
|
+ noneExistingSite = "www.hopefullydoesnotexist.dk";
|
|
|
+ private uint site1IP = 2180692201, site2IP = 2195808260; // Big-Endian
|
|
|
+
|
|
|
+ public DnsTest(String name): base(name) {
|
|
|
+ }
|
|
|
|
|
|
- public static ITest Suite {
|
|
|
- get { return new TestSuite(typeof(DnsTest)); }
|
|
|
- }
|
|
|
-
|
|
|
- private void Callback1(IAsyncResult ar) {
|
|
|
- IPHostEntry h;
|
|
|
- h = System.Net.Dns.EndGetHostByName(ar);
|
|
|
- SubTestValidIPHostEntry(h);
|
|
|
- }
|
|
|
+ public static ITest Suite {
|
|
|
+ get { return new TestSuite(typeof(DnsTest)); }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void Callback(IAsyncResult ar) {
|
|
|
+ IPHostEntry h;
|
|
|
+ h = System.Net.Dns.EndGetHostByName(ar);
|
|
|
+ SubTestValidIPHostEntry(h);
|
|
|
+ }
|
|
|
|
|
|
- public void TestAsynGetHostByName(){
|
|
|
- IAsyncResult r;
|
|
|
- r = System.Net.Dns.BeginGetHostByName(site1Name, new AsyncCallback(Callback1), null);
|
|
|
- }
|
|
|
-
|
|
|
- private void Callback2(IAsyncResult ar) {
|
|
|
- IPHostEntry h;
|
|
|
- h = System.Net.Dns.EndResolve(ar);
|
|
|
- // TODO
|
|
|
- }
|
|
|
-
|
|
|
- public void TestAsyncResolve() {
|
|
|
-/* IAsyncResult r;
|
|
|
- r = System.Net.Dns.BeginResolve(site1Name, new AsyncCallback(Callback2), null);
|
|
|
-*/ // TODO
|
|
|
- }
|
|
|
-
|
|
|
- public void TestGetHostName() {
|
|
|
- string hostName = System.Net.Dns.GetHostName();
|
|
|
- Assert(hostName != null);
|
|
|
- }
|
|
|
-
|
|
|
- private void SubTestGetHostByName(string siteName, string siteDot) {
|
|
|
- IPHostEntry h = System.Net.Dns.GetHostByName(siteName);
|
|
|
- SubTestValidIPHostEntry(h);
|
|
|
- Assert(h.HostName.Equals(siteName));
|
|
|
- Assert(h.AddressList[0].ToString() == siteDot);
|
|
|
- }
|
|
|
-
|
|
|
- public void TestGetHostByName() {
|
|
|
- SubTestGetHostByName(site1Name, site1Dot);
|
|
|
- SubTestGetHostByName(site2Name, site2Dot);
|
|
|
- try {
|
|
|
- System.Net.Dns.GetHostByName(noneExistingSite);
|
|
|
- Fail("Should raise a SocketException (assuming that '" + noneExistingSite + "' does not exist)");
|
|
|
- } catch (SocketException) {
|
|
|
- }
|
|
|
- try {
|
|
|
- System.Net.Dns.GetHostByName(null);
|
|
|
- Fail("Should raise an ArgumentNullException");
|
|
|
- } catch (ArgumentNullException) {
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private void SubTestGetHostByAddressStringFormatException(string addr) {
|
|
|
- try {
|
|
|
- System.Net.Dns.GetHostByAddress(addr);
|
|
|
- Fail("Should raise a FormatException");
|
|
|
- } catch (FormatException) {
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private void SubTestGetHostByAddressString(string addr) {
|
|
|
- IPHostEntry h = System.Net.Dns.GetHostByAddress(addr);
|
|
|
- SubTestValidIPHostEntry(h);
|
|
|
- }
|
|
|
-
|
|
|
- public void TestGetHostByAddressString() {
|
|
|
- try {
|
|
|
- String addr = null;
|
|
|
- System.Net.Dns.GetHostByAddress(addr);
|
|
|
- Fail("Should raise an ArgumentNullException");
|
|
|
- } catch (ArgumentNullException) {
|
|
|
- }
|
|
|
- SubTestGetHostByAddressStringFormatException("123.255.23");
|
|
|
- SubTestGetHostByAddressStringFormatException("123.256.34.10");
|
|
|
- SubTestGetHostByAddressStringFormatException("not an IP address");
|
|
|
- SubTestGetHostByAddressString(site1Dot);
|
|
|
- SubTestGetHostByAddressString(site2Dot);
|
|
|
- }
|
|
|
-
|
|
|
- private void SubTestGetHostByAddressIPAddress(IPAddress addr) {
|
|
|
- IPHostEntry h = System.Net.Dns.GetHostByAddress(addr);
|
|
|
- SubTestValidIPHostEntry(h);
|
|
|
- Assert(h.AddressList[0].ToString() == addr.ToString());
|
|
|
- }
|
|
|
-
|
|
|
- public void TestGetHostByAddressIPAddress() {
|
|
|
- try {
|
|
|
- IPAddress addr = null;
|
|
|
- System.Net.Dns.GetHostByAddress(addr);
|
|
|
- Fail("Should raise an ArgumentNullException");
|
|
|
- } catch (ArgumentNullException) {
|
|
|
- }
|
|
|
- SubTestGetHostByAddressIPAddress(new IPAddress(IPAddress.NetworkToHostOrder((int)site1IP)));
|
|
|
- SubTestGetHostByAddressIPAddress(new IPAddress(IPAddress.NetworkToHostOrder((int)site2IP)));
|
|
|
- }
|
|
|
-
|
|
|
- private void SubTestResolve(string addr) {
|
|
|
- IPHostEntry h = System.Net.Dns.Resolve(addr);
|
|
|
- SubTestValidIPHostEntry(h);
|
|
|
- }
|
|
|
-
|
|
|
- public void TestResolve() {
|
|
|
- SubTestResolve(site1Name);
|
|
|
- SubTestResolve(site2Name);
|
|
|
- SubTestResolve(site1Dot);
|
|
|
- SubTestResolve(site2Dot);
|
|
|
- }
|
|
|
-
|
|
|
- private void SubTestValidIPHostEntry(IPHostEntry h) {
|
|
|
- Assert(h.HostName != null);
|
|
|
- Assert(h.AddressList != null);
|
|
|
- Assert(h.AddressList.Length > 0);
|
|
|
- }
|
|
|
-
|
|
|
- private static void printIPHostEntry(IPHostEntry h)
|
|
|
- {
|
|
|
- Console.WriteLine("----------------------------------------------------");
|
|
|
- Console.WriteLine("Host name:");
|
|
|
- Console.WriteLine(h.HostName);
|
|
|
- Console.WriteLine("IP addresses:");
|
|
|
- IPAddress[] list = h.AddressList;
|
|
|
- for(int i = 0; i < list.Length; ++i)
|
|
|
- Console.WriteLine(list[i]);
|
|
|
- Console.WriteLine("Aliases:");
|
|
|
- string[] aliases = h.Aliases;
|
|
|
- for(int i = 0; i < aliases.Length; ++i)
|
|
|
- Console.WriteLine(aliases[i]);
|
|
|
- Console.WriteLine("----------------------------------------------------");
|
|
|
- }
|
|
|
+ public void TestAsyncGetHostByName(){
|
|
|
+ IAsyncResult r;
|
|
|
+ r = System.Net.Dns.BeginGetHostByName(site1Name, new AsyncCallback(Callback), null);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void TestAsyncResolve() {
|
|
|
+ IAsyncResult r;
|
|
|
+ r = System.Net.Dns.BeginResolve(site1Name, new AsyncCallback(Callback), null);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void TestGetHostName() {
|
|
|
+ string hostName = System.Net.Dns.GetHostName();
|
|
|
+ Assert(hostName != null);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void SubTestGetHostByName(string siteName, string siteDot) {
|
|
|
+ IPHostEntry h = System.Net.Dns.GetHostByName(siteName);
|
|
|
+ SubTestValidIPHostEntry(h);
|
|
|
+ Assert(h.HostName.Equals(siteName));
|
|
|
+ Assert(h.AddressList[0].ToString() == siteDot);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void TestGetHostByName() {
|
|
|
+ SubTestGetHostByName(site1Name, site1Dot);
|
|
|
+ SubTestGetHostByName(site2Name, site2Dot);
|
|
|
+ try {
|
|
|
+ System.Net.Dns.GetHostByName(noneExistingSite);
|
|
|
+ Fail("Should raise a SocketException (assuming that '" + noneExistingSite + "' does not exist)");
|
|
|
+ } catch (SocketException) {
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ System.Net.Dns.GetHostByName(null);
|
|
|
+ Fail("Should raise an ArgumentNullException");
|
|
|
+ } catch (ArgumentNullException) {
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void SubTestGetHostByAddressStringFormatException(string addr) {
|
|
|
+ try {
|
|
|
+ System.Net.Dns.GetHostByAddress(addr);
|
|
|
+ Fail("Should raise a FormatException");
|
|
|
+ } catch (FormatException) {
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void SubTestGetHostByAddressString(string addr) {
|
|
|
+ IPHostEntry h = System.Net.Dns.GetHostByAddress(addr);
|
|
|
+ SubTestValidIPHostEntry(h);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void TestGetHostByAddressString() {
|
|
|
+ try {
|
|
|
+ String addr = null;
|
|
|
+ System.Net.Dns.GetHostByAddress(addr);
|
|
|
+ Fail("Should raise an ArgumentNullException");
|
|
|
+ } catch (ArgumentNullException) {
|
|
|
+ }
|
|
|
+ SubTestGetHostByAddressStringFormatException("123.255.23");
|
|
|
+ SubTestGetHostByAddressStringFormatException("123.256.34.10");
|
|
|
+ SubTestGetHostByAddressStringFormatException("not an IP address");
|
|
|
+ SubTestGetHostByAddressString(site1Dot);
|
|
|
+ SubTestGetHostByAddressString(site2Dot);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void SubTestGetHostByAddressIPAddress(IPAddress addr) {
|
|
|
+ IPHostEntry h = System.Net.Dns.GetHostByAddress(addr);
|
|
|
+ SubTestValidIPHostEntry(h);
|
|
|
+ Assert(h.AddressList[0].ToString() == addr.ToString());
|
|
|
+ }
|
|
|
+
|
|
|
+ public void TestGetHostByAddressIPAddress() {
|
|
|
+ try {
|
|
|
+ IPAddress addr = null;
|
|
|
+ System.Net.Dns.GetHostByAddress(addr);
|
|
|
+ Fail("Should raise an ArgumentNullException");
|
|
|
+ } catch (ArgumentNullException) {
|
|
|
+ }
|
|
|
+ SubTestGetHostByAddressIPAddress(new IPAddress(IPAddress.NetworkToHostOrder((int)site1IP)));
|
|
|
+ SubTestGetHostByAddressIPAddress(new IPAddress(IPAddress.NetworkToHostOrder((int)site2IP)));
|
|
|
+ }
|
|
|
+
|
|
|
+ private void SubTestResolve(string addr) {
|
|
|
+ IPHostEntry h = System.Net.Dns.Resolve(addr);
|
|
|
+ SubTestValidIPHostEntry(h);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void TestResolve() {
|
|
|
+ SubTestResolve(site1Name);
|
|
|
+ SubTestResolve(site2Name);
|
|
|
+ SubTestResolve(site1Dot);
|
|
|
+ SubTestResolve(site2Dot);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void SubTestValidIPHostEntry(IPHostEntry h) {
|
|
|
+ Assert(h.HostName != null);
|
|
|
+ Assert(h.AddressList != null);
|
|
|
+ Assert(h.AddressList.Length > 0);
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void printIPHostEntry(IPHostEntry h)
|
|
|
+ {
|
|
|
+ Console.WriteLine("----------------------------------------------------");
|
|
|
+ Console.WriteLine("Host name:");
|
|
|
+ Console.WriteLine(h.HostName);
|
|
|
+ Console.WriteLine("IP addresses:");
|
|
|
+ IPAddress[] list = h.AddressList;
|
|
|
+ for(int i = 0; i < list.Length; ++i)
|
|
|
+ Console.WriteLine(list[i]);
|
|
|
+ Console.WriteLine("Aliases:");
|
|
|
+ string[] aliases = h.Aliases;
|
|
|
+ for(int i = 0; i < aliases.Length; ++i)
|
|
|
+ Console.WriteLine(aliases[i]);
|
|
|
+ Console.WriteLine("----------------------------------------------------");
|
|
|
+ }
|
|
|
}
|
|
|
|