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); }
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(); }
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(); }
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(); }
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); }
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(); }