IPAddressTest.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  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 (BitConverter.IsLittleEndian ?
  32. 0x7f000001 :
  33. 0x0100007f);
  34. AssertEquals ("Loopback", IPAddress.Loopback.Address, loopback);
  35. AssertEquals ("None", IPAddress.None.Address, (long) 0xFFFFFFFF);
  36. }
  37. public void TestToString ()
  38. {
  39. IPAddress ip = IPAddress.Parse ("192.168.1.1");
  40. AssertEquals ("ToString #1", "192.168.1.1", ip.ToString ());
  41. AssertEquals ("ToString #2", "0.0.0.0", IPAddress.Any.ToString ());
  42. AssertEquals ("ToString #3", "255.255.255.255", IPAddress.Broadcast.ToString ());
  43. AssertEquals ("ToString #4", "127.0.0.1", IPAddress.Loopback.ToString ());
  44. AssertEquals ("ToString #5", "255.255.255.255", IPAddress.None.ToString ());
  45. }
  46. public void TestParseOk ()
  47. {
  48. IPAddress ip = IPAddress.Parse ("192.168.1.1");
  49. Assert ("Parse #1", ip.ToString () == "192.168.1.1");
  50. ip = IPAddress.Parse ("0.0.0.0");
  51. AssertEquals ("Parse #2", ip, IPAddress.Any);
  52. ip = IPAddress.Parse ("255.255.255.255");
  53. AssertEquals ("Parse #3", ip, IPAddress.Broadcast);
  54. AssertEquals ("Parse #4", ip, IPAddress.None);
  55. ip = IPAddress.Parse ("127.0.0.1");
  56. AssertEquals ("Parse #5", IPAddress.IsLoopback (ip), true);
  57. ip = IPAddress.Parse ("12.1.1.3 ");
  58. AssertEquals ("Parse #6", IPAddress.Parse ("12.1.1.3"), ip);
  59. // These have a strange behavior !?
  60. ip = IPAddress.Parse (" 12.1.1.1");
  61. AssertEquals ("Parse #7", IPAddress.Parse ("0.0.0.0"), ip);
  62. ip = IPAddress.Parse ("12.1 .1.2");
  63. AssertEquals ("Parse #8", IPAddress.Parse ("12.0.0.1"), ip);
  64. ip = IPAddress.Parse (".1.1.6");
  65. AssertEquals ("Parse #9", IPAddress.Parse ("0.1.1.6"), ip);
  66. ip = IPAddress.Parse ("12.1.7");
  67. AssertEquals ("Parse #10", IPAddress.Parse ("12.1.0.7"), ip);
  68. ip = IPAddress.Parse ("12.1.8. ");
  69. AssertEquals ("Parse #10", IPAddress.Parse ("12.1.8.0"), ip);
  70. }
  71. public void TestParseWrong ()
  72. {
  73. bool failure = false;
  74. IPAddress ip = IPAddress.None;
  75. failure = false;
  76. try {
  77. ip = IPAddress.Parse ("12.+1.1.4");
  78. Fail("Should raise a FormatException #1");
  79. } catch (FormatException) {
  80. failure = true;
  81. }
  82. Assert ("ParseWrong #1", failure);
  83. failure = false;
  84. try {
  85. ip = IPAddress.Parse ("12.1.-1.5");
  86. Fail("Should raise a FormatException #2");
  87. } catch (FormatException) {
  88. failure = true;
  89. }
  90. Assert ("ParseWrong #2", failure);
  91. failure = false;
  92. try {
  93. ip = IPAddress.Parse ("257.1.1.9");
  94. Fail("Should raise a OverFlowException #3");
  95. } catch (OverflowException) {
  96. failure = true;
  97. }
  98. Assert ("ParseWrong #3", failure);
  99. failure = false;
  100. try {
  101. ip = IPAddress.Parse (null);
  102. Fail("Should raise a ArgumentNullException #1");
  103. } catch (ArgumentNullException) {
  104. failure = true;
  105. }
  106. Assert ("ParseWrong #4", failure);
  107. }
  108. public void TestNetworkHost ()
  109. {
  110. long [] tested = new long [] { 0, 1, 1, 1};
  111. long [] expectedLE = new long [] {0, 256, 16777216, 72057594037927936 };
  112. long [] expected;
  113. expected = BitConverter.IsLittleEndian ? expectedLE : tested;
  114. short short0 = IPAddress.NetworkToHostOrder ((short) tested [0]);
  115. AssertEquals ("NetworkToHostOrder #1", short0, (short) expected [0]);
  116. short0 = IPAddress.HostToNetworkOrder (short0);
  117. AssertEquals ("HostToNetworkOrder #1", short0, (short) tested [0]);
  118. int int0 = IPAddress.NetworkToHostOrder ((int) tested [0]);
  119. AssertEquals ("NetworkToHostOrder #2", int0, (int) expected [0]);
  120. int0 = IPAddress.HostToNetworkOrder (int0);
  121. AssertEquals ("HostToNetworkOrder #2", int0, (int) tested [0]);
  122. long long0 = IPAddress.NetworkToHostOrder (tested [0]);
  123. AssertEquals ("NetworkToHostOrder #3", long0, expected [0]);
  124. long0 = IPAddress.HostToNetworkOrder (long0);
  125. AssertEquals ("HostToNetworkOrder #3", long0, tested [0]);
  126. short0 = IPAddress.NetworkToHostOrder ((short) tested [1]);
  127. AssertEquals ("NetworkToHostOrder #4", short0, (short) expected [1]);
  128. short0 = IPAddress.HostToNetworkOrder (short0);
  129. AssertEquals ("HostToNetworkOrder #4", short0, (short) tested [1]);
  130. int0 = IPAddress.NetworkToHostOrder ((int) tested [2]);
  131. AssertEquals ("NetworkToHostOrder #5", int0, (int) expected [2]);
  132. int0 = IPAddress.HostToNetworkOrder (int0);
  133. AssertEquals ("HostToNetworkOrder #5", int0, (int) tested [2]);
  134. long0 = IPAddress.NetworkToHostOrder (tested [3]);
  135. AssertEquals ("NetworkToHostOrder #6", long0, expected [3]);
  136. long0 = IPAddress.HostToNetworkOrder (long0);
  137. AssertEquals ("HostToNetworkOrder #6", long0, tested [3]);
  138. }
  139. }
  140. }