host_test.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package logic
  2. import (
  3. "context"
  4. "net"
  5. "testing"
  6. "github.com/google/uuid"
  7. "github.com/gravitl/netmaker/database"
  8. "github.com/gravitl/netmaker/models"
  9. "github.com/matryer/is"
  10. )
  11. func TestCheckPorts(t *testing.T) {
  12. database.InitializeDatabase()
  13. defer database.CloseDB()
  14. peerUpdate := make(chan *models.Node)
  15. go ManageZombies(context.Background(), peerUpdate)
  16. go func() {
  17. for _ = range peerUpdate {
  18. //do nothing
  19. }
  20. }()
  21. h := models.Host{
  22. ID: uuid.New(),
  23. EndpointIP: net.ParseIP("192.168.1.1"),
  24. ListenPort: 51821,
  25. ProxyListenPort: maxPort,
  26. }
  27. testHost := models.Host{
  28. ID: uuid.New(),
  29. EndpointIP: net.ParseIP("192.168.1.1"),
  30. ListenPort: 51830,
  31. ProxyListenPort: 51730,
  32. }
  33. CreateHost(&h)
  34. t.Run("no change", func(t *testing.T) {
  35. is := is.New(t)
  36. CheckHostPorts(&testHost)
  37. is.Equal(testHost.ListenPort, 51830)
  38. is.Equal(testHost.ProxyListenPort, 51730)
  39. })
  40. t.Run("same listen port", func(t *testing.T) {
  41. is := is.New(t)
  42. testHost.ListenPort = 51821
  43. CheckHostPorts(&testHost)
  44. is.Equal(testHost.ListenPort, 51822)
  45. is.Equal(testHost.ProxyListenPort, 51730)
  46. })
  47. t.Run("same proxy port", func(t *testing.T) {
  48. is := is.New(t)
  49. testHost.ProxyListenPort = 65535
  50. CheckHostPorts(&testHost)
  51. is.Equal(testHost.ListenPort, 51822)
  52. is.Equal(testHost.ProxyListenPort, minPort)
  53. })
  54. t.Run("listenport equals proxy port", func(t *testing.T) {
  55. is := is.New(t)
  56. testHost.ListenPort = maxPort
  57. CheckHostPorts(&testHost)
  58. is.Equal(testHost.ListenPort, minPort)
  59. is.Equal(testHost.ProxyListenPort, minPort+1)
  60. })
  61. t.Run("proxyport equals listenport", func(t *testing.T) {
  62. is := is.New(t)
  63. testHost.ProxyListenPort = 51821
  64. CheckHostPorts(&testHost)
  65. is.Equal(testHost.ListenPort, minPort)
  66. is.Equal(testHost.ProxyListenPort, 51822)
  67. })
  68. }