103 lines
2.2 KiB
Go
103 lines
2.2 KiB
Go
package chef
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestACLService_Get(t *testing.T) {
|
|
setup()
|
|
defer teardown()
|
|
|
|
mux.HandleFunc("/nodes/hostname/_acl", func(w http.ResponseWriter, r *http.Request) {
|
|
fmt.Fprintf(w, `{
|
|
"create": {
|
|
"actors": [
|
|
"hostname",
|
|
"pivotal"
|
|
],
|
|
"groups": [
|
|
"clients",
|
|
"users",
|
|
"admins"
|
|
]
|
|
},
|
|
"read": {
|
|
"actors": [
|
|
"hostname",
|
|
"pivotal"
|
|
],
|
|
"groups": [
|
|
"clients",
|
|
"users",
|
|
"admins"
|
|
]
|
|
},
|
|
"update": {
|
|
"actors": [
|
|
"hostname",
|
|
"pivotal"
|
|
],
|
|
"groups": [
|
|
"users",
|
|
"admins"
|
|
]
|
|
},
|
|
"delete": {
|
|
"actors": [
|
|
"hostname",
|
|
"pivotal"
|
|
],
|
|
"groups": [
|
|
"users",
|
|
"admins"
|
|
]
|
|
},
|
|
"grant": {
|
|
"actors": [
|
|
"hostname",
|
|
"pivotal"
|
|
],
|
|
"groups": [
|
|
"admins"
|
|
]
|
|
}
|
|
}
|
|
`)
|
|
})
|
|
|
|
acl, err := client.ACLs.Get("nodes", "hostname")
|
|
if err != nil {
|
|
t.Errorf("ACL.Get returned error: %v", err)
|
|
}
|
|
|
|
want := ACL{
|
|
"create": ACLitems{Groups: []string{"clients", "users", "admins"}, Actors: []string{"hostname", "pivotal"}},
|
|
"read": ACLitems{Groups: []string{"clients", "users", "admins"}, Actors: []string{"hostname", "pivotal"}},
|
|
"update": ACLitems{Groups: []string{"users", "admins"}, Actors: []string{"hostname", "pivotal"}},
|
|
"delete": ACLitems{Groups: []string{"users", "admins"}, Actors: []string{"hostname", "pivotal"}},
|
|
"grant": ACLitems{Groups: []string{"admins"}, Actors: []string{"hostname", "pivotal"}},
|
|
}
|
|
|
|
if !reflect.DeepEqual(acl, want) {
|
|
t.Errorf("ACL.Get returned %+v, want %+v", acl, want)
|
|
}
|
|
}
|
|
|
|
func TestACLService_Put(t *testing.T) {
|
|
setup()
|
|
defer teardown()
|
|
|
|
mux.HandleFunc("/nodes/hostname/_acl/create", func(w http.ResponseWriter, r *http.Request) {
|
|
fmt.Fprintf(w, ``)
|
|
})
|
|
|
|
acl := NewACL("create", []string{"pivotal"}, []string{"admins"})
|
|
err := client.ACLs.Put("nodes", "hostname", "create", acl)
|
|
if err != nil {
|
|
t.Errorf("ACL.Put returned error: %v", err)
|
|
}
|
|
}
|