private void fill_1_level()
        {
            project_1 = new Project { Parent = root };
            project_1.MockId(1);

            project_2 = new Project { Parent = root };
            project_2.MockId(2);

            root.Children = new List<Project> { project_1, project_2 };
        }
        private void fill_2_level()
        {
            project_2_1 = new Project { Parent = project_2 };
            project_2_1.MockId(21);

            project_2_2 = new Project { Parent = project_2 };
            project_2_2.MockId(22);

            project_2_3 = new Project { Parent = project_2 };
            project_2_3.MockId(23);

            project_2.Children = new List<Project> { project_2_1, project_2_2, project_2_3 };
        }
Ejemplo n.º 3
0
        public void Get_Descendant_Ids()
        {
            Project project_1 = new Project();
            project_1.MockId(1);

            Project project_1_1 = new Project();
            project_1_1.MockId(11);

            Project project_1_1_1 = new Project();
            project_1_1_1.MockId(111);

            Project project_1_1_2 = new Project();
            project_1_1_2.MockId(112);

            Project project_1_1_3 = new Project();
            project_1_1_3.MockId(113);

            Project project_1_1_3_1 = new Project();
            project_1_1_3_1.MockId(1131);

            Project project_1_2 = new Project();
            project_1_2.MockId(12);

            Project project_1_3 = new Project();
            project_1_3.MockId(13);

            Project project_1_3_1 = new Project();
            project_1_3_1.MockId(131);

            project_1.Children = new List<Project> { project_1_1, project_1_2, project_1_3 };
            project_1_1.Children = new List<Project> { project_1_1_1, project_1_1_2, project_1_1_3 };
            project_1_1_3.Children = new List<Project> { project_1_1_3_1 };
            project_1_3.Children = new List<Project> { project_1_3_1 };

            IList<int> ids = project_1.GetDescendantIds();
            Assert.That(ids.Count, Is.EqualTo(9));
            Assert.That(ids.Contains(1));
            Assert.That(ids.Contains(11));
            Assert.That(ids.Contains(111));
            Assert.That(ids.Contains(112));
            Assert.That(ids.Contains(113));
            Assert.That(ids.Contains(1131));
            Assert.That(ids.Contains(12));
            Assert.That(ids.Contains(13));
            Assert.That(ids.Contains(131));
        }
        public void JoinModel_FilledBy_Project_And_User()
        {
            #region Set Projects Tree

            Project root = new Project();
            root.MockId(0);
            Project child_project_1 = new Project();
            child_project_1.MockId(1);
            Project child_project_2 = new Project();
            child_project_2.MockId(2);
            Project child_project_1_1 = new Project();
            child_project_1_1.MockId(11);
            Project child_project_1_2 = new Project();
            child_project_1_2.MockId(12);
            Project child_project_1_3 = new Project();
            child_project_1_3.MockId(13);
            Project child_project_2_1 = new Project();
            child_project_2_1.MockId(21);
            Project child_project_1_2_1 = new Project();
            child_project_1_2_1.MockId(121);
            Project child_project_1_2_2 = new Project();
            child_project_1_2_2.MockId(122);

            child_project_1_2_1.Parent = child_project_1_2;
            child_project_1_2_2.Parent = child_project_1_2;
            child_project_1_2.Children = new List<Project> { child_project_1_2_1, child_project_1_2_2 };

            child_project_1_1.Parent = child_project_1;
            child_project_1_2.Parent = child_project_1;
            child_project_1_3.Parent = child_project_1;
            child_project_1.Children = new List<Project> { child_project_1_1, child_project_1_2, child_project_1_3 };

            child_project_2_1.Parent = child_project_2;
            child_project_2.Children = new List<Project> { child_project_2_1 };

            child_project_1.Parent = root;
            child_project_2.Parent = root;
            root.Children = new List<Project> { child_project_1, child_project_2 };

            #endregion

            #region user_1_2_1

            User user_1_2_1 = new User();
            user_1_2_1.MockId(12100);
            user_1_2_1.Join(child_project_1_2_1);

            JoinModel model_1_2_1 = new JoinModel();
            model_1_2_1.FilledBy(root, user_1_2_1.Id);

            Assert.That(model_1_2_1.Children, Is.Null);
            Assert.That(model_1_2_1.HasJoined, Is.True);
            Assert.That(model_1_2_1.Item.LiteItem.Id, Is.EqualTo(0));
            Assert.That(model_1_2_1.Selected, Is.True);

            #endregion

            #region user_1_2

            #region Joined Only Single child_project_1_2

            User user_1_2 = new User();
            user_1_2.MockId(1200);
            user_1_2.Join(child_project_1_2);

            JoinModel model_1_2_single = new JoinModel();
            model_1_2_single.FilledBy(child_project_1_2, user_1_2.Id);

            //the user doesn't join child_project_1_1_x, so its Children still null
            Assert.That(model_1_2_single.Children, Is.Null);
            Assert.That(model_1_2_single.HasJoined, Is.True);
            Assert.That(model_1_2_single.Item.LiteItem.Id, Is.EqualTo(0));
            Assert.That(model_1_2_single.Selected, Is.True);

            #endregion

            #region Joined both child_project_1_2 and child_project_1_2_2

            user_1_2.Join(child_project_1_2_2);

            JoinModel model_1_2_multiple = new JoinModel();
            model_1_2_multiple.FilledBy(child_project_1_2, user_1_2.Id);

            Assert.That(model_1_2_multiple.HasJoined, Is.True);
            Assert.That(model_1_2_multiple.Item.LiteItem.Id, Is.EqualTo(0));
            Assert.That(model_1_2_multiple.Selected, Is.True);

            Assert.That(model_1_2_multiple.Children.Count, Is.EqualTo(2));

            JoinModel model_1_2_child_1 = model_1_2_multiple.Children.Where(m => m.Item.LiteItem.Id == child_project_1_2_1.Id).SingleOrDefault();
            Assert.That(model_1_2_child_1.HasJoined, Is.False);
            Assert.That(model_1_2_child_1.Selected, Is.False);

            JoinModel model_1_2_child_2 = model_1_2_multiple.Children.Where(m => m.Item.LiteItem.Id == child_project_1_2_2.Id).SingleOrDefault();
            Assert.That(model_1_2_child_2.HasJoined, Is.True);
            Assert.That(model_1_2_child_2.Selected, Is.True);

            #endregion

            #endregion

            #region user_1

            User user_1 = new User();
            user_1.MockId(1);

            user_1.Join(child_project_1);
            user_1.Join(child_project_1_1);
            user_1.Join(child_project_1_2_1);
            user_1.Join(child_project_1_2_2);

            JoinModel model_1 = new JoinModel();
            model_1.FilledBy(child_project_1, user_1.Id);

            //make sure child_project_1_3 is in the tree
            Assert.That(model_1.Children.Count, Is.EqualTo(3));

            //make sure child_project_1_2_1, child_project_1_2_2 is in the tree
            JoinModel model_1_child_2 = model_1.Children.Where(m => m.Item.LiteItem.Id == child_project_1_2.Id).SingleOrDefault();
            Assert.That(model_1_child_2.Children.Count, Is.EqualTo(2));
            //and child_project_1_2 is not joined
            Assert.That(model_1_child_2.HasJoined, Is.False);
            Assert.That(model_1_child_2.Selected, Is.False);

            #endregion
        }
