BrickPile.Tests.Infrastructure.Listeners.StoreListenerTests.BeforeStore.Can_Move_Page_With_Multiple_Levels_Of_Children C# (CSharp) Method

Can_Move_Page_With_Multiple_Levels_Of_Children() private method

private Can_Move_Page_With_Multiple_Levels_Of_Children ( ) : void
return void
            public void Can_Move_Page_With_Multiple_Levels_Of_Children()
            {
                // Given

                Trie structureInfo;

                // When

                using (var store = this.SetupContext())
                {
                    using (var session = store.OpenSession())
                    {
                        session.Store(new FakePage {Id = "fakepages/1", Metadata = {Name = "Start"}});
                        session.Store(
                            new FakePage
                            {
                                Id = "fakepages/2",
                                Parent = new PageReference("fakepages/1"),
                                Metadata = {Name = "Child page 1"}
                            }, StoreAction.Publish);
                        session.Store(
                            new FakePage
                            {
                                Id = "fakepages/3",
                                Parent = new PageReference("fakepages/2"),
                                Metadata = {Name = "Child page 2"}
                            }, StoreAction.Publish);
                        session.Store(
                            new FakePage
                            {
                                Id = "fakepages/4",
                                Parent = new PageReference("fakepages/3"),
                                Metadata = {Name = "Child page 3"}
                            }, StoreAction.Publish);
                        session.Store(
                            new FakePage
                            {
                                Id = "fakepages/5",
                                Parent = new PageReference("fakepages/4"),
                                Metadata = {Name = "Child page 4"}
                            }, StoreAction.Publish);
                        session.Store(
                            new FakePage
                            {
                                Id = "fakepages/6",
                                Parent = new PageReference("fakepages/4"),
                                Metadata = {Name = "Child page 5"}
                            }, StoreAction.Publish);
                        session.SaveChanges();
                    }

                    using (var session = store.OpenSession())
                    {
                        IPage fakeChild = session.Load<FakePage>("fakepages/4");
                        fakeChild.Parent = new PageReference("fakepages/2");
                        session.SaveChanges();
                    }
                    using (var session = store.OpenSession())
                    {
                        structureInfo = session.Load<Trie>(DefaultBrickPileBootstrapper.TrieId);
                    }

                    // Then

                    var parent = structureInfo.RootNode.Flatten(n => n.Children).Single(n => n.PageId == "fakepages/2");
                    var childPage3 =
                        structureInfo.RootNode.Flatten(n => n.Children).Single(n => n.PageId == "fakepages/4");
                    var childPage4 =
                        structureInfo.RootNode.Flatten(n => n.Children).Single(n => n.PageId == "fakepages/5");
                    var childPage5 =
                        structureInfo.RootNode.Flatten(n => n.Children).Single(n => n.PageId == "fakepages/6");

                    Assert.Equal(2, parent.Children.Count);
                    Assert.Equal("child-page-1/child-page-3", childPage3.Url);
                    Assert.Equal(2, childPage3.Children.Count);
                    Assert.Equal("child-page-1/child-page-3/child-page-4", childPage4.Url);
                    Assert.Equal("child-page-1/child-page-3/child-page-5", childPage5.Url);
                }
            }