public void CheckPermissionWithInvalidReference()
        {
            SecurityPermission permission = SecurityPermission.ForceAbortBuild;
            string badReference = "doesNotExist";
            ISecurityManager manager = mocks.CreateMock<ISecurityManager>();
            Expect.Call(manager.RetrievePermission(badReference)).Return(null);

            mocks.ReplayAll();
            UserPermission assertion = new UserPermission();
            assertion.RefId = badReference;
            Assert.That(delegate { assertion.CheckPermission(manager, permission); },
                        Throws.TypeOf<BadReferenceException>().With.Message.EqualTo("Reference 'doesNotExist' is either incorrect or missing."));
        }
        public void CheckPermissionWithValidReference()
        {
            SecurityPermission permission = SecurityPermission.ForceAbortBuild;
            string goodReference = "doesExist";
            IPermission goodAssertion = mocks.CreateMock<IPermission>();
            ISecurityManager manager = mocks.CreateMock<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();
        }
 public void DifferentPermissionReturnsInherited()
 {
     UserPermission assertion = new UserPermission("johndoe", SecurityRight.Inherit, SecurityRight.Inherit, SecurityRight.Allow, SecurityRight.Inherit);
     SecurityRight result = assertion.CheckPermission(null, SecurityPermission.SendMessage);
     Assert.AreEqual(SecurityRight.Inherit, result);
 }
 public void MatchingPermissionReturnsRight()
 {
     UserPermission assertion = new UserPermission("johndoe", SecurityRight.Inherit, SecurityRight.Inherit, SecurityRight.Allow, SecurityRight.Inherit);
     SecurityRight result = assertion.CheckPermission(null, SecurityPermission.ForceAbortBuild);
     Assert.AreEqual(SecurityRight.Allow, result);
 }
 public void CorrectPermissionsReturnedSendMessage()
 {
     UserPermission assertion = new UserPermission("johnDoe",
         SecurityRight.Deny,
         SecurityRight.Allow,
         SecurityRight.Deny,
         SecurityRight.Deny);
     SecurityRight right = assertion.CheckPermission(null, SecurityPermission.SendMessage);
     Assert.AreEqual(SecurityRight.Allow, right);
 }
 public void CorrectPermissionsReturnedForceBuild()
 {
     UserPermission assertion = new UserPermission("johnDoe",
         SecurityRight.Deny,
         SecurityRight.Deny,
         SecurityRight.Allow,
         SecurityRight.Deny);
     SecurityRight right = assertion.CheckPermission(null, SecurityPermission.ForceAbortBuild);
     Assert.AreEqual(SecurityRight.Allow, right);
 }
 public void CorrectPermissionsReturnedStartProject()
 {
     UserPermission assertion = new UserPermission("johnDoe",
         SecurityRight.Deny,
         SecurityRight.Deny,
         SecurityRight.Deny,
         SecurityRight.Allow);
     SecurityRight right = assertion.CheckPermission(null, SecurityPermission.StartStopProject);
     Assert.AreEqual(SecurityRight.Allow, right);
 }