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

Function TestCache

enforcer_cached_test.go:26–73  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

24}
25
26func TestCache(t *testing.T) {
27 e, _ := NewCachedEnforcer("examples/basic_model.conf", "examples/basic_policy.csv")
28 // The cache is enabled by default for NewCachedEnforcer.
29
30 testEnforceCache(t, e, "alice", "data1", "read", true)
31 testEnforceCache(t, e, "alice", "data1", "write", false)
32 testEnforceCache(t, e, "alice", "data2", "read", false)
33 testEnforceCache(t, e, "alice", "data2", "write", false)
34
35 // The cache is enabled, calling RemovePolicy, LoadPolicy or RemovePolicies will
36 // also operate cached items.
37 _, _ = e.RemovePolicy("alice", "data1", "read")
38
39 testEnforceCache(t, e, "alice", "data1", "read", false)
40 testEnforceCache(t, e, "alice", "data1", "write", false)
41 testEnforceCache(t, e, "alice", "data2", "read", false)
42 testEnforceCache(t, e, "alice", "data2", "write", false)
43
44 e, _ = NewCachedEnforcer("examples/rbac_model.conf", "examples/rbac_policy.csv")
45
46 testEnforceCache(t, e, "alice", "data1", "read", true)
47 testEnforceCache(t, e, "bob", "data2", "write", true)
48 testEnforceCache(t, e, "alice", "data2", "read", true)
49 testEnforceCache(t, e, "alice", "data2", "write", true)
50
51 _, _ = e.RemovePolicies([][]string{
52 {"alice", "data1", "read"},
53 {"bob", "data2", "write"},
54 })
55
56 testEnforceCache(t, e, "alice", "data1", "read", false)
57 testEnforceCache(t, e, "bob", "data2", "write", false)
58 testEnforceCache(t, e, "alice", "data2", "read", true)
59 testEnforceCache(t, e, "alice", "data2", "write", true)
60
61 e, _ = NewCachedEnforcer("examples/rbac_model.conf", "examples/rbac_policy.csv")
62 testEnforceCache(t, e, "alice", "data1", "read", true)
63 testEnforceCache(t, e, "bob", "data2", "write", true)
64 testEnforceCache(t, e, "alice", "data2", "read", true)
65 testEnforceCache(t, e, "alice", "data2", "write", true)
66
67 e.ClearPolicy()
68
69 testEnforceCache(t, e, "alice", "data1", "read", false)
70 testEnforceCache(t, e, "bob", "data2", "write", false)
71 testEnforceCache(t, e, "alice", "data2", "read", false)
72 testEnforceCache(t, e, "alice", "data2", "write", false)
73}

Callers

nothing calls this directly

Calls 5

RemovePolicyMethod · 0.95
RemovePoliciesMethod · 0.95
ClearPolicyMethod · 0.95
NewCachedEnforcerFunction · 0.85
testEnforceCacheFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…