private bool CompareName(TestPermissionInfo permission)
 {
     if (this.Name == null)
         return permission.Name == null;
     else
         return this.Name.Equals(permission.Name);
 }
 private bool CompareAction(TestPermissionInfo permission)
 {
     if (this.Action == null)
         return permission.Action == null;
     else
         return this.Action.Equals(permission.Action);
 }
        public void PermissionInfoOperatorTest()
        {
            PrincipalTokenHolder.CurrentPrincipal = PrincipalTokenHolder.GetPrincipal("admin");
            PermissionInfo p = new TestPermissionInfo("test", "test");
            try
            {
                p++;
                Assert.IsTrue(true, "代码必须运行到这里表示当前用户具有test权限");
            }
            catch (Exception e)
            {
                Assert.Fail("测试权限信息的操作符++失败,当前用户应该具有test权限,但执行++操作却抛出权限异常");
            }

            p = new TestPermissionInfo("testX", "testX");
            try
            {
                p++;
                Assert.Fail("测试权限信息的操作符++失败,当前用户不应该具有testX权限");
            }
            catch (Exception e)
            {
                Assert.IsInstanceOfType(e, typeof(AccessException), "当前抛出的异常不是AccessException");
            }
            PrincipalTokenHolder.ClearCurrentToken();//清除当前用户
        }