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