Exemplo n.º 1
0
            public void Can_Rename_Root_Page()
            {
                // Given

                Trie structureInfo;

                var store = SetupContext();

                // When

                using (var session = store.OpenSession())
                {
                    session.Store(new FakePage {
                        Id = "fakepages/1", Metadata = { Name = "Start" }
                    }, StoreAction.Publish);
                    session.SaveChanges();
                }

                using (var session = store.OpenSession())
                {
                    IPage page = session.Load <FakePage>("fakepages/1");
                    page.Metadata.Name = "The new name";
                    session.SaveChanges();
                }

                using (var session = store.OpenSession())
                {
                    structureInfo = session.Load <Trie>(DefaultBrickPileBootstrapper.TrieId);
                }

                // Then

                Assert.Null(structureInfo.RootNode.Url);
            }
Exemplo n.º 2
0
            public void Can_Move_Page_With_Multiple_Levels_Of_Children()
            {
                // Given

                Trie structureInfo;

                var store = SetupContext();

                // When

                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);
            }
Exemplo n.º 3
0
            public void Can_Move_Page()
            {
                // Given

                Trie structureInfo;

                var store = SetupContext();

                // When

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

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

                // Then

                Assert.Equal("fakepages/1", structureInfo.RootNode.Children.Single(node => node.PageId == "fakepages/3").ParentId);
            }
Exemplo n.º 4
0
            public void Slug_Should_Not_Be_Changed_When_Renaming_A_Page()
            {
                // Given

                Trie structureInfo;
                var  store = SetupContext();

                // When

                using (var session = store.OpenSession())
                {
                    session.Store(new FakePage {
                        Id = "FakePages/1", Metadata = { Name = "Start" }
                    }, StoreAction.Publish);
                    session.Store(new FakePage {
                        Id = "FakePages/2", Parent = new PageReference("FakePages/1"), Metadata = { Name = "Child page" }
                    }, StoreAction.Publish);
                    session.SaveChanges();
                }

                using (var session = store.OpenSession())
                {
                    IPage page = session.Load <FakePage>("FakePages/2");
                    page.Metadata.Name = "The new name";
                    session.SaveChanges();
                }

                using (var session = store.OpenSession())
                {
                    structureInfo = session.Load <Trie>(DefaultBrickPileBootstrapper.TrieId);
                }

                // Then

                Assert.Equal("child-page", structureInfo.RootNode.Children.First().Url);
            }
Exemplo n.º 5
0
 /// <summary>
 /// Actions the link.
 /// </summary>
 /// <param name="htmlHelper">The HTML helper.</param>
 /// <param name="model">The model.</param>
 /// <param name="htmlAttributes">The HTML attributes.</param>
 /// <returns></returns>
 public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, IPage model, object htmlAttributes)
 {
     return(htmlHelper.ActionLink(model.Metadata.Name, model, htmlAttributes));
 }
Exemplo n.º 6
0
 /// <summary>
 /// Actions the link.
 /// </summary>
 /// <param name="htmlHelper">The HTML helper.</param>
 /// <param name="model">The model.</param>
 /// <returns></returns>
 public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, IPage model)
 {
     return(htmlHelper.ActionLink(model.Metadata.Name, model));
 }
Exemplo n.º 7
0
 /// <summary>
 /// Actions the specified URL helper.
 /// </summary>
 /// <param name="urlHelper">The URL helper.</param>
 /// <param name="actionName">Name of the action.</param>
 /// <param name="model">The model.</param>
 /// <returns></returns>
 public static string Action(this UrlHelper urlHelper, string actionName, IPage model)
 {
     return(urlHelper.Action(actionName, new { currentPage = model }));
 }
Exemplo n.º 8
0
 /// <summary>
 /// Actions the specified URL helper.
 /// </summary>
 /// <param name="urlHelper">The URL helper.</param>
 /// <param name="model">The model.</param>
 /// <returns></returns>
 public static string Action(this UrlHelper urlHelper, IPage model)
 {
     return(urlHelper.Action("index", new { currentPage = model }));
 }
Exemplo n.º 9
0
 /// <summary>
 /// Actions the link.
 /// </summary>
 /// <param name="htmlHelper">The HTML helper.</param>
 /// <param name="linkText">The link text.</param>
 /// <param name="model">The model.</param>
 /// <param name="htmlAttributes">The HTML attributes.</param>
 /// <returns></returns>
 public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, IPage model,
                                        object htmlAttributes)
 {
     return(htmlHelper.ActionLink(linkText, "index", new { currentPage = model }, htmlAttributes));
 }
Exemplo n.º 10
0
 /// <summary>
 /// Actions the link.
 /// </summary>
 /// <param name="htmlHelper">The HTML helper.</param>
 /// <param name="linkText">The link text.</param>
 /// <param name="model">The model.</param>
 /// <returns></returns>
 public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, IPage model)
 {
     return(htmlHelper.ActionLink(linkText, model, null));
 }