public void SimpleConditionTest() { SCConditionOwner owner = new SCConditionOwner(); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCUser user2 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot()); owner.OwnerID = UuidHelper.NewUuidString(); string expression = string.Format("Users.CodeName == \"{0}\"", user2.CodeName); owner.Conditions.Add(new SCCondition() { Description = "基本测试", Condition = expression }); SCConditionCalculator calculator = new SCConditionCalculator(); IEnumerable<SchemaObjectBase> result = calculator.Calculate(owner); Assert.AreEqual(1, result.Count()); foreach (SchemaObjectBase obj in result) { Console.WriteLine("ID:{0}, Name: {1}", obj.ID, obj.Properties.GetValue("Name", string.Empty)); } }
public void GenerateAllUserAndContainerSnapshotTest() { ProcessProgress.Clear(); ProcessProgress.Current.RegisterResponser(TestProgressResponser.Instance); TestRoleData roleData = SCObjectGenerator.PrepareTestRoleWithOrgAndGroup(); SCConditionCalculator calculator = new SCConditionCalculator(); calculator.GenerateAllUserAndContainerSnapshot(); Console.Error.WriteLine("Error: {0}", ProcessProgress.Current.GetDefaultError()); Console.WriteLine("Output: {0}", ProcessProgress.Current.GetDefaultOutput()); }
public void IsChildByCodeNameBuiltInFunctionTest() { SchemaObjectAdapter.Instance.ClearAllData(); TestRoleData roleData = SCObjectGenerator.PrepareTestRoleWithOrgAndGroup(data => string.Format("IsChild(\"{0}\", \"{1}\")", "CodeName", data.Organization.CodeName)); SCConditionCalculator calculator = new SCConditionCalculator(); ProcessProgress.Clear(); ProcessProgress.Current.RegisterResponser(TestProgressResponser.Instance); calculator.GenerateUserAndContainerSnapshot(new List<ISCUserContainerObject>() { roleData.BuiltInFunctionRole }); SameContainerUserAndContainerSnapshotCollection snapshot = UserAndContainerSnapshotAdapter.Instance.LoadByContainerID(roleData.BuiltInFunctionRole.ID); Console.WriteLine(roleData.ToString()); Console.Error.WriteLine("Error: {0}", ProcessProgress.Current.GetDefaultError()); Console.WriteLine("Output: {0}", ProcessProgress.Current.GetDefaultOutput()); Assert.IsTrue(snapshot.ContainsKey(roleData.UserInOrg.ID)); }
public void GenerateUserAndContainerSnapshotTest() { TestRoleData roleData = SCObjectGenerator.PrepareTestRoleWithOrgAndGroup(); SCConditionCalculator calculator = new SCConditionCalculator(); ProcessProgress.Clear(); ProcessProgress.Current.RegisterResponser(TestProgressResponser.Instance); calculator.GenerateUserAndContainerSnapshot(new List<ISCUserContainerObject>() { roleData.Group }); calculator.GenerateUserAndContainerSnapshot(new List<ISCUserContainerObject>() { roleData.Role }); SameContainerUserAndContainerSnapshotCollection snapshot = UserAndContainerSnapshotAdapter.Instance.LoadByContainerID(roleData.Role.ID); Console.WriteLine(roleData.ToString()); Console.Error.WriteLine("Error: {0}", ProcessProgress.Current.GetDefaultError()); Console.WriteLine("Output: {0}", ProcessProgress.Current.GetDefaultOutput()); Assert.IsTrue(snapshot.ContainsKey(roleData.UserInGroup.ID)); Assert.IsTrue(snapshot.ContainsKey(roleData.UserInOrg.ID)); Assert.IsTrue(snapshot.ContainsKey(roleData.UserInRole.ID)); Assert.IsTrue(snapshot.ContainsKey(roleData.UserInConditionRole.ID)); Assert.IsTrue(snapshot.ContainsKey(roleData.UserInConditionGroup.ID)); }
public void SimpleGroupConditionsTest() { SCUser userInGroup; SCUser userNotInGroup; SCGroup group = SCObjectGenerator.PrepareGroupWithConditions(out userInGroup, out userNotInGroup); SCConditionCalculator calculator = new SCConditionCalculator(); SCConditionOwner owner = SCConditionAdapter.Instance.Load(group.ID, string.Empty); SchemaObjectCollection calculateResult = calculator.Calculate(owner); ConditionCalculateResultAdapter.Instance.Update(group.ID, calculateResult); SchemaObjectCollection loadedResult = ConditionCalculateResultAdapter.Instance.LoadCurrentUsers(group.ID); Assert.IsTrue(loadedResult.ContainsKey(userInGroup.ID)); Assert.IsFalse(loadedResult.ContainsKey(userNotInGroup.ID)); }
protected void ProcessGlobalCaculating(object sender, MCS.Web.WebControls.PostProgressDoPostedDataEventArgs e) { SCConditionCalculator calc = new SCConditionCalculator(); calc.GenerateAllUserAndContainerSnapshot(); SCCacheHelper.InvalidateAllCache(); e.Result.DataChanged = true; e.Result.CloseWindow = false; e.Result.ProcessLog = ProcessProgress.Current.GetDefaultOutput(); }
protected void ProcessCaculating(object sender, MCS.Web.WebControls.PostProgressDoPostedDataEventArgs e) { SCConditionCalculator calc = new SCConditionCalculator(); calc.GenerateUserAndContainerSnapshot(new[] { (SCRole)SchemaObjectAdapter.Instance.Load(this.calcProgress.Tag) }); SCCacheHelper.InvalidateAllCache(); e.Result.DataChanged = true; e.Result.CloseWindow = false; e.Result.ProcessLog = ProcessProgress.Current.GetDefaultOutput(); }