nit: I would simplify this to:  ```go  type fakeAuthorizer struct{    decision authorizer.Decision    reason string    err error  }    func (f *fakeAuthorizer) Authorize(a authorizer.Attributes) (authorizer.Decision, string, error) {    return f.decision, f.reason, f.err  }    ...  ```    And then make the test set the expected values.    (The less logic in the test construct the better)