40 lines
1022 B
Go
40 lines
1022 B
Go
package auth
|
|
|
|
import "testing"
|
|
|
|
func TestResolveRoles(t *testing.T) {
|
|
roles := ResolveRoles(
|
|
[]string{
|
|
"cn=vctp-admins,ou=groups,dc=example,dc=com",
|
|
" CN=VCTP-VIEWERS,OU=GROUPS,DC=EXAMPLE,DC=COM ",
|
|
},
|
|
map[string]string{
|
|
"cn=vctp-admins,ou=groups,dc=example,dc=com": "admin",
|
|
"cn=vctp-viewers,ou=groups,dc=example,dc=com": "viewer",
|
|
},
|
|
)
|
|
|
|
if len(roles) != 2 {
|
|
t.Fatalf("expected 2 roles, got %d (%#v)", len(roles), roles)
|
|
}
|
|
if roles[0] != "admin" || roles[1] != "viewer" {
|
|
t.Fatalf("unexpected resolved roles: %#v", roles)
|
|
}
|
|
}
|
|
|
|
func TestHasAnyGroup(t *testing.T) {
|
|
groups := []string{
|
|
"cn=vctp-admins,ou=groups,dc=example,dc=com",
|
|
}
|
|
|
|
if !HasAnyGroup(groups, []string{" cn=vctp-admins,ou=groups,dc=example,dc=com "}) {
|
|
t.Fatal("expected group intersection to match")
|
|
}
|
|
if HasAnyGroup(groups, []string{"cn=vctp-operators,ou=groups,dc=example,dc=com"}) {
|
|
t.Fatal("expected no intersection")
|
|
}
|
|
if !HasAnyGroup(groups, nil) {
|
|
t.Fatal("expected empty required groups to allow")
|
|
}
|
|
}
|