(t *testing.T)
| 137 | } |
| 138 | |
| 139 | func 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) |
nothing calls this directly
no test coverage detected
searching dependent graphs…