IPAddressTest.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. //
  2. // IntegerFormatterTest.cs - NUnit Test Cases for System.Net.IPAddress
  3. //
  4. // Author:
  5. // Gonzalo Paniagua Javier ([email protected])
  6. //
  7. // (C) Ximian, Inc. http://www.ximian.com
  8. //
  9. using NUnit.Framework;
  10. using System;
  11. using System.Net;
  12. using System.Runtime.InteropServices;
  13. namespace MonoTests.System.Net
  14. {
  15. public class IPAddressTest : TestCase
  16. {
  17. public IPAddressTest () :
  18. base ("[MonoTests.System.Net.IPAddressTest]") {}
  19. public IPAddressTest (string name) : base (name) {}
  20. protected override void SetUp () {}
  21. protected override void TearDown() {}
  22. public static ITest Suite {
  23. get {
  24. return new TestSuite(typeof(IPAddressTest));
  25. }
  26. }
  27. public void TestPublicFields ()
  28. {
  29. AssertEquals ("Any", IPAddress.Any.Address, (long) 0);
  30. AssertEquals ("Broadcast", IPAddress.Broadcast.Address, (long) 0xFFFFFFFF);
  31. long loopback = IPAddress.HostToNetworkOrder (0x7f000001);
  32. AssertEquals ("Loopback", IPAddress.Loopback.Address, loopback);
  33. AssertEquals ("None", IPAddress.None.Address, (long) 0xFFFFFFFF);
  34. }
  35. public void TestToString ()
  36. {
  37. IPAddress ip = IPAddress.Parse ("192.168.1.1");
  38. AssertEquals ("ToString #1", "192.168.1.1", ip.ToString ());
  39. AssertEquals ("ToString #2", "0.0.0.0", IPAddress.Any.ToString ());
  40. AssertEquals ("ToString #3", "255.255.255.255", IPAddress.Broadcast.ToString ());
  41. AssertEquals ("ToString #4", "127.0.0.1", IPAddress.Loopback.ToString ());
  42. AssertEquals ("ToString #5", "255.255.255.255", IPAddress.None.ToString ());
  43. }
  44. public void TestParseOk ()
  45. {
  46. IPAddress ip = IPAddress.Parse ("192.168.1.1");
  47. Assert ("Parse #1", ip.ToString () == "192.168.1.1");
  48. ip = IPAddress.Parse ("0.0.0.0");
  49. AssertEquals ("Parse #2", ip, IPAddress.Any);
  50. ip = IPAddress.Parse ("255.255.255.255");
  51. AssertEquals ("Parse #3", ip, IPAddress.Broadcast);
  52. AssertEquals ("Parse #4", ip, IPAddress.None);
  53. ip = IPAddress.Parse ("127.0.0.1");
  54. Assert ("Parse #5", IPAddress.IsLoopback (ip));
  55. ip = IPAddress.Parse ("12.1.1.3 ");
  56. AssertEquals ("Parse #6", IPAddress.Parse ("12.1.1.3"), ip);
  57. // These have a strange behavior !?
  58. ip = IPAddress.Parse (" 12.1.1.1");
  59. AssertEquals ("Parse #7", IPAddress.Parse ("0.0.0.0"), ip);
  60. ip = IPAddress.Parse ("12.1 .1.2");
  61. AssertEquals ("Parse #8", IPAddress.Parse ("12.0.0.1"), ip);
  62. ip = IPAddress.Parse (".1.1.6");
  63. AssertEquals ("Parse #9", IPAddress.Parse ("0.1.1.6"), ip);
  64. ip = IPAddress.Parse ("12.1.7");
  65. AssertEquals ("Parse #10", IPAddress.Parse ("12.1.0.7"), ip);
  66. ip = IPAddress.Parse ("12.1.8. ");
  67. AssertEquals ("Parse #10", IPAddress.Parse ("12.1.8.0"), ip);
  68. }
  69. public void TestParseWrong ()
  70. {
  71. bool failure = false;
  72. IPAddress ip = IPAddress.None;
  73. failure = false;
  74. try {
  75. ip = IPAddress.Parse ("12.+1.1.4");
  76. Fail("Should raise a FormatException #1");
  77. } catch (FormatException) {
  78. failure = true;
  79. }
  80. Assert ("ParseWrong #1", failure);
  81. failure = false;
  82. try {
  83. ip = IPAddress.Parse ("12.1.-1.5");
  84. Fail("Should raise a FormatException #2");
  85. } catch (FormatException) {
  86. failure = true;
  87. }
  88. Assert ("ParseWrong #2", failure);
  89. failure = false;
  90. try {
  91. ip = IPAddress.Parse ("257.1.1.9");
  92. Fail("Should raise a FormatException #3");
  93. } catch (FormatException) {
  94. failure = true;
  95. }
  96. Assert ("ParseWrong #3", failure);
  97. failure = false;
  98. try {
  99. ip = IPAddress.Parse (null);
  100. Fail("Should raise a ArgumentNullException #1");
  101. } catch (ArgumentNullException) {
  102. failure = true;
  103. }
  104. Assert ("ParseWrong #4", failure);
  105. }
  106. public void TestNetworkHost ()
  107. {
  108. long [] tested = new long [] { 0, 1, 1, 1};
  109. long [] expectedLE = new long [] {0, 256, 16777216, ((long) 1) << 56 };
  110. long [] expected;
  111. expected = BitConverter.IsLittleEndian ? expectedLE : tested;
  112. short short0 = IPAddress.NetworkToHostOrder ((short) tested [0]);
  113. AssertEquals ("NetworkToHostOrder #1", short0, (short) expected [0]);
  114. short0 = IPAddress.HostToNetworkOrder (short0);
  115. AssertEquals ("HostToNetworkOrder #1", short0, (short) tested [0]);
  116. int int0 = IPAddress.NetworkToHostOrder ((int) tested [0]);
  117. AssertEquals ("NetworkToHostOrder #2", int0, (int) expected [0]);
  118. int0 = IPAddress.HostToNetworkOrder (int0);
  119. AssertEquals ("HostToNetworkOrder #2", int0, (int) tested [0]);
  120. long long0 = IPAddress.NetworkToHostOrder (tested [0]);
  121. AssertEquals ("NetworkToHostOrder #3", long0, expected [0]);
  122. long0 = IPAddress.HostToNetworkOrder (long0);
  123. AssertEquals ("HostToNetworkOrder #3", long0, tested [0]);
  124. short0 = IPAddress.NetworkToHostOrder ((short) tested [1]);
  125. AssertEquals ("NetworkToHostOrder #4", short0, (short) expected [1]);
  126. short0 = IPAddress.HostToNetworkOrder (short0);
  127. AssertEquals ("HostToNetworkOrder #4", short0, (short) tested [1]);
  128. int0 = IPAddress.NetworkToHostOrder ((int) tested [2]);
  129. AssertEquals ("NetworkToHostOrder #5", int0, (int) expected [2]);
  130. int0 = IPAddress.HostToNetworkOrder (int0);
  131. AssertEquals ("HostToNetworkOrder #5", int0, (int) tested [2]);
  132. long0 = IPAddress.NetworkToHostOrder (tested [3]);
  133. AssertEquals ("NetworkToHostOrder #6", long0, expected [3]);
  134. long0 = IPAddress.HostToNetworkOrder (long0);
  135. AssertEquals ("HostToNetworkOrder #6", long0, tested [3]);
  136. }
  137. }
  138. }