public void Add_HierarchyTest()
        {
            TestHelper.ClearDatabase(options);

            TaskNote[] tasks = { new TaskNote {
                                     Name = "1"
                                 }, new TaskNote{
                                     Name = "2"
                                 }, new TaskNote{
                                     Name = "3"
                                 } };
            var        manager = new TaskTreeManager(options);

            manager.Add(tasks[0]);
            manager.Add(tasks[1], tasks[0]);
            manager.Add(tasks[2], tasks[0]);

            var    Descendants = manager.GetDescendants(tasks[0].Id);
            Action act         = () => manager.Add(null);

            Assert.Equal(tasks[0].Id, manager.GetAncestor(tasks[1].Id).Id);
            Assert.Equal(tasks[0].Id, manager.GetAncestor(tasks[2].Id).Id);
            Assert.Single(Descendants.Where(t => t.Id == tasks[1].Id));
            Assert.Single(Descendants.Where(t => t.Id == tasks[2].Id));
            Assert.Throws <NullReferenceException>(act);
        }
        public void GetRoots()
        {
            TestHelper.ClearDatabase(options);

            TaskNote[]      tasks   = new TaskNote[4];
            TaskTreeManager manager = new TaskTreeManager(options);

            for (int i = 0; i < tasks.Length; i++)
            {
                tasks[i] = new TaskNote {
                    Name = (i + 1).ToString() + "t"
                }
            }
            ;

            manager.Add(tasks[0]);
            manager.Add(tasks[1]);
            manager.Add(tasks[2]);
            manager.Add(tasks[3], tasks[0]);
            List <TaskNote> roots = manager.GetRoots();

            Assert.Equal(3, roots.Count);
            foreach (TaskNote root in roots)
            {
                Assert.NotNull(root);
            }
        }
    }
        public void Remove_ThorwsNotFoundExceptionTest()
        {
            TestHelper.ClearDatabase(options);

            int             id      = -1;
            TaskTreeManager manager = new TaskTreeManager(options);

            Action act = () => manager.Remove(id);

            Assert.Throws <NotFoundException>(act);
        }
        public void Update_AddNonExistentTaskOnUpdateTest()
        {
            TestHelper.ClearDatabase(options);

            TaskNote task = new TaskNote {
                Name = "1t"
            };
            TaskTreeManager manager = new TaskTreeManager(options);

            manager.Update(task);

            Assert.NotNull(manager.Find(task.Id));
        }
        public void Add_ThrowsNotFoundExceptionTest()
        {
            TestHelper.ClearDatabase(options);

            TaskNote[]      tasks = { new TaskNote {
                                          Name = "1"
                                      }, new TaskNote   {
                                          Name = "2"
                                      } };
            TaskTreeManager manager = new TaskTreeManager(options);

            Action act = () => manager.Add(tasks[0], tasks[1]);

            Assert.Throws <NotFoundException>(act);
        }
        public void Update_UpdateTest()
        {
            TestHelper.ClearDatabase(options);

            TaskNote task = new TaskNote {
                Name = "1t"
            };
            TaskTreeManager manager = new TaskTreeManager(options);

            manager.Add(task);
            task.Name = "1t_updated";
            manager.Update(task);

            Assert.Equal(task.Name, manager.Find(task.Id).Name);
        }
        public void HasDescendants_Test()
        {
            TestHelper.ClearDatabase(options);
            TaskNote[]      tasks = { new TaskNote {
                                          Name = "1t"
                                      }, new TaskNote   {
                                          Name = "2t"
                                      } };
            TaskTreeManager manager = new TaskTreeManager(options);

            manager.Add(tasks[0]);
            manager.Add(tasks[1], tasks[0]);

            Assert.True(manager.HasDescendants(tasks[0].Id));
            Assert.False(manager.HasDescendants(tasks[1].Id));
        }
        public void Remove_ThrowsNonTerminalExceptionTest()
        {
            TestHelper.ClearDatabase(options);

            TaskNote[]      tasks = { new TaskNote {
                                          Name = "1"
                                      }, new TaskNote   {
                                          Name = "2"
                                      } };
            TaskTreeManager manager = new TaskTreeManager(options);

            manager.Add(tasks[0]);
            manager.Add(tasks[1], tasks[0]);
            Action act = () => manager.Remove(tasks[0].Id);

            Assert.Throws <NonTerminalException>(act);
        }
        public void IsTerminal_Test()
        {
            TestHelper.ClearDatabase(options);

            TaskNote[]      tasks = { new TaskNote {
                                          Name = "1"
                                      }, new TaskNote   {
                                          Name = "2"
                                      } };
            TaskTreeManager manager = new TaskTreeManager(options);

            manager.Add(tasks[0]);
            manager.Add(tasks[1], tasks[0]);

            Assert.True(manager.IsTerminal(tasks[1].Id));
            Assert.False(manager.IsTerminal(tasks[0].Id));
        }
