MCPcopy Create free account
hub / github.com/apache/casbin-server / TestRoleAPI

Function TestRoleAPI

server/rbac_api_test.go:73–153  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

71}
72
73func TestRoleAPI(t *testing.T) {
74 e := newTestEngine(t, "file", "../examples/rbac_policy.csv", "../examples/rbac_model.conf")
75
76 testGetRoles(t, e, "alice", []string{"data2_admin"})
77 testGetRoles(t, e, "bob", []string{})
78 testGetRoles(t, e, "data2_admin", []string{})
79 testGetRoles(t, e, "non_exist", []string{})
80
81 testHasRole(t, e, "alice", "data1_admin", false)
82 testHasRole(t, e, "alice", "data2_admin", true)
83
84 _, err := e.s.AddRoleForUser(e.ctx, &pb.UserRoleRequest{EnforcerHandler: e.h, User: "alice", Role: "data1_admin"})
85 assert.NoError(t, err)
86
87 testGetRoles(t, e, "alice", []string{"data1_admin", "data2_admin"})
88 testGetRoles(t, e, "bob", []string{})
89 testGetRoles(t, e, "data2_admin", []string{})
90
91 _, err = e.s.DeleteRoleForUser(e.ctx, &pb.UserRoleRequest{EnforcerHandler: e.h, User: "alice", Role: "data1_admin"})
92 assert.NoError(t, err)
93
94 testGetRoles(t, e, "alice", []string{"data2_admin"})
95 testGetRoles(t, e, "bob", []string{})
96 testGetRoles(t, e, "data2_admin", []string{})
97
98 testGetImplicitRoles(t, e, "alice", []string{"data2_admin"})
99 testGetImplicitRoles(t, e, "bob", []string{})
100 testGetImplicitRoles(t, e, "george", []string{"data3_admin", "data4_admin"})
101
102 _, err = e.s.DeleteRolesForUser(e.ctx, &pb.UserRoleRequest{EnforcerHandler: e.h, User: "alice"})
103 assert.NoError(t, err)
104
105 testGetRoles(t, e, "alice", []string{})
106 testGetRoles(t, e, "bob", []string{})
107 testGetRoles(t, e, "data2_admin", []string{})
108
109 _, err = e.s.AddRoleForUser(e.ctx, &pb.UserRoleRequest{EnforcerHandler: e.h, User: "alice", Role: "data1_admin"})
110 assert.NoError(t, err)
111
112 _, err = e.s.DeleteUser(e.ctx, &pb.UserRoleRequest{EnforcerHandler: e.h, User: "alice"})
113 assert.NoError(t, err)
114
115 testGetRoles(t, e, "alice", []string{})
116 testGetRoles(t, e, "bob", []string{})
117 testGetRoles(t, e, "data2_admin", []string{})
118
119 _, err = e.s.AddRoleForUser(e.ctx, &pb.UserRoleRequest{EnforcerHandler: e.h, User: "alice", Role: "data2_admin"})
120 assert.NoError(t, err)
121
122 testEnforce(t, e, "alice", "data1", "read", true)
123 testEnforce(t, e, "alice", "data1", "write", false)
124 testEnforce(t, e, "alice", "data2", "read", true)
125 testEnforce(t, e, "alice", "data2", "write", true)
126 testEnforce(t, e, "bob", "data1", "read", false)
127 testEnforce(t, e, "bob", "data1", "write", false)
128 testEnforce(t, e, "bob", "data2", "read", false)
129 testEnforce(t, e, "bob", "data2", "write", true)
130 testEnforce(t, e, "bob", "data4", "read", false)

Callers

nothing calls this directly

Calls 12

newTestEngineFunction · 0.85
testGetRolesFunction · 0.85
testHasRoleFunction · 0.85
testGetImplicitRolesFunction · 0.85
testEnforceFunction · 0.85
testGetPermissionsFunction · 0.85
AddRoleForUserMethod · 0.65
DeleteRoleForUserMethod · 0.65
DeleteRolesForUserMethod · 0.65
DeleteUserMethod · 0.65
DeleteRoleMethod · 0.65

Tested by

no test coverage detected