host_test.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. defer database.CloseDB()
  13. h := models.Host{
  14. ID: uuid.New(),
  15. EndpointIP: net.ParseIP("192.168.1.1"),
  16. ListenPort: 51821,
  17. ProxyListenPort: maxPort,
  18. }
  19. testHost := models.Host{
  20. ID: uuid.New(),
  21. EndpointIP: net.ParseIP("192.168.1.1"),
  22. ListenPort: 51830,
  23. ProxyListenPort: 51730,
  24. }
  25. CreateHost(&h)
  26. t.Run("no change", func(t *testing.T) {
  27. is := is.New(t)
  28. CheckHostPorts(&testHost)
  29. is.Equal(testHost.ListenPort, 51830)
  30. is.Equal(testHost.ProxyListenPort, 51730)
  31. })
  32. t.Run("same listen port", func(t *testing.T) {
  33. is := is.New(t)
  34. testHost.ListenPort = 51821
  35. CheckHostPorts(&testHost)
  36. is.Equal(testHost.ListenPort, 51822)
  37. is.Equal(testHost.ProxyListenPort, 51730)
  38. })
  39. t.Run("same proxy port", func(t *testing.T) {
  40. is := is.New(t)
  41. testHost.ProxyListenPort = 65535
  42. CheckHostPorts(&testHost)
  43. is.Equal(testHost.ListenPort, 51822)
  44. is.Equal(testHost.ProxyListenPort, minPort)
  45. })
  46. t.Run("listenport equals proxy port", func(t *testing.T) {
  47. is := is.New(t)
  48. testHost.ListenPort = maxPort
  49. CheckHostPorts(&testHost)
  50. is.Equal(testHost.ListenPort, minPort)
  51. is.Equal(testHost.ProxyListenPort, minPort+1)
  52. })
  53. t.Run("proxyport equals listenport", func(t *testing.T) {
  54. is := is.New(t)
  55. testHost.ProxyListenPort = 51821
  56. CheckHostPorts(&testHost)
  57. is.Equal(testHost.ListenPort, minPort)
  58. is.Equal(testHost.ProxyListenPort, 51822)
  59. })
  60. }