From 7e7dae736ddd6e1777b943ebecea1806c8b96262 Mon Sep 17 00:00:00 2001 From: Stefan Forsberg Date: Wed, 28 Aug 2013 22:11:49 +0200 Subject: [PATCH] Added additional tests for when getting children --- .../ContentRepository/when_getting_a_page.cs | 19 ++++++++- ..._page_type.cs => when_getting_children.cs} | 41 ++++++++++++++++++- .../InMemoryContentRepository.cs | 4 ++ src/WhiteMagic.Tests/WhiteMagic.Tests.csproj | 2 +- 4 files changed, 62 insertions(+), 4 deletions(-) rename src/WhiteMagic.Tests/ContentRepository/{when_getting_children_by_page_type.cs => when_getting_children.cs} (51%) diff --git a/src/WhiteMagic.Tests/ContentRepository/when_getting_a_page.cs b/src/WhiteMagic.Tests/ContentRepository/when_getting_a_page.cs index 8bb3f63..29992b7 100644 --- a/src/WhiteMagic.Tests/ContentRepository/when_getting_a_page.cs +++ b/src/WhiteMagic.Tests/ContentRepository/when_getting_a_page.cs @@ -1,5 +1,6 @@ using EPiServer.Core; using NUnit.Framework; +using Shouldly; using WhiteMagic.Tests.Pages; namespace WhiteMagic.Tests.ContentRepository @@ -12,7 +13,23 @@ public override void Given() { base.Given(); StartPageReference = ContentRepository - .Publish(ContentReference.RootPage, p => p.MainBody = "Hejhej!"); + .Publish(ContentReference.RootPage, "StartPage"); + } + } + + public class when_getting_a_page_with_base_type_constraint : when_getting_a_page + { + private PageData _page; + + public override void When() + { + _page = ContentRepository.Get(StartPageReference); + } + + [Test] + public void it_should_return_a_page_typed_to_the_base_type() + { + _page.PageName.ShouldBe("StartPage"); } } diff --git a/src/WhiteMagic.Tests/ContentRepository/when_getting_children_by_page_type.cs b/src/WhiteMagic.Tests/ContentRepository/when_getting_children.cs similarity index 51% rename from src/WhiteMagic.Tests/ContentRepository/when_getting_children_by_page_type.cs rename to src/WhiteMagic.Tests/ContentRepository/when_getting_children.cs index b36107f..e05b8bc 100644 --- a/src/WhiteMagic.Tests/ContentRepository/when_getting_children_by_page_type.cs +++ b/src/WhiteMagic.Tests/ContentRepository/when_getting_children.cs @@ -1,8 +1,6 @@ using System.Collections.Generic; using System.Linq; using EPiServer.Core; -using EPiServer.DataAccess; -using EPiServer.Security; using NUnit.Framework; using Shouldly; using WhiteMagic.Tests.Pages; @@ -44,4 +42,43 @@ public void it_should_not_include_page_with_none_matching_page_type() _children.ShouldNotContain(s => s.PageName == "ChildPage3"); } } + + public class when_getting_children_with_a_none_matching_page_type : TestBase + { + + IEnumerable _children; + private PageReference _startPageReference; + + public override void Given() + { + base.Given(); + + _startPageReference = ContentRepository.Publish(ContentReference.RootPage); + + ContentRepository.Publish(_startPageReference, "ChildPage1"); + ContentRepository.Publish(_startPageReference, "ChildPage2"); + ContentRepository.Publish(_startPageReference, "ChildPage3"); + } + + public override void When() + { + base.When(); + _children = ContentRepository.GetChildren(_startPageReference); + } + + [Test] + public void it_should_not_fetch_any_children() + { + _children.Count().ShouldBe(0); + } + } + + public class when_getting_children_for_a_none_existing_page : TestBase + { + [Test] + public void it_should_throw_a_page_not_found_exception() + { + Assert.Throws(() => ContentRepository.GetChildren(new ContentReference(1000))); + } + } } \ No newline at end of file diff --git a/src/WhiteMagic.Tests/InMemoryContentRepository.cs b/src/WhiteMagic.Tests/InMemoryContentRepository.cs index f03013d..6943441 100644 --- a/src/WhiteMagic.Tests/InMemoryContentRepository.cs +++ b/src/WhiteMagic.Tests/InMemoryContentRepository.cs @@ -207,6 +207,10 @@ private PageDataCollection GetChildren(PageReference pageLink, int startIndex, i children.Add(GetPage(link)); } } + else + { + throw new PageNotFoundException(pageLink); + } return new PageDataCollection(children); } diff --git a/src/WhiteMagic.Tests/WhiteMagic.Tests.csproj b/src/WhiteMagic.Tests/WhiteMagic.Tests.csproj index c1a0a7b..3b2cf08 100644 --- a/src/WhiteMagic.Tests/WhiteMagic.Tests.csproj +++ b/src/WhiteMagic.Tests/WhiteMagic.Tests.csproj @@ -161,7 +161,7 @@ - +