host_test.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package logic
  2. import (
  3. "net"
  4. "testing"
  5. "github.com/google/uuid"
  6. "github.com/gravitl/netmaker/models"
  7. "github.com/matryer/is"
  8. )
  9. func TestCheckPorts(t *testing.T) {
  10. initialize()
  11. h := models.Host{
  12. ID: uuid.New(),
  13. EndpointIP: net.ParseIP("192.168.1.1"),
  14. ListenPort: 51821,
  15. ProxyListenPort: maxPort,
  16. }
  17. testHost := models.Host{
  18. ID: uuid.New(),
  19. EndpointIP: net.ParseIP("192.168.1.1"),
  20. ListenPort: 51830,
  21. ProxyListenPort: 51730,
  22. }
  23. CreateHost(&h)
  24. t.Run("no change", func(t *testing.T) {
  25. is := is.New(t)
  26. CheckHostPorts(&testHost)
  27. is.Equal(testHost.ListenPort, 51830)
  28. is.Equal(testHost.ProxyListenPort, 51730)
  29. })
  30. t.Run("same listen port", func(t *testing.T) {
  31. is := is.New(t)
  32. testHost.ListenPort = 51821
  33. CheckHostPorts(&testHost)
  34. is.Equal(testHost.ListenPort, 51822)
  35. is.Equal(testHost.ProxyListenPort, 51730)
  36. })
  37. t.Run("same proxy port", func(t *testing.T) {
  38. is := is.New(t)
  39. testHost.ProxyListenPort = 65535
  40. CheckHostPorts(&testHost)
  41. is.Equal(testHost.ListenPort, 51822)
  42. is.Equal(testHost.ProxyListenPort, minPort)
  43. })
  44. t.Run("listenport equals proxy port", func(t *testing.T) {
  45. is := is.New(t)
  46. testHost.ListenPort = maxPort
  47. CheckHostPorts(&testHost)
  48. is.Equal(testHost.ListenPort, minPort)
  49. is.Equal(testHost.ProxyListenPort, minPort+1)
  50. })
  51. t.Run("proxyport equals listenport", func(t *testing.T) {
  52. is := is.New(t)
  53. testHost.ProxyListenPort = 51821
  54. CheckHostPorts(&testHost)
  55. is.Equal(testHost.ListenPort, minPort)
  56. is.Equal(testHost.ProxyListenPort, 51822)
  57. })
  58. }