public void AddSecretaryToUserExecutorTest() { SCUser secretary = SCObjectGenerator.PrepareUserObject("罗", "剑", "罗剑" + UuidHelper.NewUuidString()); SCObjectOperations.Instance.AddUser(secretary, SCOrganization.GetRoot()); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCSecretaryRelation sr = SCObjectOperations.Instance.AddSecretaryToUser(secretary, user1); Assert.AreEqual(secretary.SchemaType, sr.ContainerSchemaType); Assert.AreEqual(user1.SchemaType, sr.MemberSchemaType); SCUser user2 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddSecretaryToUser(secretary, user2); Assert.IsTrue(user1.CurrentSecretaries.ContainsKey(secretary.ID)); Assert.IsTrue(user2.CurrentSecretaries.ContainsKey(secretary.ID)); Assert.IsTrue(secretary.CurrentSecretariesOf.ContainsKey(user1.ID)); Assert.IsTrue(secretary.CurrentSecretariesOf.ContainsKey(user2.ID)); }
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 UpdateOrganizationNameTest() { SCOrganization root = SCOrganization.GetRoot(); SCOrganization newOrg = SCObjectGenerator.PrepareOrganizationObject(); SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddOrganization(newOrg, root); SchemaObjectBase objLoaded = SchemaObjectAdapter.Instance.Load(newOrg.ID); Assert.AreEqual(newOrg.Name, objLoaded.Properties.GetValue("Name", string.Empty)); Assert.IsTrue(objLoaded.CurrentParents.Count > 0); Assert.AreEqual(root.ID, objLoaded.CurrentParents[0].ID); SCObjectOperations.Instance.AddUser(user, newOrg); newOrg.ClearRelativeData(); newOrg.Name = "ChangedOrgName"; SCObjectOperations.Instance.UpdateOrganization(newOrg); Console.WriteLine("Org ID: {0}, User ID: {1}", newOrg.ID, user.ID); }
public void AddOrRemoveUserToGroupExecutorTest() { SCGroup group = SCObjectGenerator.PrepareGroupObject(); SCObjectOperations.Instance.AddGroup(group, SCOrganization.GetRoot()); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); Console.WriteLine("UserID: {0}, GroupID: {1}", user1.ID, group.ID); SCMemberRelation mr = SCObjectOperations.Instance.AddUserToGroup(user1, group); SCObjectOperations.Instance.RemoveUserFromGroup(user1, group); // 确认删除 Assert.IsFalse(group.CurrentMembersRelations.ContainsKey(user1.ID)); Assert.IsFalse(user1.CurrentMemberOfRelations.ContainsKey(group.ID)); SCObjectOperations.Instance.AddUserToGroup(user1, group); // 重置数据 group.ClearRelativeData(); user1.ClearRelativeData(); // 确认又加回来了 Assert.IsTrue(group.CurrentUsers.ContainsKey(user1.ID)); Assert.IsTrue(user1.CurrentGroups.ContainsKey(group.ID)); Console.WriteLine("UserID: {0}, GroupID: {1}", user1.ID, group.ID); }
public void MoveUserNotChangeOwnerTest() { SCOrganization root = SCOrganization.GetRoot(); SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user, root); SCOrganization sidelineOrg = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(sidelineOrg, root); //设置了兼职 SCObjectOperations.Instance.AddUser(user, sidelineOrg); SCOrganization targetOrg = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(targetOrg, root); SCObjectOperations.Instance.MoveObjectToOrganization(sidelineOrg, user, targetOrg); user = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); user.ClearRelativeData(); targetOrg.ClearRelativeData(); sidelineOrg.ClearRelativeData(); root.ClearRelativeData(); Assert.IsTrue(user.CurrentParents.ContainsKey(targetOrg.ID)); Assert.IsTrue(targetOrg.CurrentChildren.ContainsKey(user.ID)); Assert.IsFalse(sidelineOrg.CurrentChildren.ContainsKey(user.ID)); Assert.AreNotEqual(targetOrg.ID, user.OwnerID); }
public void SCQueryPermissionsByUserIDsSnapshotTest() { SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role = SCObjectGenerator.PrepareRoleObject(); SCObjectOperations.Instance.AddRole(role, application); SCPermission permission = SCObjectGenerator.PreparePermissionObject(); SCObjectOperations.Instance.AddPermission(permission, application); SCRelationObject relation = SCObjectOperations.Instance.JoinRoleAndPermission(role, permission); SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddMemberToRole(user1, role); SchemaObjectCollection result = SCSnapshotAdapter.Instance.QueryPermissionsByUserIDs(new string[] { user1.ID }, false, DateTime.MinValue); Assert.IsTrue(result.Count > 0); Console.WriteLine(result[0].Properties.GetValue("Name", string.Empty)); Assert.AreEqual(permission.ID, result[0].ID); }
public void ChangeOwnerTest() { SCOrganization root = SCOrganization.GetRoot(); SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user, root); SCOrganization sidelineOrg = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(sidelineOrg, root); //设置了兼职 SCObjectOperations.Instance.AddUser(user, sidelineOrg); SCObjectOperations.Instance.ChangeOwner(user, sidelineOrg); user = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); user.ClearRelativeData(); sidelineOrg.ClearRelativeData(); root.ClearRelativeData(); Console.WriteLine(user.OwnerName); Assert.AreEqual(sidelineOrg.ID, user.OwnerID); }
public void AddUserToGroupExecutorTest() { SCGroup group = SCObjectGenerator.PrepareGroupObject(); SCObjectOperations.Instance.AddGroup(group, SCOrganization.GetRoot()); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCMemberRelation mr = SCObjectOperations.Instance.AddUserToGroup(user1, group); Assert.AreEqual(group.SchemaType, mr.ContainerSchemaType); Assert.AreEqual(user1.SchemaType, mr.MemberSchemaType); SCUser user2 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddUserToGroup(user2, group); Assert.AreEqual(2, group.CurrentUsers.Count); Assert.IsTrue(group.CurrentUsers.ContainsKey(user1.ID)); Assert.IsTrue(group.CurrentUsers.ContainsKey(user2.ID)); Assert.IsTrue(user1.CurrentGroups.ContainsKey(group.ID)); Assert.IsTrue(user2.CurrentGroups.ContainsKey(group.ID)); SameContainerUserAndContainerSnapshotCollection ugSnapshot = UserAndContainerSnapshotAdapter.Instance.LoadByContainerID(group.ID); Assert.IsTrue(ugSnapshot.ContainsKey(user1.ID)); Assert.IsTrue(ugSnapshot.ContainsKey(user2.ID)); }
public void QueryDirectChildrenTest() { SCUser user = SCObjectGenerator.PrepareUserObject(); string ticks = DateTime.Now.Ticks.ToString(); SCOrganization parent3 = SCObjectGenerator.PrepareOrganizationObject("第三组织" + ticks, "第三组织"); SCObjectOperations.Instance.AddOrganization(parent3, SCOrganization.GetRoot()); SCOrganization parent32 = SCObjectGenerator.PrepareOrganizationObject("第三.二组织" + ticks, "第三.二组织"); SCObjectOperations.Instance.AddOrganization(parent32, parent3); SCUser user3 = SCObjectGenerator.PrepareUserObject("李", "琪" + ticks, "liqi"); SCObjectOperations.Instance.AddUser(user3, parent32); string path = string.Format(@"第三组织{0}\第三.二组织{0}\李琪{0}", ticks); SCObjectAndRelationCollection result = SCSnapshotAdapter.Instance.QueryObjectAndRelationByParentIDs(new string[0], new string[] { parent32.ID }, false, true, false, DateTime.MinValue); result.Sort((x, y) => (int)(x.InnerSort - y.InnerSort)); result.FillDetails(); Assert.IsTrue(result.Count > 0); Console.WriteLine(result[0].Detail.Properties.GetValue("Name", string.Empty)); Assert.AreEqual(user3.ID, result[0].Detail.ID); }
public void AddMemberToRoleTest() { SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role = SCObjectGenerator.PrepareRoleObject(); SCObjectOperations.Instance.AddRole(role, application); SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCUser user2 = SCObjectGenerator.PrepareUserObject("RU2", "User2", "RoleUser2"); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddMemberToRole(user1, role); SCObjectOperations.Instance.AddMemberToRole(user2, role); Assert.AreEqual(2, role.CurrentMembers.Count); Assert.IsTrue(role.CurrentMembers.ContainsKey(user1.ID)); Assert.IsTrue(role.CurrentMembers.ContainsKey(user2.ID)); Assert.IsTrue(user1.CurrentRoles.ContainsKey(role.ID)); Assert.IsTrue(user2.CurrentRoles.ContainsKey(role.ID)); }
public void SetUserDefaultOrganizationTest() { SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user, null); SCUser userLoaded = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); SCOrganization root = SCOrganization.GetRoot(); SCOrganization org1 = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(org1, root); SCOrganization org2 = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(org2, root); SCObjectOperations.Instance.AddUserToOrganization(user, org1); SCObjectOperations.Instance.AddUserToOrganization(user, org2); SCObjectOperations.Instance.SetUserDefaultOrganization(user, org2); SCRelationObject relation1 = SchemaRelationObjectAdapter.Instance.Load(org1.ID, userLoaded.ID); SCRelationObject relation2 = SchemaRelationObjectAdapter.Instance.Load(org2.ID, userLoaded.ID); Assert.IsFalse(relation1.Default); Assert.IsTrue(relation2.Default); }
public void InheritAclPermissionsTest() { //准备组织数据 SCOrganization parent = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(parent, SCOrganization.GetRoot()); //准备应用 SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role1 = SCObjectGenerator.PrepareRoleObject(); //准备角色 SCObjectOperations.Instance.AddRole(role1, application); //准备人员 SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCObjectOperations.Instance.AddUser(user1, parent); //将人员添加到角色 SCObjectOperations.Instance.AddMemberToRole(user1, role1); SCRole role2 = SCObjectGenerator.PrepareRoleObject(); //准备角色 SCObjectOperations.Instance.AddRole(role2, application); //准备人员 SCUser user2 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCObjectOperations.Instance.AddUser(user2, parent); //将人员添加到角色 SCObjectOperations.Instance.AddMemberToRole(user2, role2); //准备Container SCAclContainer container = new SCAclContainer(parent); container.Members.Add("AddChildren", role1); container.Members.Add("AddChildren", role2); SCObjectOperations.Instance.UpdateObjectAcl(container); SCOrganization organization = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(organization, parent); SCAclMemberCollection members = SCAclAdapter.Instance.LoadByContainerID(organization.ID, DateTime.MinValue); Assert.IsTrue(members.ContainsKey("AddChildren", role1.ID)); Assert.AreEqual(SchemaObjectStatus.Normal, members["AddChildren", role1.ID].Status); Assert.IsTrue(members.ContainsKey("AddChildren", role2.ID)); Assert.AreEqual(SchemaObjectStatus.Normal, members["AddChildren", role2.ID].Status); }
public void MergeUserInGroupExecutorTest() { // 准备4位用户。User1位状态不变,User2待删除,User3新增加,User4复活 SCGroup group = SCObjectGenerator.PrepareGroupObject(); SCObjectOperations.Instance.AddGroup(group, SCOrganization.GetRoot()); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCMemberRelation mr = SCObjectOperations.Instance.AddUserToGroup(user1, group); Assert.AreEqual(group.SchemaType, mr.ContainerSchemaType); Assert.AreEqual(user1.SchemaType, mr.MemberSchemaType); SCUser user2 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddUserToGroup(user2, group); SCUser user3 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user3, SCOrganization.GetRoot()); SCUser user4 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user4, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddUserToGroup(user4, group); SCObjectOperations.Instance.RemoveUserFromGroup(user4, group); user4.Status = SchemaObjectStatus.Normal; SchemaObjectCollection needMergeUsers = new SchemaObjectCollection() { user1, user3, user4 }; UserAndContainerSnapshotAdapter.Instance.Merge(group.ID, group.SchemaType, needMergeUsers); Console.WriteLine("Group ID: {0}", group.ID); SameContainerUserAndContainerSnapshotCollection ugSnapshot = UserAndContainerSnapshotAdapter.Instance.LoadByContainerID(group.ID); Assert.IsTrue(ugSnapshot.ContainsKey(user1.ID)); Assert.AreEqual(SchemaObjectStatus.Normal, ugSnapshot[user1.ID].Status); Assert.IsTrue(ugSnapshot.ContainsKey(user2.ID)); Assert.AreEqual(SchemaObjectStatus.Deleted, ugSnapshot[user2.ID].Status); Assert.IsTrue(ugSnapshot.ContainsKey(user3.ID)); Assert.AreEqual(SchemaObjectStatus.Normal, ugSnapshot[user3.ID].Status); Assert.IsTrue(ugSnapshot.ContainsKey(user4.ID)); Assert.AreEqual(SchemaObjectStatus.Normal, ugSnapshot[user4.ID].Status); }
public void DeleteAclMemberTest() { //准备组织数据 SCOrganization organization = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(organization, SCOrganization.GetRoot()); //准备应用 SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role1 = SCObjectGenerator.PrepareRoleObject(); //准备角色 SCObjectOperations.Instance.AddRole(role1, application); //准备人员 SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCObjectOperations.Instance.AddUser(user1, organization); //将人员添加到角色 SCObjectOperations.Instance.AddMemberToRole(user1, role1); SCRole role2 = SCObjectGenerator.PrepareRoleObject(); //准备角色 SCObjectOperations.Instance.AddRole(role2, application); //准备人员 SCUser user2 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCObjectOperations.Instance.AddUser(user2, organization); //将人员添加到角色 SCObjectOperations.Instance.AddMemberToRole(user2, role2); //准备Container SCAclContainer container = new SCAclContainer(organization); container.Members.Add("AddChildren", role1); container.Members.Add("AddChildren", role2); SCObjectOperations.Instance.UpdateObjectAcl(container); Console.WriteLine("ContainerID: {0}", container.ContainerID); SCObjectOperations.Instance.DeleteRole(role1); SCObjectOperations.Instance.DeleteRole(role2); SCAclMemberCollection members = SCAclAdapter.Instance.LoadByContainerID(organization.ID, DateTime.MinValue); Assert.IsFalse(members.ContainsKey("AddChildren", role1.ID)); Assert.IsFalse(members.ContainsKey("AddChildren", role2.ID)); }
public void DeleteUserExecutorTest() { SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user, null); SCUser userLoaded = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); SCObjectOperations.Instance.DeleteUser(userLoaded, null, false); userLoaded = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); Assert.AreEqual(SchemaObjectStatus.Deleted, userLoaded.Status); }
public void SCObjectSnapshotUpdateSqlTest() { SCUser user = SCObjectGenerator.PrepareUserObject(); SchemaObjectAdapter.Instance.MergeExistsObjectInfo(user); string sql = VersionSnapshotUpdateSqlBuilder.Instance.ToUpdateSql(user, ORMapping.GetMappingInfo(user.GetType())); Console.WriteLine(sql); SCActionContext.Current.DoActions(() => SCSnapshotBasicAdapter.Instance.UpdateCurrentSnapshot(user, user.Schema.SnapshotTable, SnapshotModeDefinition.IsInSnapshot)); DataRowView drv = SCSnapshotBasicAdapter.Instance.Load(user.Schema.Name, user.ID); Assert.IsNotNull(drv); }
public void SCObjectSnapshotLoadByIDTest() { SCUser user = SCObjectGenerator.PrepareUserObject(); string codeName = UuidHelper.NewUuidString(); user.Properties.SetValue("CodeName", codeName); SCActionContext.Current.DoActions(() => SchemaObjectAdapter.Instance.Update(user)); SchemaObjectBase obj = SCSnapshotBasicAdapter.Instance.LoadByID(user.SchemaType, SnapshotQueryIDType.CodeName, codeName); Assert.AreEqual(user.ID, obj.ID); Assert.AreEqual(codeName, obj.Properties.GetValue("CodeName", string.Empty)); }
public void AddUserOperationTest() { Trace.CorrelationManager.ActivityId = UuidHelper.NewUuid(); SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.DoOperation(SCObjectOperationMode.Add, user, null); SCUser userLoaded = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); Assert.AreEqual(user.ID, userLoaded.ID); SCOperationLog log = SCOperationLogAdapter.Instance.LoadByResourceID(user.ID).FirstOrDefault(); Assert.IsNotNull(log); Assert.AreEqual(Trace.CorrelationManager.ActivityId.ToString(), log.CorrelationID); }
public void DeleteUserAndRelationExecutorTest() { SCOrganization root = SCOrganization.GetRoot(); SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user, root); SCUser userLoaded = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); SCObjectOperations.Instance.DeleteUser(userLoaded, null, false); userLoaded = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); Assert.AreEqual(SchemaObjectStatus.Deleted, userLoaded.Status); userLoaded.AllParentRelations.ForEach(r => Assert.AreEqual(SchemaObjectStatus.Deleted, r.Status)); }
public void RemoveUserFromGroupExecutorTest() { SCGroup group = SCObjectGenerator.PrepareGroupObject(); SCObjectOperations.Instance.AddGroup(group, SCOrganization.GetRoot()); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddUserToGroup(user1, group); SCObjectOperations.Instance.RemoveUserFromGroup(user1, group); Assert.IsTrue(group.AllMembersRelations.ContainsKey(user1.ID)); Assert.IsFalse(group.CurrentMembersRelations.ContainsKey(user1.ID)); Assert.IsTrue(user1.AllMemberOfRelations.ContainsKey(group.ID)); Assert.IsFalse(user1.CurrentMemberOfRelations.ContainsKey(group.ID)); }
public void DeleteRoleTest() { SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role = SCObjectGenerator.PrepareRoleObject(); SCObjectOperations.Instance.AddRole(role, application); Console.WriteLine("RoleID: {0}", role.ID); SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCUser user2 = SCObjectGenerator.PrepareUserObject("RU2", "User2", "RoleUser2"); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddMemberToRole(user1, role); SCObjectOperations.Instance.AddMemberToRole(user2, role); SCObjectAndRelationCollection relations = SCSnapshotAdapter.Instance.QueryRolesContainsMembers(new string[] { "Roles" }, new string[] { role.ID }, false, DateTime.MinValue); Assert.AreEqual(role.CurrentMembers.Count, relations.Count); SCObjectOperations.Instance.DeleteRole(role); Assert.AreEqual(0, application.CurrentRoles.Count); Assert.AreEqual(0, user1.CurrentRoles.Count); Assert.AreEqual(0, user2.CurrentRoles.Count); SCObjectAndRelationCollection relationDeleted = SCSnapshotAdapter.Instance.QueryRolesContainsMembers(new string[] { "Roles" }, new string[] { role.ID }, false, DateTime.MinValue); Assert.AreEqual(role.CurrentMembers.Count, relationDeleted.Count); SameContainerUserAndContainerSnapshotCollection containsUsers = UserAndContainerSnapshotAdapter.Instance.LoadByContainerID(role.ID); containsUsers.ForEach(u => Assert.AreEqual(SchemaObjectStatus.Deleted, u.Status)); }
public void QueryGroupMembersTest() { SCGroup group = SCObjectGenerator.PrepareGroupObject(); SCObjectOperations.Instance.AddGroup(group, SCOrganization.GetRoot()); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCMemberRelation mr = SCObjectOperations.Instance.AddUserToGroup(user1, group); SCObjectAndRelationCollection result = SCSnapshotAdapter.Instance.QueryContainerContainsUsersByIDs(new string[] { "Groups" }, new string[] { group.ID }, false, DateTime.MinValue); Assert.IsTrue(result.Count > 0); result.FillDetails(); Console.WriteLine(result[0].Detail.Properties.GetValue("Name", string.Empty)); Console.WriteLine(result[0].ParentID); Assert.AreEqual(user1.ID, result[0].Detail.ID); }
public void SCObjectSnapshotLoadParentInfoTest() { SCOrganization parent2 = SCObjectGenerator.PrepareOrganizationObject("第二组织", "第二组织"); SCObjectOperations.Instance.AddOrganization(parent2, SCOrganization.GetRoot()); SCOrganization parent22 = SCObjectGenerator.PrepareOrganizationObject("第二.二组织", "第二.二组织"); SCObjectOperations.Instance.AddOrganization(parent22, parent2); SCUser user2 = SCObjectGenerator.PrepareUserObject("徐", "磊", "xulei"); SCObjectOperations.Instance.AddUser(user2, parent22); SCOrganization parent3 = SCObjectGenerator.PrepareOrganizationObject("第三组织", "第三组织"); SCObjectOperations.Instance.AddOrganization(parent3, SCOrganization.GetRoot()); SCOrganization parent32 = SCObjectGenerator.PrepareOrganizationObject("第三.二组织", "第三.二组织"); SCObjectOperations.Instance.AddOrganization(parent32, parent3); SCUser user3 = SCObjectGenerator.PrepareUserObject("李", "琪", "liqi"); SCObjectOperations.Instance.AddUser(user3, parent32); Dictionary <string, SCSimpleObjectCollection> parents = SCSnapshotAdapter.Instance.LoadAllParentsInfo(false, user2.ID, user3.ID); Assert.AreEqual(2, parents.Count); foreach (KeyValuePair <string, SCSimpleObjectCollection> kp in parents) { IEnumerable <IOrganization> orgs = parents[kp.Key].ToOguObjects <IOrganization>(); Assert.AreEqual(2, orgs.Count()); Console.WriteLine(parents[kp.Key].JoinNameToFullPath()); orgs.ForEach(o => Console.WriteLine(o.DisplayName)); } }
public void RemoveSecretaryFromUserExecutorTest() { SCUser secretary = SCObjectGenerator.PrepareUserObject("罗", "剑", "罗剑" + UuidHelper.NewUuidString()); SCObjectOperations.Instance.AddUser(secretary, SCOrganization.GetRoot()); SCUser user1 = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCSecretaryRelation sr = SCObjectOperations.Instance.AddSecretaryToUser(secretary, user1); Assert.IsTrue(user1.CurrentSecretaries.ContainsKey(secretary.ID)); Assert.IsTrue(secretary.CurrentSecretariesOf.ContainsKey(user1.ID)); secretary.ClearRelativeData(); user1.ClearRelativeData(); SCObjectOperations.Instance.RemoveSecretaryFromUser(secretary, user1); Assert.IsFalse(user1.CurrentSecretaries.ContainsKey(secretary.ID)); Assert.IsFalse(secretary.CurrentSecretariesOf.ContainsKey(user1.ID)); }
public void AddUserToOrganizationTest() { SCUser user = SCObjectGenerator.PrepareUserObject(); SCObjectOperations.Instance.AddUser(user, null); SCUser userLoaded = (SCUser)SchemaObjectAdapter.Instance.Load(user.ID); SCOrganization org = SCOrganization.GetRoot(); SCObjectOperations.Instance.AddUserToOrganization(user, org); SCRelationObject relation = SchemaRelationObjectAdapter.Instance.Load(org.ID, userLoaded.ID); Assert.IsNotNull(relation); string oldFullPath = relation.FullPath; user.Name = "ChangedUserName"; SCObjectOperations.Instance.UpdateUser(user); relation = SchemaRelationObjectAdapter.Instance.Load(org.ID, userLoaded.ID); Assert.AreNotEqual(oldFullPath, relation.FullPath); Assert.IsTrue(relation.FullPath.IndexOf(user.Name) >= 0); }