HostnameEndpointTest.cs 2.7 KB

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