acl: Test parsing JSON

This commit is contained in:
Armon Dadgar 2014-08-18 14:54:52 -07:00
parent 8c5ae92fa7
commit 350a94d3f2
1 changed files with 48 additions and 0 deletions

View File

@ -50,3 +50,51 @@ key "foo/bar/baz" {
t.Fatalf("bad: %#v %#v", out, exp) t.Fatalf("bad: %#v %#v", out, exp)
} }
} }
func TestParse_JSON(t *testing.T) {
inp := `{
"key": {
"": {
"policy": "read"
},
"foo/": {
"policy": "write"
},
"foo/bar/": {
"policy": "read"
},
"foo/bar/baz": {
"policy": "deny"
}
}
}`
exp := &Policy{
Keys: []*KeyPolicy{
&KeyPolicy{
Prefix: "",
Policy: KeyPolicyRead,
},
&KeyPolicy{
Prefix: "foo/",
Policy: KeyPolicyWrite,
},
&KeyPolicy{
Prefix: "foo/bar/",
Policy: KeyPolicyRead,
},
&KeyPolicy{
Prefix: "foo/bar/baz",
Policy: KeyPolicyDeny,
},
},
}
out, err := Parse(inp)
if err != nil {
t.Fatalf("err: %v", err)
}
if !reflect.DeepEqual(out, exp) {
t.Fatalf("bad: %#v %#v", out, exp)
}
}