host_test.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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/logger"
  9. "github.com/gravitl/netmaker/models"
  10. "github.com/matryer/is"
  11. )
  12. func TestMain(m *testing.M) {
  13. database.InitializeDatabase()
  14. defer database.CloseDB()
  15. CreateAdmin(&models.User{
  16. UserName: "admin",
  17. Password: "password",
  18. IsAdmin: true,
  19. Networks: []string{},
  20. Groups: []string{},
  21. })
  22. peerUpdate := make(chan *models.Node)
  23. go ManageZombies(context.Background(), peerUpdate)
  24. go func() {
  25. for update := range peerUpdate {
  26. //do nothing
  27. logger.Log(3, "received node update", update.Action)
  28. }
  29. }()
  30. }
  31. func TestCheckPorts(t *testing.T) {
  32. h := models.Host{
  33. ID: uuid.New(),
  34. EndpointIP: net.ParseIP("192.168.1.1"),
  35. ListenPort: 51821,
  36. ProxyListenPort: maxPort,
  37. }
  38. testHost := models.Host{
  39. ID: uuid.New(),
  40. EndpointIP: net.ParseIP("192.168.1.1"),
  41. ListenPort: 51830,
  42. ProxyListenPort: 51730,
  43. }
  44. CreateHost(&h)
  45. t.Run("no change", func(t *testing.T) {
  46. is := is.New(t)
  47. CheckHostPorts(&testHost)
  48. is.Equal(testHost.ListenPort, 51830)
  49. is.Equal(testHost.ProxyListenPort, 51730)
  50. })
  51. t.Run("same listen port", func(t *testing.T) {
  52. is := is.New(t)
  53. testHost.ListenPort = 51821
  54. CheckHostPorts(&testHost)
  55. is.Equal(testHost.ListenPort, 51822)
  56. is.Equal(testHost.ProxyListenPort, 51730)
  57. })
  58. t.Run("same proxy port", func(t *testing.T) {
  59. is := is.New(t)
  60. testHost.ProxyListenPort = 65535
  61. CheckHostPorts(&testHost)
  62. is.Equal(testHost.ListenPort, 51822)
  63. is.Equal(testHost.ProxyListenPort, minPort)
  64. })
  65. t.Run("listenport equals proxy port", func(t *testing.T) {
  66. is := is.New(t)
  67. testHost.ListenPort = maxPort
  68. CheckHostPorts(&testHost)
  69. is.Equal(testHost.ListenPort, minPort)
  70. is.Equal(testHost.ProxyListenPort, minPort+1)
  71. })
  72. t.Run("proxyport equals listenport", func(t *testing.T) {
  73. is := is.New(t)
  74. testHost.ProxyListenPort = 51821
  75. CheckHostPorts(&testHost)
  76. is.Equal(testHost.ListenPort, minPort)
  77. is.Equal(testHost.ProxyListenPort, 51822)
  78. })
  79. }