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) }