host_test.go 1.6 KB

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