78 lines
1.7 KiB
Go
78 lines
1.7 KiB
Go
package netacl
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
"sigs.k8s.io/yaml"
|
|
)
|
|
|
|
func TestNetACLComplex(t *testing.T) {
|
|
var err error
|
|
var enabled bool
|
|
al := NewNetACL()
|
|
require.NotNil(t, al)
|
|
err = al.AddDisabledAddresses("10.0.0.1")
|
|
require.NoError(t, err)
|
|
|
|
err = al.AddDisabledAddresses("192.168.10.0/24")
|
|
require.NoError(t, err)
|
|
|
|
err = al.AddEnabledAddresses("192.168.100.0/16")
|
|
require.NoError(t, err)
|
|
|
|
yamlData, err := yaml.Marshal(al)
|
|
require.NoError(t, err)
|
|
fmt.Printf("\n%s\n", string(yamlData))
|
|
|
|
enabled, err = al.AddressIsEnabled("8.7.7.7")
|
|
require.NoError(t, err)
|
|
require.Equal(t, false, enabled)
|
|
|
|
enabled, err = al.AddressIsEnabled("192.168.10.0")
|
|
require.NoError(t, err)
|
|
require.Equal(t, false, enabled)
|
|
|
|
enabled, err = al.AddressIsEnabled("192.168.100.7")
|
|
require.NoError(t, err)
|
|
require.Equal(t, true, enabled)
|
|
}
|
|
|
|
func TestNetACLAllEnabled(t *testing.T) {
|
|
var err error
|
|
var enabled bool
|
|
al := NewNetACL()
|
|
require.NotNil(t, al)
|
|
err = al.AddEnabledAddresses("0.0.0.1/0")
|
|
require.NoError(t, err)
|
|
|
|
err = al.AddEnabledAddresses("10.0.1.1/17")
|
|
require.NoError(t, err)
|
|
|
|
yamlData, err := yaml.Marshal(al)
|
|
require.NoError(t, err)
|
|
fmt.Printf("\n%s\n", string(yamlData))
|
|
|
|
enabled, err = al.AddressIsEnabled("192.168.100.7")
|
|
require.NoError(t, err)
|
|
require.Equal(t, true, enabled)
|
|
}
|
|
|
|
func TestNetACLLoopEnabled(t *testing.T) {
|
|
var err error
|
|
var enabled bool
|
|
al := NewNetACL()
|
|
require.NotNil(t, al)
|
|
err = al.AddEnabledAddresses("::1/0")
|
|
require.NoError(t, err)
|
|
|
|
yamlData, err := yaml.Marshal(al)
|
|
require.NoError(t, err)
|
|
fmt.Printf("\n%s\n", string(yamlData))
|
|
|
|
enabled, err = al.AddressIsEnabled("::1")
|
|
require.NoError(t, err)
|
|
require.Equal(t, true, enabled)
|
|
}
|