mirror of
https://github.com/cloudnativelabs/kube-router.git
synced 2025-11-19 20:11:36 +01:00
Also separates logic so that it can be tested more easily, and adds unit tests to make sure there is no regression. Fixes #1083
44 lines
1.5 KiB
Go
44 lines
1.5 KiB
Go
package netpol
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func Test_NewNetworkPolicyController(t *testing.T) {
|
|
t.Run("Node Port range specified with a hyphen should pass validation", func(t *testing.T) {
|
|
portRange, err := validateNodePortRange("1000-2000")
|
|
assert.Nil(t, err)
|
|
assert.NotEmpty(t, portRange)
|
|
})
|
|
t.Run("Node Port range specified with a colon should pass validation", func(t *testing.T) {
|
|
portRange, err := validateNodePortRange("1000:2000")
|
|
assert.Nil(t, err)
|
|
assert.NotEmpty(t, portRange)
|
|
})
|
|
t.Run("Node Port range specified with a high port range should work", func(t *testing.T) {
|
|
portRange, err := validateNodePortRange("40000:42767")
|
|
assert.Nil(t, err)
|
|
assert.NotEmpty(t, portRange)
|
|
portRange, err = validateNodePortRange("50000:65535")
|
|
assert.Nil(t, err)
|
|
assert.NotEmpty(t, portRange)
|
|
})
|
|
t.Run("Node Port range specified with a higher start number should fail validation", func(t *testing.T) {
|
|
portRange, err := validateNodePortRange("2000:1000")
|
|
assert.Error(t, err)
|
|
assert.Empty(t, portRange)
|
|
})
|
|
t.Run("Node Port range specified with same start and end port should fail validation", func(t *testing.T) {
|
|
portRange, err := validateNodePortRange("2000:2000")
|
|
assert.Error(t, err)
|
|
assert.Empty(t, portRange)
|
|
})
|
|
t.Run("Node Port range specified with a port number higher than 16-bits unsigned should fail validation", func(t *testing.T) {
|
|
portRange, err := validateNodePortRange("65535:65537")
|
|
assert.Error(t, err)
|
|
assert.Empty(t, portRange)
|
|
})
|
|
}
|