/// <summary> /// Checks the result of this permission. /// </summary> /// <param name="permission">The permission to check.</param> /// <param name="manager"></param> /// <returns>The security right.</returns> public virtual SecurityRight CheckPermission(ISecurityManager manager, SecurityPermission permission) { if (string.IsNullOrEmpty(refId)) { return(CheckPermissionActual(manager, permission)); } else { IPermission refPermission = manager.RetrievePermission(refId); if (refPermission == null) { throw new BadReferenceException(refId); } else { return(refPermission.CheckPermission(manager, permission)); } } }
public void CheckPermissionWithValidReference() { SecurityPermission permission = SecurityPermission.ForceAbortBuild; string goodReference = "doesExist"; IPermission goodAssertion = mocks.StrictMock <IPermission>(); ISecurityManager manager = mocks.StrictMock <ISecurityManager>(); Expect.Call(manager.RetrievePermission(goodReference)).Return(goodAssertion); Expect.Call(goodAssertion.CheckPermission(manager, permission)).Return(SecurityRight.Allow); mocks.ReplayAll(); UserPermission assertion = new UserPermission(); assertion.RefId = goodReference; SecurityRight result = assertion.CheckPermission(manager, permission); Assert.AreEqual(SecurityRight.Allow, result); mocks.VerifyAll(); }