HostnameEndpointTest.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. using STUN;
  3. namespace UnitTest
  4. {
  5. [TestClass]
  6. public class HostnameEndpointTest
  7. {
  8. [TestMethod]
  9. [DataRow(@"www.google.com", ushort.MinValue)]
  10. [DataRow(@"1.1.1.1", (ushort)1)]
  11. [DataRow(@"[2001:db8:1234:5678:11:2233:4455:6677]", (ushort)1919)]
  12. public void IsTrue(string host, ushort port)
  13. {
  14. var str = $@"{host}:{port}";
  15. Assert.IsTrue(StunServer.TryParse(str, out var server));
  16. Assert.IsNotNull(server);
  17. Assert.AreEqual(host, server.Hostname);
  18. Assert.AreEqual(port, server.Port);
  19. Assert.AreEqual(str, server.ToString());
  20. }
  21. [TestMethod]
  22. [DataRow(@"")]
  23. [DataRow(@"www.google.com:114514")]
  24. [DataRow(@"/dw.[/[:114")]
  25. [DataRow(@"2001:db8:1234:5678:11:2233:4455:6677:65535")]
  26. public void IsFalse(string str)
  27. {
  28. Assert.IsFalse(StunServer.TryParse(str, out var server));
  29. Assert.IsNull(server);
  30. }
  31. [TestMethod]
  32. [DataRow(@"www.google.com")]
  33. [DataRow(@"1.1.1.1")]
  34. [DataRow(@"2001:db8:1234:5678:11:2233:4455:6677")]
  35. [DataRow(@"[2001:db8:1234:5678:11:2233:4455:6677]")]
  36. [DataRow(@"2001:db8:1234:5678:11:2233:4455:db8")]
  37. public void TestDefaultPort(string str)
  38. {
  39. Assert.IsTrue(StunServer.TryParse(str, out var server));
  40. Assert.IsNotNull(server);
  41. Assert.AreEqual(str, server.Hostname);
  42. Assert.AreEqual(3478, server.Port);
  43. }
  44. [TestMethod]
  45. [DataRow(@"stun.syncthing.net:114", @"stun.syncthing.net:114")]
  46. [DataRow(@"stun.syncthing.net:3478", @"stun.syncthing.net")]
  47. [DataRow(@"[2001:db8:1234:5678:11:2233:4455:6677]", @"[2001:db8:1234:5678:11:2233:4455:6677]")]
  48. [DataRow(@"[2001:db8:1234:5678:11:2233:4455:6677]:3478", @"[2001:db8:1234:5678:11:2233:4455:6677]")]
  49. [DataRow(@"1.1.1.1:3478", @"1.1.1.1")]
  50. [DataRow(@"1.1.1.1:1919", @"1.1.1.1:1919")]
  51. public void ToString(string str, string expected)
  52. {
  53. Assert.IsTrue(StunServer.TryParse(str, out var server));
  54. Assert.IsNotNull(server);
  55. Assert.AreEqual(expected, server.ToString());
  56. }
  57. [TestMethod]
  58. public void DefaultServer()
  59. {
  60. var server = new StunServer();
  61. Assert.AreEqual(@"stun.syncthing.net", server.Hostname);
  62. Assert.AreEqual(3478, server.Port);
  63. }
  64. [TestMethod]
  65. [DataRow(@"stun.syncthing.net:114", @"stun.syncthing.net:114")]
  66. [DataRow(@"stun.syncthing.net:3478", @"stun.syncthing.net:3478")]
  67. [DataRow(@"[2001:db8:1234:5678:11:2233:4455:6677]", @"[2001:db8:1234:5678:11:2233:4455:6677]:0")]
  68. [DataRow(@"[2001:db8:1234:5678:11:2233:4455:6677]:3478", @"[2001:db8:1234:5678:11:2233:4455:6677]:3478")]
  69. [DataRow(@"1.1.1.1:3478", @"1.1.1.1:3478")]
  70. [DataRow(@"1.1.1.1:1919", @"1.1.1.1:1919")]
  71. public void HostnameEndpointToString(string str, string expected)
  72. {
  73. Assert.IsTrue(HostnameEndpoint.TryParse(str, out var server));
  74. Assert.IsNotNull(server);
  75. Assert.AreEqual(expected, server.ToString());
  76. }
  77. }
  78. }