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

Function TestSetEventTypes

logger_test.go:139–197  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

137}
138
139func TestSetEventTypes(t *testing.T) {
140 // Create enforcer with RBAC model and policy
141 e, err := NewEnforcer("examples/rbac_model.conf", "examples/rbac_policy.csv")
142 if err != nil {
143 t.Fatalf("Failed to create enforcer: %v", err)
144 }
145
146 // Create a buffer to capture log output
147 var buf bytes.Buffer
148 logger := log.NewDefaultLogger()
149 logger.SetOutput(&buf)
150
151 // Set up a callback to track log entries
152 var callbackEntries []*log.LogEntry
153 err = logger.SetLogCallback(func(entry *log.LogEntry) error {
154 // Create a copy of the entry to store
155 entryCopy := *entry
156 callbackEntries = append(callbackEntries, &entryCopy)
157 return nil
158 })
159 if err != nil {
160 t.Fatalf("Failed to set log callback: %v", err)
161 }
162
163 // Configure logger to only log EventEnforce and EventAddPolicy
164 err = logger.SetEventTypes([]log.EventType{log.EventEnforce, log.EventAddPolicy})
165 if err != nil {
166 t.Fatalf("Failed to set event types: %v", err)
167 }
168
169 // Set the logger on the enforcer
170 e.SetLogger(logger)
171
172 // Perform various operations
173 _, err = e.Enforce("alice", "data1", "read")
174 if err != nil {
175 t.Fatalf("Enforce failed: %v", err)
176 }
177
178 _, err = e.AddPolicy("charlie", "data3", "read")
179 if err != nil {
180 t.Fatalf("AddPolicy failed: %v", err)
181 }
182
183 _, err = e.RemovePolicy("charlie", "data3", "read")
184 if err != nil {
185 t.Fatalf("RemovePolicy failed: %v", err)
186 }
187
188 if err := e.LoadPolicy(); err != nil {
189 t.Fatalf("LoadPolicy failed: %v", err)
190 }
191
192 // Verify buffer output only contains EventEnforce and EventAddPolicy
193 verifySelectiveBufferOutput(t, buf.String())
194
195 // Verify callback entries
196 verifySelectiveCallbackEntries(t, callbackEntries)

Callers

nothing calls this directly

Calls 13

SetOutputMethod · 0.95
SetLogCallbackMethod · 0.95
SetEventTypesMethod · 0.95
SetLoggerMethod · 0.95
EnforceMethod · 0.95
AddPolicyMethod · 0.95
RemovePolicyMethod · 0.95
LoadPolicyMethod · 0.95
NewDefaultLoggerFunction · 0.92
NewEnforcerFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…