示例#1
0
        public void DeletingAnItemResetsIndexes()
        {
            var child0 = new TestTreeItem(0);
            var child1 = new TestTreeItem(1);
            var child2 = new TestTreeItem(2);
            var child3 = new TestTreeItem(3);
            var child4 = new TestTreeItem(4);

            var parent = new TestTreeItem(0, child0, child1, child2, child3, child4);


            child2.Delete();

            for (int i = 0; i < parent.Children.Count; ++i)
            {
                parent.Children[i].Index.Should().Be(i);
            }

            parent.Children.Should().HaveCount(4);

            parent.Children[0].Should().Be(child0);
            parent.Children[1].Should().Be(child1);
            parent.Children[2].Should().Be(child3);
            parent.Children[3].Should().Be(child4);
        }
示例#2
0
        public void MovingItemsResetsGuardProperties()
        {
            var child0 = new TestTreeItem(0);
            var child1 = new TestTreeItem(1);
            var child2 = new TestTreeItem(2);
            var child3 = new TestTreeItem(3);
            var child4 = new TestTreeItem(4);

            var parent = new TestTreeItem(0, child0, child1, child2, child3, child4);

            child0.CanMoveUp.Should().BeFalse();
            child1.CanMoveUp.Should().BeTrue();

            child1.MoveUp();

            child0.CanMoveUp.Should().BeTrue();
            child1.CanMoveUp.Should().BeFalse();


            child3.CanMoveDown.Should().BeTrue();
            child4.CanMoveDown.Should().BeFalse();

            child3.MoveDown();

            child3.CanMoveDown.Should().BeFalse();
            child4.CanMoveDown.Should().BeTrue();
        }
示例#3
0
        public void FirstItemCannotMoveUpButSubsequentOnesCan()
        {
            var child0 = new TestTreeItem(0);
            var child1 = new TestTreeItem(1);
            var child2 = new TestTreeItem(2);
            var child3 = new TestTreeItem(3);
            var child4 = new TestTreeItem(4);

            var parent = new TestTreeItem(0, child0, child1, child2, child3, child4);

            child0.CanMoveUp.Should().BeFalse();
            child1.CanMoveUp.Should().BeTrue();
            child2.CanMoveUp.Should().BeTrue();
            child3.CanMoveUp.Should().BeTrue();
            child4.CanMoveUp.Should().BeTrue();
        }
示例#4
0
        public void ItemsWithParentCanBeDeleted()
        {
            var child0 = new TestTreeItem(0);
            var child1 = new TestTreeItem(1);
            var child2 = new TestTreeItem(2);
            var child3 = new TestTreeItem(3);
            var child4 = new TestTreeItem(4);

            var parent = new TestTreeItem(0, child0, child1, child2, child3, child4);

            parent.CanDelete.Should().BeFalse();
            child0.CanDelete.Should().BeTrue();
            child1.CanDelete.Should().BeTrue();
            child2.CanDelete.Should().BeTrue();
            child3.CanDelete.Should().BeTrue();
            child4.CanDelete.Should().BeTrue();
        }
示例#5
0
        public void MovingAnItemDownPreservesIndexes()
        {
            var child0 = new TestTreeItem(0);
            var child1 = new TestTreeItem(1);
            var child2 = new TestTreeItem(2);
            var child3 = new TestTreeItem(3);
            var child4 = new TestTreeItem(4);

            var parent = new TestTreeItem(0, child0, child1, child2, child3, child4);


            child2.MoveDown();

            for (int i = 0; i < parent.Children.Count; ++i)
            {
                parent.Children[i].Index.Should().Be(i);
            }

            parent.Children[0].Should().Be(child0);
            parent.Children[1].Should().Be(child1);
            parent.Children[2].Should().Be(child3);
            parent.Children[3].Should().Be(child2);
            parent.Children[4].Should().Be(child4);
        }
示例#6
0
        public static async Task GenerateTreeItems(this INextApiApplication application)
        {
            using var db = application.ResolveDbContext <ITestDbContext>();
            var mainTree = new TestTreeItem
            {
                Id       = 1,
                Name     = "Node1",
                ParentId = null,
                Children = new Collection <TestTreeItem>
                {
                    new TestTreeItem
                    {
                        Id       = 2,
                        Name     = "Node1_1",
                        ParentId = 1,
                        Children = new Collection <TestTreeItem>
                        {
                            new TestTreeItem {
                                Id = 3, Name = "Node1_1_1", ParentId = 2
                            }
                        }
                    },
                    new TestTreeItem
                    {
                        Id       = 4,
                        Name     = "Node1_2",
                        ParentId = 1,
                        Children = new Collection <TestTreeItem>
                        {
                            new TestTreeItem {
                                Id = 5, Name = "Node1_2_1", ParentId = 4
                            }
                        }
                    },
                    new TestTreeItem
                    {
                        Id       = 6,
                        Name     = "Node1_3",
                        ParentId = 1,
                        Children = new Collection <TestTreeItem>
                        {
                            new TestTreeItem {
                                Id = 7, Name = "Node1_3_1", ParentId = 6
                            }
                        }
                    }
                }
            };
            var sampleTestTreeItems = new List <TestTreeItem>();

            for (var i = 8; i < 38; i++)
            {
                sampleTestTreeItems.Add(new TestTreeItem {
                    Id = i, Name = $"Node{i}"
                });
            }

            await db.Context.TestTreeItems.AddAsync(mainTree);

            await db.Context.TestTreeItems.AddRangeAsync(sampleTestTreeItems);

            await db.Context.SaveChangesAsync();
        }