public void LegalMoveOrganizationTest()
        {
            this.InitAdmins();

            var mainRole = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));

            var mainOrg = this.GetOrganizationByCodeName("costEngineer");

            var testOrgA  = this.NewObject <PC.SCOrganization>("测试组织A");
            var testOrgB1 = this.NewObject <PC.SCOrganization>("测试组织B1");
            var testOrgB2 = this.NewObject <PC.SCOrganization>("测试组织B2");
            var testOrgC  = this.NewObject <PC.SCOrganization>("测试组织C");

            Facade.AddOrganization(testOrgA, mainOrg);
            Facade.AddOrganization(testOrgB1, testOrgA);
            Facade.AddOrganization(testOrgB2, testOrgA);
            Facade.AddOrganization(testOrgC, testOrgB1);

            this.SetContainerMemberAndPermissions(testOrgB1, mainRole, new string[] { "DeleteChildren" });
            this.SetContainerMemberAndPermissions(testOrgB2, mainRole, new string[] { "AddChildren" });

            this.SetCurrentPrincipal(this.GetUserByCodeName("wanglch"));

            FacadeWithAcl.MoveObjectToOrganization(testOrgB1, testOrgC, testOrgB2);

            var actual = PC.Adapters.SchemaRelationObjectAdapter.Instance.Load(testOrgB2.ID, testOrgC.ID);

            Assert.IsNotNull(actual);
        }
        public void IllegalMoveOrganizationTest1()
        {
            this.InitAdmins();

            var mainRole = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));

            var mainOrg = this.GetOrganizationByCodeName("costEngineer");

            var testOrgA  = this.NewObject <PC.SCOrganization>("测试组织A");
            var testOrgB1 = this.NewObject <PC.SCOrganization>("测试组织B1");
            var testOrgB2 = this.NewObject <PC.SCOrganization>("测试组织B2");
            var testOrgC  = this.NewObject <PC.SCOrganization>("测试组织C");

            Facade.AddOrganization(testOrgA, mainOrg);
            Facade.AddOrganization(testOrgB1, testOrgA);
            Facade.AddOrganization(testOrgB2, testOrgA);
            Facade.AddOrganization(testOrgC, testOrgB1);

            this.SetContainerMemberAndPermissions(testOrgB1, mainRole, new string[] { "DeleteChildren" });
            this.SetContainerMemberAndPermissions(testOrgB2, mainRole, new string[] { });

            this.SetCurrentPrincipal(this.GetUserByCodeName("wanglch"));

            FacadeWithAcl.MoveObjectToOrganization(testOrgB1, testOrgC, testOrgB2);

            Assert.Fail("不应执行到此");
        }
        public void AdminMoveUserTest()
        {
            this.InitAdmins();

            var mainRole = this.CreateDefaultRoleWithMembers(this.GetSCUsersByCodeNames("wanglch"));

            var mainOrg = this.GetOrganizationByCodeName("costEngineer");

            var testOrgA  = this.NewObject <PC.SCOrganization>("测试组织A");
            var testOrgB1 = this.NewObject <PC.SCOrganization>("测试组织B1");
            var testOrgB2 = this.NewObject <PC.SCOrganization>("测试组织B2");
            var testUser  = this.NewObject <PC.SCUser>("测试群组");

            Facade.AddOrganization(testOrgA, mainOrg);
            Facade.AddOrganization(testOrgB1, testOrgA);
            Facade.AddOrganization(testOrgB2, testOrgA);
            Facade.AddUser(testUser, testOrgB1);

            FacadeWithAcl.MoveObjectToOrganization(testOrgB1, testUser, testOrgB2);

            var actual = PC.Adapters.SchemaRelationObjectAdapter.Instance.Load(testOrgB2.ID, testUser.ID);

            Assert.IsNotNull(actual);

            Assert.AreEqual(actual.Default, true);
        }