MCPcopy
hub / github.com/apache/casbin / TestDomainRole

Function TestDomainRole

rbac/default-role-manager/role_manager_test.go:165–230  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

163}
164
165func TestDomainRole(t *testing.T) {
166 rm := NewRoleManager(3)
167 _ = rm.AddLink("u1", "g1", "domain1")
168 _ = rm.AddLink("u2", "g1", "domain1")
169 _ = rm.AddLink("u3", "admin", "domain2")
170 _ = rm.AddLink("u4", "admin", "domain2")
171 _ = rm.AddLink("u4", "admin", "domain1")
172 _ = rm.AddLink("g1", "admin", "domain1")
173
174 // Current role inheritance tree:
175 // domain1:admin domain2:admin
176 // / \ / \
177 // domain1:g1 u4 u3
178 // / \
179 // u1 u2
180
181 testDomainRole(t, rm, "u1", "g1", "domain1", true)
182 testDomainRole(t, rm, "u1", "g1", "domain2", false)
183 testDomainRole(t, rm, "u1", "admin", "domain1", true)
184 testDomainRole(t, rm, "u1", "admin", "domain2", false)
185
186 testDomainRole(t, rm, "u2", "g1", "domain1", true)
187 testDomainRole(t, rm, "u2", "g1", "domain2", false)
188 testDomainRole(t, rm, "u2", "admin", "domain1", true)
189 testDomainRole(t, rm, "u2", "admin", "domain2", false)
190
191 testDomainRole(t, rm, "u3", "g1", "domain1", false)
192 testDomainRole(t, rm, "u3", "g1", "domain2", false)
193 testDomainRole(t, rm, "u3", "admin", "domain1", false)
194 testDomainRole(t, rm, "u3", "admin", "domain2", true)
195
196 testDomainRole(t, rm, "u4", "g1", "domain1", false)
197 testDomainRole(t, rm, "u4", "g1", "domain2", false)
198 testDomainRole(t, rm, "u4", "admin", "domain1", true)
199 testDomainRole(t, rm, "u4", "admin", "domain2", true)
200
201 _ = rm.DeleteLink("g1", "admin", "domain1")
202 _ = rm.DeleteLink("u4", "admin", "domain2")
203
204 // Current role inheritance tree after deleting the links:
205 // domain1:admin domain2:admin
206 // \ \
207 // domain1:g1 u4 u3
208 // / \
209 // u1 u2
210
211 testDomainRole(t, rm, "u1", "g1", "domain1", true)
212 testDomainRole(t, rm, "u1", "g1", "domain2", false)
213 testDomainRole(t, rm, "u1", "admin", "domain1", false)
214 testDomainRole(t, rm, "u1", "admin", "domain2", false)
215
216 testDomainRole(t, rm, "u2", "g1", "domain1", true)
217 testDomainRole(t, rm, "u2", "g1", "domain2", false)
218 testDomainRole(t, rm, "u2", "admin", "domain1", false)
219 testDomainRole(t, rm, "u2", "admin", "domain2", false)
220
221 testDomainRole(t, rm, "u3", "g1", "domain1", false)
222 testDomainRole(t, rm, "u3", "g1", "domain2", false)

Callers

nothing calls this directly

Calls 4

AddLinkMethod · 0.95
DeleteLinkMethod · 0.95
testDomainRoleFunction · 0.85
NewRoleManagerFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…