public void Get_descendants() { // Arrange var root = FakePage .Create("Root"); var start = FakePage .Create("Start") .ChildOf(root); FakePage .Create("About us") .ChildOf(start); _fake.AddToRepository(root); // An instance of IContentRepository that you can use for Dependency Injection var repository = _fake.ContentRepository; // Or, an instance of IContentLoader that you can use for Dependency Injection var loader = _fake.ContentLoader; // Act var descendants_from_repo = repository.GetDescendents(root.Content.ContentLink); var descendants_from_loader = loader.GetDescendents(root.Content.ContentLink); //Assert Assert.That(descendants_from_repo.Count(), Is.EqualTo(2)); Assert.That(descendants_from_loader.Count(), Is.EqualTo(2)); }
public void Get_pages_of_certain_pagedata_type() { // Arrange var root = FakePage .Create("root"); FakePage .Create("AboutUs") .ChildOf(root); FakePage .Create <CustomPageData>("OtherPage") .ChildOf(root); FakePage .Create("Contact") .ChildOf(root); _fake.AddToRepository(root); // An instance of IContentRepository that you can use for Dependency Injection var repository = _fake.ContentRepository; // Or, an instance of IContentLoader that you can use for Dependency Injection var loader = _fake.ContentLoader; // Act var pages_from_repo = GetDescendantsOf <CustomPageData>(root.Content.ContentLink, repository); var pages_from_loader = GetDescendantsOf <CustomPageData>(root.Content.ContentLink, loader); // Assert Assert.That(pages_from_repo.Count(), Is.EqualTo(1)); Assert.That(pages_from_loader.Count(), Is.EqualTo(1)); }
public void Get_children_as_explicit_page_type() { // Arrange var root = FakePage .Create("Root"); var start = FakePage .Create("Start") .ChildOf(root).AsStartPage(); var aboutUs = FakePage .Create <CustomPageData>("About us") .ChildOf(start); _fake.AddToRepository(root); var customPageDataList = new List <CustomPageData> { aboutUs.To <CustomPageData>() }; // Custom mocking that is not handled by FakeMaker _fake.GetMockForFakeContentRepository() .Setup(repo => repo.GetChildren <CustomPageData>(ContentReference.StartPage)) .Returns(customPageDataList); // Act var children = _fake.ContentRepository.GetChildren <CustomPageData>(ContentReference.StartPage); // Assert Assert.That(children.Count(), Is.EqualTo(1)); }
public void Get_descendants_from_with_children() { // Arrange var root = FakePage.Create("root") .WithChildren( new List <FakePage> { FakePage.Create("AboutUs"), FakePage.Create("News").WithChildren(new List <FakePage> { FakePage.Create("News item 1"), FakePage.Create("News item 2") }), FakePage.Create("Contact") }); _fake.AddToRepository(root); // An instance of IContentRepository that you can use for Dependency Injection var repository = _fake.ContentRepository; // Or, an instance of IContentLoader that you can use for Dependency Injection var loader = _fake.ContentLoader; // Act var pages_from_repo = repository.GetDescendents(root.Content.ContentLink); var pages_from_loader = loader.GetDescendents(root.Content.ContentLink); // Assert Assert.That(pages_from_repo.Count(), Is.EqualTo(5)); Assert.That(pages_from_loader.Count(), Is.EqualTo(5)); }
public void Slug_Should_Be_Normalized(string name) { // Given var page = new FakePage { Metadata = { Name = name } }; // When var result = Slug.CreateSlug(page); //Then Assert.NotNull(result); Assert.DoesNotContain(" ", result); Assert.DoesNotContain("--", result); Assert.DoesNotContain("å", result); Assert.DoesNotContain("ä", result); Assert.DoesNotContain("ö", result); Assert.DoesNotContain("/", result); }
public void Get_descendants_by_using_ServiceLocator() { // Arrange var root = FakePage .Create("Root"); var start = FakePage .Create("Start") .ChildOf(root); FakePage .Create("About us") .ChildOf(start); _fake.AddToRepository(root); var repository = ServiceLocator.Current.GetInstance <IContentRepository>(); var loader = ServiceLocator.Current.GetInstance <IContentLoader>(); // Act var descendants_from_repo = repository.GetDescendents(root.Content.ContentLink); var descendants_from_loader = loader.GetDescendents(root.Content.ContentLink); //Assert Assert.That(descendants_from_repo.Count(), Is.EqualTo(2)); Assert.That(descendants_from_loader.Count(), Is.EqualTo(2)); }
public void Get_children() { // Arrange var root = FakePage.Create("root"); FakePage .Create("AboutUs") .ChildOf(root); FakePage .Create("OtherPage") .ChildOf(root); FakePage .Create("Contact") .ChildOf(root); _fake.AddToRepository(root); // An instance of IContentRepository that you can use for Dependency Injection var repository = _fake.ContentRepository; // Or, an instance of IContentLoader that you can use for Dependency Injection var loader = _fake.ContentLoader; // Act var pages_from_repo = repository.GetChildren <IContent>(root.Content.ContentLink); var pages_from_loader = loader.GetChildren <IContent>(root.Content.ContentLink); // Assert Assert.That(pages_from_repo.Count(), Is.EqualTo(3)); Assert.That(pages_from_loader.Count(), Is.EqualTo(3)); }
public static IEnumerable <FakePage> RandomPages(int count) { for (var i = 0; i < count; i++) { yield return(FakePage.Create(Guid.NewGuid().ToString())); } }
public void it_returns_different_singleton_for_different_parent_pages() { SetupFakes(); var fakeRoot = FakePage.Create("Root"); var firstStart = FakePage.Create("Start") .ChildOf(fakeRoot) .WithChildren(Fixture.RandomPages(10)); var firstSingleton = FakePage.Create <TestPage>("First test page") .ChildOf(firstStart); var secondStart = FakePage.Create("Second start") .ChildOf(firstStart) .WithChildren(Fixture.RandomPages(10)); var secondSingleton = FakePage.Create <TestPage>("Second test page") .ChildOf(secondStart); _fake.AddToRepository(fakeRoot); var firstActual = firstStart.Page.PageLink.GetSingletonPage <TestPage>(); var secondActual = secondStart.Page.PageLink.GetSingletonPage <TestPage>(); Assert.NotNull(firstActual); Assert.NotNull(secondActual); Assert.NotEqual(firstActual.ContentLink, secondActual.ContentLink); Assert.Equal(firstSingleton.Page.ContentLink, firstActual.ContentLink); Assert.Equal(secondSingleton.Page.ContentLink, secondActual.ContentLink); }
public void Can_Query_Page_Using_AllPages_Index() { // Arrange IPage data; using (var store = NewDocumentStore()) { IndexCreation.CreateIndexes(typeof (DefaultBrickPileBootstrapper).Assembly, store); // Act using (var session = store.OpenSession()) { var pageModel = new FakePage { Id = "fakepages/1", Parent = null, Metadata = {Name = "Foo"} }; session.Store(pageModel); session.SaveChanges(); } using (var session = store.OpenSession()) { data = session.Query<IPage, AllPages>() .Customize(x => x.WaitForNonStaleResults()) .SingleOrDefault(x => x.Metadata.Name == "Foo"); } // Assert Assert.NotNull(data); } }
public void Can_Resolve_Virtual_Path_For_Page_With_Query_Parameter() { // Given var store = A.Fake <IDocumentStore>(); var mapper = A.Fake <IControllerMapper>(); var context = A.Fake <HttpContextBase>(); var trie = A.Fake <IRouteResolverTrie>(); var currentPage = new FakePage { Metadata = { Url = "fake-page" } }; context.Request.RequestContext.RouteData.Values[DefaultRoute.CurrentPageKey] = currentPage; // When var route = new DefaultRoute(new VirtualPathResolver(), new DefaultRouteResolver(trie), store, mapper); VirtualPathData data = route.GetVirtualPath(context.Request.RequestContext, new RouteValueDictionary(new { currentPage, page = "1", mode = "edit" })); // Then Assert.NotNull(data); Assert.Equal("fake-page/?page=1&mode=edit", data.VirtualPath); }
public void Can_Query_Page_Using_AllPages_Index() { // Arrange IPage data; var store = NewDocumentStore(); IndexCreation.CreateIndexes(typeof(DefaultBrickPileBootstrapper).Assembly, store); // Act using (var session = store.OpenSession()) { var pageModel = new FakePage { Id = "fakepages/1", Parent = null, Metadata = { Name = "Foo" } }; session.Store(pageModel); session.SaveChanges(); } using (var session = store.OpenSession()) { data = session.Query <IPage, AllPages>() .Customize(x => x.WaitForNonStaleResults()) .SingleOrDefault(x => x.Metadata.Name == "Foo"); } // Assert Assert.NotNull(data); }
public void Setup() { _fake = new FakeMaker(); // Arrange: create a page tree _root = FakePage.Create("root"); _start = FakePage .Create("Start") .ChildOf(_root) .AsStartPage(); FakePage .Create("AboutUs") .ChildOf(_root); FakePage .Create <CustomPageData>("OtherPage") .ChildOf(_root) .HiddenFromMenu(); FakePage .Create("Contact") .ChildOf(_root); FakePage .Create("Our sub page") .ChildOf(_start); // Arrange: add the entire page tree to the episerver repository. _fake.AddToRepository(_root); }
public void Get_children_as_base_content_interface_type() { // Arrange var root = FakePage .Create("Root"); var start = FakePage .Create("Start") .ChildOf(root).AsStartPage(); var aboutUs = FakePage .Create("About us") .ChildOf(start); _fake.AddToRepository(root); // An instance of IContentRepository that you can use for Dependency Injection var repository = _fake.ContentRepository; // Or, an instance of IContentLoader that you can use for Dependency Injection var loader = _fake.ContentLoader; // Act var children_from_repo = repository.GetChildren <IContentData>(ContentReference.StartPage); var children_from_loader = loader.GetChildren <IContentData>(ContentReference.StartPage); // Assert Assert.That(children_from_repo.Count(), Is.EqualTo(1)); Assert.That(children_from_loader.Count(), Is.EqualTo(1)); }
public void Can_Create_Root_Page_As_Draft() { // Given IPage draft; Trie structureInfo; var store = SetupContext(); // When using (var session = store.OpenSession()) { draft = new FakePage { Metadata = { Name = "Draft" } }; session.Store(draft, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { draft = session.Load <IPage>("FakePages/1/draft"); structureInfo = session.Load <Trie>(DefaultBrickPileBootstrapper.TrieId); } // Then Assert.NotNull(draft); Assert.NotNull(structureInfo.RootNode); Assert.Null(structureInfo.RootNode.PageId); Assert.Null(structureInfo.RootNode.Url); }
public void ExampleOfPseudWebDriver() { var fakePage = new FakePage(_context); fakePage.GetSomeDataFromConfig(); fakePage.GetSomeObjectFromConfig(); }
public void Can_Alter_Child_Page_And_Save_As_Draft() { // Given Trie structureInfo; IPage page; var store = SetupContext(); // When using (var session = store.OpenSession()) { session.Store(new FakePage { Id = "FakePages/1", Metadata = { Name = "Start" } }, StoreAction.Publish); IPage p = new FakePage { Id = "FakePages/2", Parent = new PageReference("FakePages/1"), Metadata = { Name = "Child page" } }; session.Store(p, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { page = session.Load <FakePage>("FakePages/2"); page.Metadata.Name = "Page name changed"; session.Store(page, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { structureInfo = session.Load <Trie>(DefaultBrickPileBootstrapper.TrieId); page = session.Load <FakePage>("FakePages/2/draft"); } // Then Assert.NotNull(structureInfo.RootNode); Assert.Equal("FakePages/1", structureInfo.RootNode.PageId); Assert.Null(structureInfo.RootNode.ParentId); Assert.Null(structureInfo.RootNode.Url); Assert.Equal(1, structureInfo.RootNode.Children.Count); Assert.Equal("FakePages/2", structureInfo.RootNode.Children.First().PageId); Assert.Equal("FakePages/1", structureInfo.RootNode.Children.First().ParentId); Assert.Equal("child-page", structureInfo.RootNode.Children.First().Url); Assert.Equal(page.Metadata.Url, structureInfo.RootNode.Children.First().Url); Assert.Equal("child-page", page.Metadata.Slug); Assert.False(page.Metadata.IsPublished); }
public void Can_Publish_Then_Unpublish_And_Republish_Child_Page_With_Children() { // Given Trie structureInfo; var store = SetupContext(); IPage start, child; // When using (var session = store.OpenSession()) { start = new FakePage { Metadata = { Name = "Start" } }; session.Store(start, StoreAction.Publish); child = new FakePage { Parent = new PageReference(start.Id), Metadata = { Name = "Child" } }; session.Store(child, StoreAction.Publish); session.Store(new FakePage { Parent = new PageReference(child.Id), Metadata = { Name = "Child2" } }, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { child = session.Load <FakePage>("FakePages/2"); session.Store(child, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { child = session.Load <FakePage>("FakePages/2/Draft"); child.Metadata.Name = "Do it"; session.Store(child, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { structureInfo = session.Load <Trie>(DefaultBrickPileBootstrapper.TrieId); child = session.Load <FakePage>("FakePages/2/Draft"); } // Then Assert.NotEmpty(structureInfo.RootNode.Children); Assert.NotNull(child); //Assert.NotEmpty(structureInfo.RootNode.Children.Single(x => x.DraftId == "FakePages/2/draft").Children); //Assert.NotNull(structureInfo.RootNode.Children.Single(x => x.DraftId == "FakePages/2/draft").ParentId); }
public void Get_ancestors() { var child = FakePage .Create("Child page") .ChildOf(_start); var repository = _fake.ContentRepository; // Act var ancestors = repository.GetAncestors(child.Content.ContentLink); Assert.That(ancestors.Count(), Is.EqualTo(2)); }
public void Can_Resolve_Home_Page_With_Default_Action(string path) { // Given //var store = this.SetupContext(); var routeResolverTrie = A.Fake <IRouteResolverTrie>(); //var mapper = A.Fake<IControllerMapper>(); //A.CallTo(() => mapper.GetControllerName(typeof (FakeController))).Returns("FakeController"); //A.CallTo(() => mapper.ControllerHasAction("FakeController", "index")).Returns(true); // When ResolveResult data; using (var store = this.SetupContext()) { using (var session = store.OpenSession()) { var node = new TrieNode { PageId = "pages/1" }; var page = new FakePage { Id = "pages/1" }; var structureInfo = new Trie { Id = DefaultBrickPileBootstrapper.TrieId, RootNode = node }; session.Store(structureInfo); session.Store(page); session.SaveChanges(); var resolver = new DefaultRouteResolver(routeResolverTrie); A.CallTo(() => routeResolverTrie.LoadTrie()).Returns(structureInfo); data = resolver.Resolve(path); } //Then Assert.NotNull(data); Assert.Equal(data.TrieNode.PageId, "pages/1"); Assert.Equal("index", data.Action); } }
public void it_returns_null_when_page_not_found() { var fakeRoot = FakePage.Create("Root"); var fakeStart = FakePage.Create("Start") .ChildOf(fakeRoot) .WithChildren(Fixture.RandomPages(10)); _fake.AddToRepository(fakeRoot); var actual = fakeStart.Page.GetSingletonPage <TestPage>(); Assert.Null(actual); }
public void Can_Resolve_Virtual_Path() { // Given var page = new FakePage {Metadata = { Url = "foo/bar/fudge"}}; var resolver = new VirtualPathResolver(); // When var result = resolver.Resolve(page, new RouteValueDictionary( new { action = "index" } )); // Then Assert.Equal("foo/bar/fudge/", result); }
public void Can_Append_Action_To_Url() { // Given var page = new FakePage { Metadata = { Url = "foo/bar/fudge" } }; var resolver = new VirtualPathResolver(); // When var result = resolver.Resolve(page, new RouteValueDictionary(new { action = "comment" })); // Then Assert.Equal("foo/bar/fudge/comment/", result); }
public void it_does_not_add_empty_content_link_to_the_cache() { var fakeRoot = FakePage.Create("Root"); var fakeStart = FakePage.Create("Start") .ChildOf(fakeRoot); _fake.AddToRepository(fakeRoot); fakeStart.Page.PageLink.GetSingletonPage <TestPage>(); var key = new CacheKey(typeof(TestPage), fakeStart.Page.PageLink); var actual = _fakeCache.InternalCache.ContainsKey(key); Assert.False(actual); }
public void Can_Resolve_Virtual_Path_With_Default_Action() { // Arrange IPage model = new FakePage { Metadata = { Url = "page1/page2" } }; var routeValueDictionary = new RouteValueDictionary(); // Act var virtualPathResolver = new VirtualPathResolver(); var virtualPath = virtualPathResolver.Resolve(model, routeValueDictionary); // Assert Assert.AreEqual("page1/page2/", virtualPath); }
public void Can_Resolve_Home_Page_With_Default_Action(string path) { // Given //var store = this.SetupContext(); var routeResolverTrie = A.Fake<IRouteResolverTrie>(); //var mapper = A.Fake<IControllerMapper>(); //A.CallTo(() => mapper.GetControllerName(typeof (FakeController))).Returns("FakeController"); //A.CallTo(() => mapper.ControllerHasAction("FakeController", "index")).Returns(true); // When ResolveResult data; using (var store = this.SetupContext()) { using (var session = store.OpenSession()) { var node = new TrieNode { PageId = "pages/1" }; var page = new FakePage {Id = "pages/1"}; var structureInfo = new Trie { Id = DefaultBrickPileBootstrapper.TrieId, RootNode = node }; session.Store(structureInfo); session.Store(page); session.SaveChanges(); var resolver = new DefaultRouteResolver(routeResolverTrie); A.CallTo(() => routeResolverTrie.LoadTrie()).Returns(structureInfo); data = resolver.Resolve(path); } //Then Assert.NotNull(data); Assert.Equal(data.TrieNode.PageId, "pages/1"); Assert.Equal("index", data.Action); } }
public void Can_Resolve_Virtual_Path() { // Given var page = new FakePage { Metadata = { Url = "foo/bar/fudge" } }; var resolver = new VirtualPathResolver(); // When var result = resolver.Resolve(page, new RouteValueDictionary(new { action = "index" })); // Then Assert.Equal("foo/bar/fudge/", result); }
public void Can_Resolve_Home_Page_With_Default_Action(string path) { // Given var mapper = A.Fake <IControllerMapper>(); var context = A.Fake <HttpContextBase>(); var trie = A.Fake <IRouteResolverTrie>(); var theTrie = new Trie { Id = DefaultBrickPileBootstrapper.TrieId, RootNode = new TrieNode { PageId = "pages/1", Url = "page" } }; A.CallTo(() => context.Request.Path).Returns(path); A.CallTo(() => mapper.GetControllerName(typeof(FakeController))).Returns("FakeController"); A.CallTo(() => mapper.ControllerHasAction("FakeController", "index")).Returns(true); A.CallTo(() => trie.LoadTrie()).Returns(theTrie); // When RouteData data; using (var store = NewDocumentStore()) { using (var session = store.OpenSession()) { var page = new FakePage { Id = "pages/1" }; session.Store(page); session.SaveChanges(); var route = new DefaultRoute(new VirtualPathResolver(), new DefaultRouteResolver(trie), store, mapper); data = route.GetRouteData(context); } } //Then Assert.NotNull(data); Assert.Equal("index", data.Values["action"]); Assert.Equal("FakeController", data.Values["controller"]); }
public void Can_Save_Page_Draft() { // Given IPage fakePage; IPage draft; var container = A.Fake <IContainer>(); var store = this.SetupContext(); // When using (var session = store.OpenSession()) { fakePage = new FakePage { Id = "fakepages/1", Metadata = { Name = "Published version" } }; session.Store(fakePage, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { draft = session.Load <IPage>("fakepages/1"); draft.Metadata.Name = "Page draft"; session.Store(draft, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { fakePage = session.Load <IPage>("fakepages/1"); draft = session.Load <IPage>("fakepages/1/draft"); } // Then Assert.NotNull(fakePage); Assert.Equal("fakepages/1", fakePage.Id); Assert.Equal("Published version", fakePage.Metadata.Name); Assert.NotNull(draft); Assert.Equal("fakepages/1/draft", draft.Id); Assert.Equal("Page draft", draft.Metadata.Name); }
public void Can_Save_Second_Level_Child_With_Draft_As_Parent() { // Given Trie structureInfo; var store = SetupContext(); IPage child; // When using (var session = store.OpenSession()) { session.Store(new FakePage(), StoreAction.Publish); child = new FakePage { Parent = new PageReference("FakePages/1"), Metadata = { Name = "Child" } }; session.Store(child, StoreAction.Save); session.Store(new FakePage { Parent = new PageReference(child.Id), Metadata = { Name = "Child2" } }, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { child = session.Load <IPage>("FakePages/2"); child.Metadata.Name = "Changed name"; session.Store(child, StoreAction.Publish); session.SaveChanges(); structureInfo = session.Load <Trie>(DefaultBrickPileBootstrapper.TrieId); } // Then Assert.NotNull(child); Assert.NotEmpty(structureInfo.RootNode.Children); Assert.NotEmpty(structureInfo.Get("FakePages/2").Children); //Assert.NotNull(structureInfo.GetNode("FakePages/3/draft").ParentId); }
public void Can_Publish_Second_Level_Child_With_Draft_As_Child() { // Given var store = SetupContext(); IPage start, child; // When using (var session = store.OpenSession()) { start = new FakePage { Metadata = { Name = "Start" } }; session.Store(start, StoreAction.Publish); child = new FakePage { Parent = new PageReference(start.Id), Metadata = { Name = "Child" } }; session.Store(child, StoreAction.Save); session.Store(new FakePage { Parent = new PageReference(child.Id), Metadata = { Name = "Child2" } }, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { child = session.Load <IPage>("FakePages/2"); child.Metadata.Name = "Changed name"; session.Store(child, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { child = session.Load <IPage>("FakePages/3"); } // Then Assert.Equal(child.Parent.Id, "FakePages/2"); Assert.Equal(default(DateTime?), child.Metadata.Published); }
public void Can_Publish_Then_Unpublish_And_Republish_Root_Page_With_Children() { // Given Trie structureInfo; var store = SetupContext(); IPage start; // When using (var session = store.OpenSession()) { start = new FakePage { Metadata = { Name = "Start" } }; session.Store(start, StoreAction.Publish); session.Store(new FakePage { Parent = new PageReference(start.Id), Metadata = { Name = "Child" } }, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { start = session.Load <FakePage>("FakePages/1"); session.Store(start, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { start = session.Load <FakePage>("FakePages/1/draft"); session.Store(start, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { structureInfo = session.Load <Trie>(DefaultBrickPileBootstrapper.TrieId); } // Then Assert.NotEmpty(structureInfo.RootNode.Children); }
public void it_returns_singleton_page_by_parent_pages_link() { var fakeRoot = FakePage.Create("Root"); var fakeStart = FakePage.Create("Start") .ChildOf(fakeRoot) .WithChildren(Fixture.RandomPages(10)); var fakeExpected = FakePage.Create <TestPage>("Test page") .ChildOf(fakeStart); _fake.AddToRepository(fakeRoot); var expected = fakeExpected.Page; var actual = fakeStart.Page.PageLink.GetSingletonPage <TestPage>(); Assert.NotNull(actual); Assert.Equal(expected.ContentLink, actual.ContentLink); }
public void Can_Resolve_Home_Page_With_Default_Action(string path) { // Given var store = NewDocumentStore(); var mapper = A.Fake<IControllerMapper>(); var context = A.Fake<HttpContextBase>(); var trie = A.Fake<IRouteResolverTrie>(); A.CallTo(() => context.Request.Path).Returns(path); A.CallTo(() => mapper.GetControllerName(typeof (FakeController))).Returns("FakeController"); A.CallTo(() => mapper.ControllerHasAction("FakeController", "index")).Returns(true); // When RouteData data; using (var session = store.OpenSession()) { var node = new TrieNode { PageId = "pages/1" }; var page = new FakePage { Id = "pages/1" }; var structureInfo = new Trie { Id = DefaultBrickPileBootstrapper.TrieId, RootNode = node }; session.Store(structureInfo); session.Store(page); session.SaveChanges(); var route = new DefaultRoute(new VirtualPathResolver(), new DefaultRouteResolver(trie), store, mapper); data = route.GetRouteData(context); } //Then Assert.NotNull(data); Assert.Equal("index", data.Values["action"]); Assert.Equal("FakeController", data.Values["controller"]); }
public void Can_Publish_Second_Level_Child_With_Draft_As_Child() { // Given IPage start, child; // When using (var store = this.SetupContext()) { using (var session = store.OpenSession()) { start = new FakePage {Metadata = {Name = "Start"}}; session.Store(start, StoreAction.Publish); child = new FakePage {Parent = new PageReference(start.Id), Metadata = {Name = "Child"}}; session.Store(child, StoreAction.Save); session.Store( new FakePage {Parent = new PageReference(child.Id), Metadata = {Name = "Child2"}}, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { child = session.Load<IPage>("FakePages/2"); child.Metadata.Name = "Changed name"; session.Store(child, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { child = session.Load<IPage>("FakePages/3"); } // Then Assert.Equal(child.Parent.Id, "FakePages/2"); Assert.Equal(default(DateTime?), child.Metadata.Published); } }
public void Can_Save_Child_Page_As_Draft() { // Given Trie structureInfo; IPage page; // When using (var store = this.SetupContext()) { using (var session = store.OpenSession()) { session.Store(new FakePage {Id = "FakePages/1", Metadata = {Name = "Start"}}, StoreAction.Publish); IPage draft = new FakePage { Id = "FakePages/2", Parent = new PageReference("FakePages/1"), Metadata = { Name = "Child page" } }; session.Store(draft, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { structureInfo = session.Load<Trie>(DefaultBrickPileBootstrapper.TrieId); page = session.Load<FakePage>("FakePages/2"); } // Then Assert.NotNull(structureInfo.RootNode); Assert.Equal("FakePages/1", structureInfo.RootNode.PageId); Assert.Null(structureInfo.RootNode.ParentId); Assert.Null(structureInfo.RootNode.Url); Assert.Equal(1, structureInfo.RootNode.Children.Count); Assert.Equal("FakePages/1", structureInfo.RootNode.Children.First().ParentId); Assert.Equal("child-page", structureInfo.RootNode.Children.First().Url); Assert.Equal(page.Metadata.Url, structureInfo.RootNode.Children.First().Url); Assert.Equal("child-page", page.Metadata.Slug); } }
public void Can_Publish_Then_Unpublish_And_Republish_Root_Page_With_Children() { // Given Trie structureInfo; IPage start; // When using (var store = this.SetupContext()) { using (var session = store.OpenSession()) { start = new FakePage {Metadata = {Name = "Start"}}; session.Store(start, StoreAction.Publish); session.Store(new FakePage {Parent = new PageReference(start.Id), Metadata = {Name = "Child"}}, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { start = session.Load<FakePage>("FakePages/1"); session.Store(start, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { start = session.Load<FakePage>("FakePages/1/draft"); session.Store(start, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { structureInfo = session.Load<Trie>(DefaultBrickPileBootstrapper.TrieId); } // Then Assert.NotEmpty(structureInfo.RootNode.Children); } }
public void Returns_Null_If_Request_Is_For_Static_Content(string path) { // Given var store = NewDocumentStore(); var mapper = A.Fake<IControllerMapper>(); var context = A.Fake<HttpContextBase>(); var trie = A.Fake<IRouteResolverTrie>(); A.CallTo(() => context.Request.Path).Returns(path); A.CallTo(() => mapper.GetControllerName(typeof(FakeController))).Returns("FakeController"); A.CallTo(() => mapper.ControllerHasAction("FakeController", "index")).Returns(false); // When RouteData data; using (var session = store.OpenSession()) { var page = new FakePage(); session.Store(page); var node = new TrieNode { PageId = page.Id }; session.Store(new Trie { Id = DefaultBrickPileBootstrapper.TrieId, RootNode = node }); session.SaveChanges(); var route = new DefaultRoute(new VirtualPathResolver(), new DefaultRouteResolver(trie), store, mapper); data = route.GetRouteData(context); } // Then Assert.Null(data); }
public void Can_Resolve_Virtual_Path_For_Page_With_Query_Parameter() { // Given var store = A.Fake<IDocumentStore>(); var mapper = A.Fake<IControllerMapper>(); var context = A.Fake<HttpContextBase>(); var trie = A.Fake<IRouteResolverTrie>(); var currentPage = new FakePage { Metadata = { Url = "fake-page" } }; context.Request.RequestContext.RouteData.Values[DefaultRoute.CurrentPageKey] = currentPage; // When var route = new DefaultRoute(new VirtualPathResolver(), new DefaultRouteResolver(trie), store, mapper); VirtualPathData data = route.GetVirtualPath(context.Request.RequestContext, new RouteValueDictionary(new { currentPage, page = "1", mode = "edit" })); // Then Assert.NotNull(data); Assert.Equal("fake-page/?page=1&mode=edit", data.VirtualPath); }
public void Can_Publish_Then_Unpublish_And_Republish_Child_Page_With_Children() { // Given Trie structureInfo; IPage start, child; // When using (var store = this.SetupContext()) { using (var session = store.OpenSession()) { start = new FakePage {Metadata = {Name = "Start"}}; session.Store(start, StoreAction.Publish); child = new FakePage {Parent = new PageReference(start.Id), Metadata = {Name = "Child"}}; session.Store(child, StoreAction.Publish); session.Store( new FakePage {Parent = new PageReference(child.Id), Metadata = {Name = "Child2"}}, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { child = session.Load<FakePage>("FakePages/2"); session.Store(child, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { child = session.Load<FakePage>("FakePages/2/Draft"); child.Metadata.Name = "Do it"; session.Store(child, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { structureInfo = session.Load<Trie>(DefaultBrickPileBootstrapper.TrieId); child = session.Load<FakePage>("FakePages/2/Draft"); } // Then Assert.NotEmpty(structureInfo.RootNode.Children); Assert.NotNull(child); //Assert.NotEmpty(structureInfo.RootNode.Children.Single(x => x.DraftId == "FakePages/2/draft").Children); //Assert.NotNull(structureInfo.RootNode.Children.Single(x => x.DraftId == "FakePages/2/draft").ParentId);'} } }
public void Can_Publish_Root_Level_With_Draft_As_Child() { // Given var store = SetupContext(); IPage start, child; // When using (var session = store.OpenSession()) { start = new FakePage { Metadata = { Name = "Start" } }; session.Store(start, StoreAction.Save); session.SaveChanges(); child = new FakePage { Parent = new PageReference(start.Id), Metadata = { Name = "Child" } }; session.Store(child, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { child = session.Load<IPage>("FakePages/1"); child.Metadata.Name = "Changed name"; session.Store(child, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { child = session.Load<IPage>("FakePages/2"); } // Then Assert.Equal(child.Parent.Id, "FakePages/1"); }
public void Can_Save_Page_Without_A_Name() { using (var store = SetupContext()) { using (var session = store.OpenSession()) { var fakePage = new FakePage { Id = "fakepages/1" }; session.Store(fakePage, StoreAction.Publish); session.Store(new FakePage { Id = "fakepages/2", Parent = fakePage }, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { var fakePage = session.Load<FakePage>("fakepages/2"); Assert.Equal("fakepages-2", fakePage.Metadata.Slug); } } }
public void Can_Save_Second_Level_Child_With_Draft_As_Parent() { // Given Trie structureInfo; IPage child; // When using (var store = this.SetupContext()) { using (var session = store.OpenSession()) { session.Store(new FakePage(), StoreAction.Publish); child = new FakePage { Parent = new PageReference("FakePages/1"), Metadata = {Name = "Child"} }; session.Store(child, StoreAction.Save); session.Store(new FakePage { Parent = new PageReference(child.Id), Metadata = {Name = "Child2"} }, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { child = session.Load<IPage>("FakePages/2"); child.Metadata.Name = "Changed name"; session.Store(child, StoreAction.Publish); session.SaveChanges(); structureInfo = session.Load<Trie>(DefaultBrickPileBootstrapper.TrieId); } // Then Assert.NotNull(child); Assert.NotEmpty(structureInfo.RootNode.Children); Assert.NotEmpty(structureInfo.Get("FakePages/2").Children); //Assert.NotNull(structureInfo.GetNode("FakePages/3/draft").ParentId); } }
public void Can_UnPublish_Page() { // Given IPage start, child; // When using (var store = this.SetupContext()) { using (var session = store.OpenSession()) { start = new FakePage {Metadata = {Name = "Start"}}; session.Store(start, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { child = session.Load<IPage>("FakePages/1"); child.Metadata.Name = "changed"; session.Store(child, StoreAction.UnPublish); session.SaveChanges(); } using (var session = store.OpenSession()) { child = session.Load<IPage>("FakePages/1"); } // Then Assert.Equal(default(DateTime?), child.Metadata.Published); } }
public void Can_Alter_Child_Page_And_Publish() { // Given Trie structureInfo; IPage page, draft; // When using (var store = this.SetupContext()) { using (var session = store.OpenSession()) { session.Store(new FakePage {Id = "FakePages/1", Metadata = {Name = "Start"}}, StoreAction.Publish); IPage p = new FakePage { Id = "FakePages/2", Parent = new PageReference("FakePages/1"), Metadata = { Name = "Child page" } }; session.Store(p, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { page = session.Load<FakePage>("FakePages/2"); page.Metadata.Name = "Page name changed"; session.Store(page, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { structureInfo = session.Load<Trie>(DefaultBrickPileBootstrapper.TrieId); draft = session.Load<FakePage>("FakePages/2/Draft"); page = session.Load<FakePage>("FakePages/2"); } // Then Assert.Null(draft); Assert.NotNull(page); Assert.Equal("FakePages/2", structureInfo.RootNode.Children.First().PageId); Assert.Equal(1, structureInfo.RootNode.Children.Count); } }
public void Can_Create_Root_Page_As_Draft() { // Given IPage draft; Trie structureInfo; // When using (var store = this.SetupContext()) { using (var session = store.OpenSession()) { draft = new FakePage {Metadata = {Name = "Draft"}}; session.Store(draft, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { draft = session.Load<IPage>("FakePages/1/draft"); structureInfo = session.Load<Trie>(DefaultBrickPileBootstrapper.TrieId); } // Then Assert.NotNull(draft); Assert.NotNull(structureInfo.RootNode); Assert.Null(structureInfo.RootNode.PageId); Assert.Null(structureInfo.RootNode.Url); } }
public void Can_Save_Page_Draft() { // Given IPage fakePage; IPage draft; var container = A.Fake<IContainer>(); // When using (var store = this.SetupContext()) { using (var session = store.OpenSession()) { fakePage = new FakePage { Id = "fakepages/1", Metadata = { Name = "Published version" } }; session.Store(fakePage, StoreAction.Publish); session.SaveChanges(); } using (var session = store.OpenSession()) { draft = session.Load<IPage>("fakepages/1"); draft.Metadata.Name = "Page draft"; session.Store(draft, StoreAction.Save); session.SaveChanges(); } using (var session = store.OpenSession()) { fakePage = session.Load<IPage>("fakepages/1"); draft = session.Load<IPage>("fakepages/1/draft"); } // Then Assert.NotNull(fakePage); Assert.Equal("fakepages/1", fakePage.Id); Assert.Equal("Published version", fakePage.Metadata.Name); Assert.NotNull(draft); Assert.Equal("fakepages/1/draft", draft.Id); Assert.Equal("Page draft", draft.Metadata.Name); } }