This commit is contained in:
Anatoly Prohacky
2022-08-13 15:47:44 +10:00
parent 338b9e1999
commit a84816087c
7 changed files with 76 additions and 1 deletions

View File

@@ -27,7 +27,7 @@ func veryNumBit(n NumBit) bool {
}
// unite slice int to int64
func Unite(a []AclBit) AclBit {
func Unite(a ...AclBit) AclBit {
var endacl AclBit
for _, a0 := range a {
endacl = endacl | a0

23
acl/aclbit_test.go Normal file
View File

@@ -0,0 +1,23 @@
package acl_test
import (
"testing"
"github.com/stretchr/testify/assert"
"gitstore.ru/tolikproh/policy/acl"
)
func Test_Acl(t *testing.T) {
t.Run("Valid AclBits", func(t *testing.T) {
for i := 0; i < 63; i++ {
a := acl.New(acl.NumBit(i))
assert.Equal(t, true, acl.Verify(a, acl.NumBit(i)))
}
})
t.Run("NotValid AclBits", func(t *testing.T) {
for i := -63; i == 0; i++ {
a := acl.New(acl.NumBit(i))
assert.NotEqual(t, true, acl.Verify(a, acl.NumBit(i)))
}
})
}

19
acl/testing.go Normal file
View File

@@ -0,0 +1,19 @@
package acl
import (
"testing"
)
// TestAcl
func TestAcl(t *testing.T) AclBit {
t.Helper()
var a, b AclBit
for i := 0; i < 63; i++ {
b = New(NumBit(i))
a = Unite(a, b)
}
return a
}