/// <summary> /// Checks if the user should use this permission. /// </summary> /// <param name="userName">The name of the user that is being checked.</param> /// <param name="manager"></param> /// <returns>True if the permission is valid for the user, false otherwise.</returns> public virtual bool CheckUser(ISecurityManager manager, string userName) { if (string.IsNullOrEmpty(refId)) { return(CheckUserActual(manager, userName)); } else { IPermission refPermission = manager.RetrievePermission(refId); if (refPermission == null) { throw new BadReferenceException(refId); } else { return(refPermission.CheckUser(manager, userName)); } } }
public void CheckUserWithValidReference() { string userName = "******"; string goodReference = "doesExist"; IPermission goodAssertion = mocks.StrictMock <IPermission>(); ISecurityManager manager = mocks.StrictMock <ISecurityManager>(); Expect.Call(manager.RetrievePermission(goodReference)).Return(goodAssertion); Expect.Call(goodAssertion.CheckUser(manager, userName)).Return(true); mocks.ReplayAll(); UserPermission assertion = new UserPermission(); assertion.RefId = goodReference; bool result = assertion.CheckUser(manager, userName); Assert.IsTrue(result); mocks.VerifyAll(); }