Пример #10
0
        public void Remove_RemoveTerminalTaskTest()
        {
            TestHelper.ClearDatabase(options);

            TaskNote[]      tasks = { new TaskNote {
                                          Name = "1"
                                      }, new TaskNote   {
                                          Name = "2"
                                      } };
            TaskTreeManager manager = new TaskTreeManager(options);

            manager.Add(tasks[0]);
            manager.Add(tasks[1], tasks[0]);
            manager.Remove(tasks[1].Id);

            Assert.Null(manager.Find(tasks[1].Id));
            Assert.Empty(manager.GetDescendants(tasks[0].Id));
        }
Пример #11
0
        public void Add_ThrowsAddingExceptionTest()
        {
            TestHelper.ClearDatabase(options);

            TaskNote task = new TaskNote {
                Name = "1"
            };
            TaskNote task2 = new TaskNote {
                Name = "2"
            };
            TaskTreeManager manager = new TaskTreeManager(options);

            manager.Add(task);
            Action act1 = () => manager.Add(task);

            manager.Add(task2);
            Action act2 = () => manager.Add(task2);

            Assert.Throws <AddingException>(act1);
            Assert.Throws <AddingException>(act2);
        }
Пример #12
0
        public void GetAncestor_Test()
        {
            TestHelper.ClearDatabase(options);

            TaskNote[]      tasks = { new TaskNote {
                                          Name = "1"
                                      }, new TaskNote   {
                                          Name = "2"
                                      }, new TaskNote   {
                                          Name = "3"
                                      } };
            TaskTreeManager manager = new TaskTreeManager(options);

            manager.Add(tasks[0]);
            manager.Add(tasks[1], tasks[0]);
            manager.Add(tasks[2], tasks[0]);

            Assert.Null(manager.GetAncestor(tasks[0].Id));
            Assert.Equal(tasks[0].Id, manager.GetAncestor(tasks[1].Id).Id);
            Assert.Equal(tasks[0].Id, manager.GetAncestor(tasks[2].Id).Id);
        }
Пример #13
0
        public void GetDescendants_Test()
        {
            TestHelper.ClearDatabase(options);

            TaskNote[]      tasks = { new TaskNote {
                                          Name = "1"
                                      }, new TaskNote   {
                                          Name = "2"
                                      }, new TaskNote   {
                                          Name = "3"
                                      } };
            TaskTreeManager manager = new TaskTreeManager(options);

            manager.Add(tasks[0]);
            manager.Add(tasks[1], tasks[0]);
            manager.Add(tasks[2], tasks[0]);
            List <TaskNote> Descendants = manager.GetDescendants(tasks[0].Id);

            Assert.Equal(2, Descendants.Count);
            Assert.Single(Descendants.Where(d => d.Id == tasks[1].Id));
            Assert.Single(Descendants.Where(d => d.Id == tasks[2].Id));
            Assert.Empty(manager.GetDescendants(tasks[1].Id));
        }