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

Function TestAppendFilteredPolicy

filter_test.go:109–147  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

107}
108
109func TestAppendFilteredPolicy(t *testing.T) {
110 e, _ := NewEnforcer()
111
112 adapter := fileadapter.NewFilteredAdapter("examples/rbac_with_domains_policy.csv")
113 _ = e.InitWithAdapter("examples/rbac_with_domains_model.conf", adapter)
114 if err := e.LoadPolicy(); err != nil {
115 t.Errorf("unexpected error in LoadPolicy: %v", err)
116 }
117
118 // validate initial conditions
119 testHasPolicy(t, e, []string{"admin", "domain1", "data1", "read"}, true)
120 testHasPolicy(t, e, []string{"admin", "domain2", "data2", "read"}, true)
121
122 if err := e.LoadFilteredPolicy(&fileadapter.Filter{
123 P: []string{"", "domain1"},
124 G: []string{"", "", "domain1"},
125 }); err != nil {
126 t.Errorf("unexpected error in LoadFilteredPolicy: %v", err)
127 }
128 if !e.IsFiltered() {
129 t.Errorf("adapter did not set the filtered flag correctly")
130 }
131
132 // only policies for domain1 should be loaded
133 testHasPolicy(t, e, []string{"admin", "domain1", "data1", "read"}, true)
134 testHasPolicy(t, e, []string{"admin", "domain2", "data2", "read"}, false)
135
136 // disable clear policy and load second domain
137 if err := e.LoadIncrementalFilteredPolicy(&fileadapter.Filter{
138 P: []string{"", "domain2"},
139 G: []string{"", "", "domain2"},
140 }); err != nil {
141 t.Errorf("unexpected error in LoadFilteredPolicy: %v", err)
142 }
143
144 // both domain policies should be loaded
145 testHasPolicy(t, e, []string{"admin", "domain1", "data1", "read"}, true)
146 testHasPolicy(t, e, []string{"admin", "domain2", "data2", "read"}, true)
147}
148
149func TestFilteredPolicyInvalidFilter(t *testing.T) {
150 e, _ := NewEnforcer()

Callers

nothing calls this directly

Calls 7

InitWithAdapterMethod · 0.95
LoadPolicyMethod · 0.95
LoadFilteredPolicyMethod · 0.95
IsFilteredMethod · 0.95
NewEnforcerFunction · 0.85
testHasPolicyFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…