Ejemplo n.º 5
0
        public void Setup()
        {
            User zyfei = new User { Name = "自由飞" };
            authorization_1 = new Authorization
            {
                User = zyfei,
                IsAdmin = true,
                IsFounder = true,
                IsPublisher = false,
                IsOwner = false
            };
            zyfei.Authorizations = new List<Authorization> { authorization_1 };

            User yongbaosijie = new User { Name = "拥抱世界" };
            authorization_2 = new Authorization
            {
                User = yongbaosijie,
                IsAdmin = false,
                IsFounder = false,
                IsPublisher = true,
                IsOwner = false
                //TODO: not define the Project, OK?
            };
            yongbaosijie.Authorizations = new List<Authorization> { authorization_2 };

            User jishuzai = new User { Name = "技术宅" };
            authorization_3 = new Authorization
            {
                User = jishuzai,
                IsAdmin = false,
                IsFounder = false,
                IsPublisher = true,
                IsOwner = false
            };
            jishuzai.Authorizations = new List<Authorization> { authorization_3 };

            User kejigaibianshenghou = new User { Name = "科技改变生活" };
            authorization_4 = new Authorization
            {
                User = kejigaibianshenghou,
                IsAdmin = false,
                IsFounder = false,
                IsPublisher = false,
                IsOwner = false
            };
            kejigaibianshenghou.Authorizations = new List<Authorization> { authorization_4 };

            authorizations = new List<Authorization>
            {
                authorization_1,authorization_2,authorization_3,authorization_4
            };

            project_1 = new Project();
            project_1.MockId(1);
            project_1.Name = "创业家园";
            project_1.Description = "创业者的心灵家园";

            project_2 = new Project();
            project_2.MockId(2);
            project_2.Name = "前台";
            project_2.Description = "负责页面";

            project_3 = new Project();
            project_3.MockId(3);
            project_3.Name = "后台";
            project_3.Description = "负责业务流程";

            project_4 = new Project();
            project_4.MockId(4);
            project_4.Name = "文档";
            project_4.Description = "负责文档的编写";

            project_5 = new Project();
            project_5.MockId(5);
            project_5.Name = "任务管理";
            project_5.Description = "任务的分配承接的系统";

            project_6 = new Project();
            project_6.MockId(6);
            project_6.Name = "前台";
            project_6.Description = "负责页面";

            project_7 = new Project();
            project_7.MockId(7);
            project_7.Name = "后台";
            project_7.Description = "负责业务流程";

            project_1.AddChild(project_2);
            project_1.AddChild(project_3);
            project_1.AddChild(project_4);

            project_5.AddChild(project_6);
            project_5.AddChild(project_7);

            project = new Project
            {
                Children = new List<Project> { project_1, project_5 },
                Name = "自由飞任务管理系统",
                Description = null,
                Authorizations = authorizations
            };
            project_1.Authorizations = authorizations;
            project_2.Authorizations = authorizations;
            project_5.Authorizations = authorizations;
        }