diff --git a/src/Umbraco.Tests/PublishedContent/DynamicDocumentTestsBase.cs b/src/Umbraco.Tests/PublishedContent/DynamicDocumentTestsBase.cs index 82b2a672e1..fc63ef4c39 100644 --- a/src/Umbraco.Tests/PublishedContent/DynamicDocumentTestsBase.cs +++ b/src/Umbraco.Tests/PublishedContent/DynamicDocumentTestsBase.cs @@ -10,28 +10,28 @@ using Umbraco.Tests.TestHelpers; namespace Umbraco.Tests.PublishedContent { - [TestFixture] - public abstract class DynamicDocumentTestsBase : BaseRoutingTest - { - public override void Initialize() - { - base.Initialize(); - } + [TestFixture] + public abstract class DynamicDocumentTestsBase : BaseRoutingTest + { + public override void Initialize() + { + base.Initialize(); + } - public override void TearDown() - { - base.TearDown(); - - } + public override void TearDown() + { + base.TearDown(); - protected override bool RequiresDbSetup - { - get { return false; } - } + } - protected override string GetXmlContent(int templateId) - { - return @" + protected override bool RequiresDbSetup + { + get { return false; } + } + + protected override string GetXmlContent(int templateId) + { + return @" @@ -68,175 +68,175 @@ namespace Umbraco.Tests.PublishedContent "; - } + } - /// - /// Returns the dynamic node/document to run tests against - /// - /// - /// - protected abstract dynamic GetDynamicNode(int id); + /// + /// Returns the dynamic node/document to run tests against + /// + /// + /// + protected abstract dynamic GetDynamicNode(int id); - [Test] - public void Single() - { - var doc = GetDynamicNode(4444); + [Test] + public void Single() + { + var doc = GetDynamicNode(4444); - var result = doc.Children().Single(); + var result = doc.Children().Single(); - Assert.IsNotNull(result); - Assert.AreEqual(5555, result.Id); - } + Assert.IsNotNull(result); + Assert.AreEqual(5555, result.Id); + } - [Test] - public void Single_With_Query() - { - var doc = GetDynamicNode(1046); + [Test] + public void Single_With_Query() + { + var doc = GetDynamicNode(1046); - var result = doc.Children().Single("id==1175"); + var result = doc.Children().Single("id==1175"); - Assert.IsNotNull(result); - Assert.AreEqual(1175, result.Id); - } + Assert.IsNotNull(result); + Assert.AreEqual(1175, result.Id); + } - [Test] - public void First() - { - var doc = GetDynamicNode(1173); + [Test] + public void First() + { + var doc = GetDynamicNode(1173); - var result = doc.Children().First(); + var result = doc.Children().First(); - Assert.IsNotNull(result); - Assert.AreEqual(1174, result.Id); - } + Assert.IsNotNull(result); + Assert.AreEqual(1174, result.Id); + } - [Test] - public void First_With_Query() - { - var doc = GetDynamicNode(1173); + [Test] + public void First_With_Query() + { + var doc = GetDynamicNode(1173); - var result = doc.Children().First("blah==\"some content\""); + var result = doc.Children().First("blah==\"some content\""); - Assert.IsNotNull(result); - Assert.AreEqual(1176, result.Id); - } + Assert.IsNotNull(result); + Assert.AreEqual(1176, result.Id); + } - [Test] - public void Where_User_Property_Value() - { - var doc = GetDynamicNode(1173); + [Test] + public void Where_User_Property_Value() + { + var doc = GetDynamicNode(1173); - var result = (IEnumerable)doc.Children().Where("blah==\"some content\""); + var result = (IEnumerable)doc.Children().Where("blah==\"some content\""); - Assert.IsNotNull(result); - Assert.AreEqual(1, result.Count()); - Assert.AreEqual(1176, result.Single().Id); - } + Assert.IsNotNull(result); + Assert.AreEqual(1, result.Count()); + Assert.AreEqual(1176, result.Single().Id); + } - [Test] - public void String_ContainsValue_Extension_Method() - { - var doc = GetDynamicNode(1046); + [Test] + public void String_ContainsValue_Extension_Method() + { + var doc = GetDynamicNode(1046); - var paramVals = new Dictionary { { "searchId", 1173 } }; //this is an integer value - var result = doc.Children() - .Where("selectedNodes.ContainsValue(searchId)", paramVals) //call an extension method - .FirstOrDefault(); + var paramVals = new Dictionary { { "searchId", 1173 } }; //this is an integer value + var result = doc.Children() + .Where("selectedNodes.ContainsValue(searchId)", paramVals) //call an extension method + .FirstOrDefault(); - Assert.IsNotNull(result); - Assert.AreEqual(4444, result.Id); + Assert.IsNotNull(result); + Assert.AreEqual(4444, result.Id); - //don't find! - paramVals = new Dictionary { { "searchId", 1111777 } }; - result = doc.Children() - .Where("selectedNodes.ContainsValue(searchId)", paramVals) - .FirstOrDefault(); + //don't find! + paramVals = new Dictionary { { "searchId", 1111777 } }; + result = doc.Children() + .Where("selectedNodes.ContainsValue(searchId)", paramVals) + .FirstOrDefault(); - Assert.IsNotNull(result); - Assert.IsTrue(result.GetType() == typeof(DynamicNull) || result.GetType() == typeof(umbraco.MacroEngines.DynamicNull)); - //Assert.AreEqual(typeof(DynamicNull), result.GetType()); - } + Assert.IsNotNull(result); + Assert.IsTrue(result.GetType() == typeof(DynamicNull) || result.GetType() == typeof(umbraco.MacroEngines.DynamicNull)); + //Assert.AreEqual(typeof(DynamicNull), result.GetType()); + } - [Test] - public void String_Contains_Method() - { - var doc = GetDynamicNode(1046); + [Test] + public void String_Contains_Method() + { + var doc = GetDynamicNode(1046); - var paramVals = new Dictionary { { "searchId", "1173" } }; - var result = doc.Children() - .Where("selectedNodes.Contains(searchId)", paramVals) - .FirstOrDefault(); + var paramVals = new Dictionary { { "searchId", "1173" } }; + var result = doc.Children() + .Where("selectedNodes.Contains(searchId)", paramVals) + .FirstOrDefault(); - Assert.IsNotNull(result); - Assert.AreEqual(4444, result.Id); + Assert.IsNotNull(result); + Assert.AreEqual(4444, result.Id); - //don't find! - paramVals = new Dictionary { { "searchId", "1aaa173" } }; - result = doc.Children() - .Where("selectedNodes.Contains(searchId)", paramVals) - .FirstOrDefault(); + //don't find! + paramVals = new Dictionary { { "searchId", "1aaa173" } }; + result = doc.Children() + .Where("selectedNodes.Contains(searchId)", paramVals) + .FirstOrDefault(); - Assert.IsNotNull(result); - Assert.IsTrue(result.GetType() == typeof (DynamicNull) || result.GetType() == typeof (umbraco.MacroEngines.DynamicNull)); - //Assert.AreEqual(typeof (DynamicNull), result.GetType()); - } + Assert.IsNotNull(result); + Assert.IsTrue(result.GetType() == typeof(DynamicNull) || result.GetType() == typeof(umbraco.MacroEngines.DynamicNull)); + //Assert.AreEqual(typeof (DynamicNull), result.GetType()); + } - [Test] - public void String_Split_Method() - { - var doc = GetDynamicNode(1046); + [Test] + public void String_Split_Method() + { + var doc = GetDynamicNode(1046); - var paramVals = new Dictionary + var paramVals = new Dictionary { { "splitTerm", new char[] { ',' } }, { "splitOptions", StringSplitOptions.RemoveEmptyEntries } }; - var result = doc.Children() - .Where("selectedNodes.Split(splitTerm, splitOptions).Length == 3", paramVals) - .FirstOrDefault(); + var result = doc.Children() + .Where("selectedNodes.Split(splitTerm, splitOptions).Length == 3", paramVals) + .FirstOrDefault(); - Assert.IsNotNull(result); - Assert.AreEqual(4444, result.Id); - } + Assert.IsNotNull(result); + Assert.AreEqual(4444, result.Id); + } [Ignore("We are ignoring this test because currently our ExpressionParser class cannot deal with this... it needs some serious TLC but it is very complex.")] - [Test] - public void Complex_Linq() - { - var doc = GetDynamicNode(1173); + [Test] + public void Complex_Linq() + { + var doc = GetDynamicNode(1173); - var paramVals = new Dictionary {{"splitTerm", new char[] {','}}, {"searchId", "1173"}}; - var result = doc.Ancestors().OrderBy("level") - .Single() - .Descendants() - .Where("selectedNodes != null && selectedNodes != String.Empty && selectedNodes.Split(splitTerm).Contains(searchId)", paramVals) - .FirstOrDefault(); + var paramVals = new Dictionary { { "splitTerm", new char[] { ',' } }, { "searchId", "1173" } }; + var result = doc.Ancestors().OrderBy("level") + .Single() + .Descendants() + .Where("selectedNodes != null && selectedNodes != String.Empty && selectedNodes.Split(splitTerm).Contains(searchId)", paramVals) + .FirstOrDefault(); - Assert.IsNotNull(result); - Assert.AreEqual(4444, result.Id); - } + Assert.IsNotNull(result); + Assert.AreEqual(4444, result.Id); + } - [Test] - public void Index() - { - var doc = GetDynamicNode(1173); - Assert.AreEqual(0, doc.Index()); - doc = GetDynamicNode(1176); - Assert.AreEqual(1, doc.Index()); - doc = GetDynamicNode(1177); - Assert.AreEqual(2, doc.Index()); - doc = GetDynamicNode(1178); - Assert.AreEqual(3, doc.Index()); - } + [Test] + public void Index() + { + var doc = GetDynamicNode(1173); + Assert.AreEqual(0, doc.Index()); + doc = GetDynamicNode(1176); + Assert.AreEqual(1, doc.Index()); + doc = GetDynamicNode(1177); + Assert.AreEqual(2, doc.Index()); + doc = GetDynamicNode(1178); + Assert.AreEqual(3, doc.Index()); + } - [Test] - public virtual void Is_First_Root_Nodes() - { - var doc = GetDynamicNode(1046); //test root nodes - Assert.IsTrue(doc.IsFirst()); - doc = GetDynamicNode(1172); - Assert.IsFalse(doc.IsFirst()); - } + [Test] + public virtual void Is_First_Root_Nodes() + { + var doc = GetDynamicNode(1046); //test root nodes + Assert.IsTrue(doc.IsFirst()); + doc = GetDynamicNode(1172); + Assert.IsFalse(doc.IsFirst()); + } [Test] public void Is_First() @@ -256,14 +256,14 @@ namespace Umbraco.Tests.PublishedContent Assert.IsTrue(doc.IsNotFirst()); } - [Test] - public void Is_Not_First() - { - var doc = GetDynamicNode(1173); //test normal nodes - Assert.IsFalse(doc.IsNotFirst()); - doc = GetDynamicNode(1175); - Assert.IsTrue(doc.IsNotFirst()); - } + [Test] + public void Is_Not_First() + { + var doc = GetDynamicNode(1173); //test normal nodes + Assert.IsFalse(doc.IsNotFirst()); + doc = GetDynamicNode(1175); + Assert.IsTrue(doc.IsNotFirst()); + } [Test] public virtual void Is_Position_Root_Nodes() @@ -271,384 +271,384 @@ namespace Umbraco.Tests.PublishedContent var doc = GetDynamicNode(1046); //test root nodes Assert.IsTrue(doc.IsPosition(0)); doc = GetDynamicNode(1172); - Assert.IsTrue(doc.IsPosition(1)); + Assert.IsTrue(doc.IsPosition(1)); } - [Test] - public void Is_Position() - { - var doc = GetDynamicNode(1173); //test normal nodes - Assert.IsTrue(doc.IsPosition(0)); - doc = GetDynamicNode(1175); - Assert.IsTrue(doc.IsPosition(1)); - } + [Test] + public void Is_Position() + { + var doc = GetDynamicNode(1173); //test normal nodes + Assert.IsTrue(doc.IsPosition(0)); + doc = GetDynamicNode(1175); + Assert.IsTrue(doc.IsPosition(1)); + } - [Test] - public void Children_GroupBy_DocumentTypeAlias() - { - var doc = GetDynamicNode(1046); + [Test] + public void Children_GroupBy_DocumentTypeAlias() + { + var doc = GetDynamicNode(1046); - var found1 = doc.Children.GroupBy("DocumentTypeAlias"); + var found1 = doc.Children.GroupBy("DocumentTypeAlias"); - var casted = (IEnumerable>)(found1); - Assert.AreEqual(2, casted.Count()); - Assert.AreEqual(2, casted.Single(x => x.Key.ToString() == "Home").Count()); - Assert.AreEqual(1, casted.Single(x => x.Key.ToString() == "CustomDocument").Count()); - } + var casted = (IEnumerable>)(found1); + Assert.AreEqual(2, casted.Count()); + Assert.AreEqual(2, casted.Single(x => x.Key.ToString() == "Home").Count()); + Assert.AreEqual(1, casted.Single(x => x.Key.ToString() == "CustomDocument").Count()); + } - [Test] - public void Children_Where_DocumentTypeAlias() - { - var doc = GetDynamicNode(1046); + [Test] + public void Children_Where_DocumentTypeAlias() + { + var doc = GetDynamicNode(1046); - var found1 = doc.Children.Where("DocumentTypeAlias == \"CustomDocument\""); - var found2 = doc.Children.Where("DocumentTypeAlias == \"Home\""); - - Assert.AreEqual(1, found1.Count()); - Assert.AreEqual(2, found2.Count()); - } + var found1 = doc.Children.Where("DocumentTypeAlias == \"CustomDocument\""); + var found2 = doc.Children.Where("DocumentTypeAlias == \"Home\""); - [Test] - public void Children_Where_NodeTypeAlias() - { - var doc = GetDynamicNode(1046); + Assert.AreEqual(1, found1.Count()); + Assert.AreEqual(2, found2.Count()); + } - var found1 = doc.Children.Where("NodeTypeAlias == \"CustomDocument\""); - var found2 = doc.Children.Where("NodeTypeAlias == \"Home\""); - - Assert.AreEqual(1, found1.Count()); - Assert.AreEqual(2, found2.Count()); - } - - [Test] - public void Children_Order_By_Update_Date() - { - var asDynamic = GetDynamicNode(1173); - - var ordered = asDynamic.Children.OrderBy("UpdateDate"); - var casted = (IEnumerable)ordered; - - var correctOrder = new[] { 1178, 1177, 1174, 1176 }; - for (var i = 0; i < correctOrder.Length ;i++) - { - Assert.AreEqual(correctOrder[i], ((dynamic)casted.ElementAt(i)).Id); - } - - } - - [Test] - public void Children_Order_By_Update_Date_Descending() - { - var asDynamic = GetDynamicNode(1173); - - var ordered = asDynamic.Children.OrderBy("UpdateDate desc"); - var casted = (IEnumerable)ordered; - - var correctOrder = new[] { 1176, 1174, 1177, 1178 }; - for (var i = 0; i < correctOrder.Length; i++) - { - Assert.AreEqual(correctOrder[i], ((dynamic)casted.ElementAt(i)).Id); - } - - } - - [Test] - public void HasProperty() - { - var asDynamic = GetDynamicNode(1173); - - var hasProp = asDynamic.HasProperty("umbracoUrlAlias"); - - Assert.AreEqual(true, (bool)hasProp); - - } - - [Test] - public void Skip() - { - var asDynamic = GetDynamicNode(1173); - - var skip = asDynamic.Children.Skip(2); - var casted = (IEnumerable)skip; - - Assert.AreEqual(2, casted.Count()); - Assert.IsTrue(casted.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[]{1177, 1178})); - - } - - [Test] - public void HasValue() - { - var asDynamic = GetDynamicNode(1173); - - var hasValue = asDynamic.HasValue("umbracoUrlAlias"); - var noValue = asDynamic.HasValue("blahblahblah"); - - Assert.IsTrue(hasValue); - Assert.IsFalse(noValue); - } - - [Test] - public void Take() - { - var asDynamic = GetDynamicNode(1173); - - var take = asDynamic.Children.Take(2); - var casted = (IEnumerable)take; - - Assert.AreEqual(2, casted.Count()); - Assert.IsTrue(casted.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[] { 1174, 1176 })); - } - - [Test] - public void Ancestors_Where_Visible() - { - var asDynamic = GetDynamicNode(1174); - - var whereVisible = asDynamic.Ancestors().Where("Visible"); - var casted = (IEnumerable)whereVisible; - - Assert.AreEqual(1, casted.Count()); - - } - - [Test] - public void Visible() - { - var asDynamicHidden = GetDynamicNode(1046); - var asDynamicVisible = GetDynamicNode(1173); - - Assert.IsFalse(asDynamicHidden.Visible); - Assert.IsTrue(asDynamicVisible.Visible); - } - - [Test] - public void Ensure_TinyMCE_Converted_Type_User_Property() - { - var asDynamic = GetDynamicNode(1173); + [Test] + public void Children_Where_NodeTypeAlias() + { + var doc = GetDynamicNode(1046); - Assert.IsTrue(TypeHelper.IsTypeAssignableFrom(asDynamic.Content.GetType())); - Assert.AreEqual("
This is some content
", asDynamic.Content.ToString()); - } + var found1 = doc.Children.Where("NodeTypeAlias == \"CustomDocument\""); + var found2 = doc.Children.Where("NodeTypeAlias == \"Home\""); - [Test] - public void Get_Children_With_Pluralized_Alias() - { - var asDynamic = GetDynamicNode(1173); + Assert.AreEqual(1, found1.Count()); + Assert.AreEqual(2, found2.Count()); + } - Action doAssert = d => - { - Assert.IsTrue(TypeHelper.IsTypeAssignableFrom(d)); - var casted = (IEnumerable)d; - Assert.AreEqual(2, casted.Count()); - }; + [Test] + public void Children_Order_By_Update_Date() + { + var asDynamic = GetDynamicNode(1173); - doAssert(asDynamic.Homes); //pluralized alias - doAssert(asDynamic.homes); //pluralized alias - doAssert(asDynamic.CustomDocuments); //pluralized alias - doAssert(asDynamic.customDocuments); //pluralized alias - } + var ordered = asDynamic.Children.OrderBy("UpdateDate"); + var casted = (IEnumerable)ordered; - [Test] - public void GetPropertyValue_Non_Reflected() - { - var asDynamic = GetDynamicNode(1174); + var correctOrder = new[] { 1178, 1177, 1174, 1176 }; + for (var i = 0; i < correctOrder.Length; i++) + { + Assert.AreEqual(correctOrder[i], ((dynamic)casted.ElementAt(i)).Id); + } - Assert.AreEqual("Custom data with same property name as the member name", asDynamic.GetPropertyValue("creatorName")); - Assert.AreEqual("Custom data with same property name as the member name", asDynamic.GetPropertyValue("CreatorName")); - } + } - [Test] - public void GetPropertyValue_Reflected() - { - var asDynamic = GetDynamicNode(1174); + [Test] + public void Children_Order_By_Update_Date_Descending() + { + var asDynamic = GetDynamicNode(1173); - Assert.AreEqual("admin", asDynamic.GetPropertyValue("@creatorName")); - Assert.AreEqual("admin", asDynamic.GetPropertyValue("@CreatorName")); - } + var ordered = asDynamic.Children.OrderBy("UpdateDate desc"); + var casted = (IEnumerable)ordered; - [Test] - public void Get_User_Property_With_Same_Name_As_Member_Property() - { - var asDynamic = GetDynamicNode(1174); + var correctOrder = new[] { 1176, 1174, 1177, 1178 }; + for (var i = 0; i < correctOrder.Length; i++) + { + Assert.AreEqual(correctOrder[i], ((dynamic)casted.ElementAt(i)).Id); + } + + } + + [Test] + public void HasProperty() + { + var asDynamic = GetDynamicNode(1173); + + var hasProp = asDynamic.HasProperty("umbracoUrlAlias"); + + Assert.AreEqual(true, (bool)hasProp); + + } + + [Test] + public void Skip() + { + var asDynamic = GetDynamicNode(1173); + + var skip = asDynamic.Children.Skip(2); + var casted = (IEnumerable)skip; + + Assert.AreEqual(2, casted.Count()); + Assert.IsTrue(casted.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[] { 1177, 1178 })); + + } + + [Test] + public void HasValue() + { + var asDynamic = GetDynamicNode(1173); - Assert.AreEqual("Custom data with same property name as the member name", asDynamic.creatorName); + var hasValue = asDynamic.HasValue("umbracoUrlAlias"); + var noValue = asDynamic.HasValue("blahblahblah"); - //because CreatorName is defined on DynamicNode, it will not return the user defined property - Assert.AreEqual("admin", asDynamic.CreatorName); - } - - [Test] - public void Get_Member_Property() - { - var asDynamic = GetDynamicNode(1173); - - Assert.AreEqual((int) 2, (int) asDynamic.Level); - Assert.AreEqual((int) 2, (int) asDynamic.level); + Assert.IsTrue(hasValue); + Assert.IsFalse(noValue); + } - Assert.AreEqual((int) 1046, (int) asDynamic.ParentId); - Assert.AreEqual((int) 1046, (int) asDynamic.parentId); - } + [Test] + public void Take() + { + var asDynamic = GetDynamicNode(1173); - [Test] - public void Get_Children() - { - var asDynamic = GetDynamicNode(1173); + var take = asDynamic.Children.Take(2); + var casted = (IEnumerable)take; - var children = asDynamic.Children; - Assert.IsTrue(TypeHelper.IsTypeAssignableFrom(children)); + Assert.AreEqual(2, casted.Count()); + Assert.IsTrue(casted.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[] { 1174, 1176 })); + } - var childrenAsList = asDynamic.ChildrenAsList; //test ChildrenAsList too - Assert.IsTrue(TypeHelper.IsTypeAssignableFrom(childrenAsList)); + [Test] + public void Ancestors_Where_Visible() + { + var asDynamic = GetDynamicNode(1174); - var castChildren = (IEnumerable)children; - Assert.AreEqual(4, castChildren.Count()); + var whereVisible = asDynamic.Ancestors().Where("Visible"); + var casted = (IEnumerable)whereVisible; - var castChildrenAsList = (IEnumerable)childrenAsList; - Assert.AreEqual(4, castChildrenAsList.Count()); - } + Assert.AreEqual(1, casted.Count()); - [Test] - public void Ancestor_Or_Self() - { - var asDynamic = GetDynamicNode(1173); + } - var result = asDynamic.AncestorOrSelf(); + [Test] + public void Visible() + { + var asDynamicHidden = GetDynamicNode(1046); + var asDynamicVisible = GetDynamicNode(1173); - Assert.IsNotNull(result); + Assert.IsFalse(asDynamicHidden.Visible); + Assert.IsTrue(asDynamicVisible.Visible); + } - Assert.AreEqual((int) 1046, (int) result.Id); - } + [Test] + public void Ensure_TinyMCE_Converted_Type_User_Property() + { + var asDynamic = GetDynamicNode(1173); - [Test] - public void Ancestors_Or_Self() - { - var asDynamic = GetDynamicNode(1174); + Assert.IsTrue(TypeHelper.IsTypeAssignableFrom(asDynamic.Content.GetType())); + Assert.AreEqual("
This is some content
", asDynamic.Content.ToString()); + } - var result = asDynamic.AncestorsOrSelf(); + [Test] + public void Get_Children_With_Pluralized_Alias() + { + var asDynamic = GetDynamicNode(1173); - Assert.IsNotNull(result); + Action doAssert = d => + { + Assert.IsTrue(TypeHelper.IsTypeAssignableFrom(d)); + var casted = (IEnumerable)d; + Assert.AreEqual(2, casted.Count()); + }; - var list = (IEnumerable)result; - Assert.AreEqual(3, list.Count()); - Assert.IsTrue(list.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[] { 1174, 1173, 1046 })); - } + doAssert(asDynamic.Homes); //pluralized alias + doAssert(asDynamic.homes); //pluralized alias + doAssert(asDynamic.CustomDocuments); //pluralized alias + doAssert(asDynamic.customDocuments); //pluralized alias + } - [Test] - public void Ancestors() - { - var asDynamic = GetDynamicNode(1174); + [Test] + public void GetPropertyValue_Non_Reflected() + { + var asDynamic = GetDynamicNode(1174); - var result = asDynamic.Ancestors(); + Assert.AreEqual("Custom data with same property name as the member name", asDynamic.GetPropertyValue("creatorName")); + Assert.AreEqual("Custom data with same property name as the member name", asDynamic.GetPropertyValue("CreatorName")); + } - Assert.IsNotNull(result); + [Test] + public void GetPropertyValue_Reflected() + { + var asDynamic = GetDynamicNode(1174); - var list = (IEnumerable)result; - Assert.AreEqual(2, list.Count()); - Assert.IsTrue(list.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[] { 1173, 1046 })); - } + Assert.AreEqual("admin", asDynamic.GetPropertyValue("@creatorName")); + Assert.AreEqual("admin", asDynamic.GetPropertyValue("@CreatorName")); + } - [Test] - public void Descendants_Or_Self() - { - var asDynamic = GetDynamicNode(1046); + [Test] + public void Get_User_Property_With_Same_Name_As_Member_Property() + { + var asDynamic = GetDynamicNode(1174); - var result = asDynamic.DescendantsOrSelf(); + Assert.AreEqual("Custom data with same property name as the member name", asDynamic.creatorName); - Assert.IsNotNull(result); + //because CreatorName is defined on DynamicNode, it will not return the user defined property + Assert.AreEqual("admin", asDynamic.CreatorName); + } - var list = (IEnumerable)result; - Assert.AreEqual(9, list.Count()); - Assert.IsTrue(list.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[] { 1046, 1173, 1174, 1176, 1175, 4444 })); - } + [Test] + public void Get_Member_Property() + { + var asDynamic = GetDynamicNode(1173); - [Test] - public void Descendants() - { - var asDynamic = GetDynamicNode(1046); + Assert.AreEqual((int)2, (int)asDynamic.Level); + Assert.AreEqual((int)2, (int)asDynamic.level); - var result = asDynamic.Descendants(); + Assert.AreEqual((int)1046, (int)asDynamic.ParentId); + Assert.AreEqual((int)1046, (int)asDynamic.parentId); + } - Assert.IsNotNull(result); + [Test] + public void Get_Children() + { + var asDynamic = GetDynamicNode(1173); - var list = (IEnumerable)result; - Assert.AreEqual(8, list.Count()); - Assert.IsTrue(list.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[] { 1173, 1174, 1176, 1175, 4444 })); - } + var children = asDynamic.Children; + Assert.IsTrue(TypeHelper.IsTypeAssignableFrom(children)); - [Test] - public void Up() - { - var asDynamic = GetDynamicNode(1173); + var childrenAsList = asDynamic.ChildrenAsList; //test ChildrenAsList too + Assert.IsTrue(TypeHelper.IsTypeAssignableFrom(childrenAsList)); - var result = asDynamic.Up(); + var castChildren = (IEnumerable)children; + Assert.AreEqual(4, castChildren.Count()); - Assert.IsNotNull(result); + var castChildrenAsList = (IEnumerable)childrenAsList; + Assert.AreEqual(4, castChildrenAsList.Count()); + } - Assert.AreEqual((int) 1046, (int) result.Id); - } + [Test] + public void Ancestor_Or_Self() + { + var asDynamic = GetDynamicNode(1173); - [Test] - public void Down() - { - var asDynamic = GetDynamicNode(1173); + var result = asDynamic.AncestorOrSelf(); - var result = asDynamic.Down(); + Assert.IsNotNull(result); - Assert.IsNotNull(result); + Assert.AreEqual((int)1046, (int)result.Id); + } - Assert.AreEqual((int) 1174, (int) result.Id); - } + [Test] + public void Ancestors_Or_Self() + { + var asDynamic = GetDynamicNode(1174); - [Test] - public void Next() - { - var asDynamic = GetDynamicNode(1173); + var result = asDynamic.AncestorsOrSelf(); - var result = asDynamic.Next(); + Assert.IsNotNull(result); - Assert.IsNotNull(result); + var list = (IEnumerable)result; + Assert.AreEqual(3, list.Count()); + Assert.IsTrue(list.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[] { 1174, 1173, 1046 })); + } - Assert.AreEqual((int) 1175, (int) result.Id); - } + [Test] + public void Ancestors() + { + var asDynamic = GetDynamicNode(1174); - [Test] - public void Next_Without_Sibling() - { - var asDynamic = GetDynamicNode(1178); + var result = asDynamic.Ancestors(); - Assert.IsNull(asDynamic.Next()); - } + Assert.IsNotNull(result); - [Test] - public void Previous_Without_Sibling() - { - var asDynamic = GetDynamicNode(1173); + var list = (IEnumerable)result; + Assert.AreEqual(2, list.Count()); + Assert.IsTrue(list.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[] { 1173, 1046 })); + } - Assert.IsNull(asDynamic.Previous()); - } + [Test] + public void Descendants_Or_Self() + { + var asDynamic = GetDynamicNode(1046); - [Test] - public void Previous() - { - var asDynamic = GetDynamicNode(1176); + var result = asDynamic.DescendantsOrSelf(); - var result = asDynamic.Previous(); + Assert.IsNotNull(result); - Assert.IsNotNull(result); + var list = (IEnumerable)result; + Assert.AreEqual(9, list.Count()); + Assert.IsTrue(list.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[] { 1046, 1173, 1174, 1176, 1175, 4444 })); + } - Assert.AreEqual((int) 1174, (int) result.Id); - } - } + [Test] + public void Descendants() + { + var asDynamic = GetDynamicNode(1046); - /// - /// Extension methods used in tests - /// - public static class TestExtensionMethods - { - public static bool ContainsValue(this string s, int val) - { - return s.Contains(val.ToString()); - } - } + var result = asDynamic.Descendants(); + + Assert.IsNotNull(result); + + var list = (IEnumerable)result; + Assert.AreEqual(8, list.Count()); + Assert.IsTrue(list.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[] { 1173, 1174, 1176, 1175, 4444 })); + } + + [Test] + public void Up() + { + var asDynamic = GetDynamicNode(1173); + + var result = asDynamic.Up(); + + Assert.IsNotNull(result); + + Assert.AreEqual((int)1046, (int)result.Id); + } + + [Test] + public void Down() + { + var asDynamic = GetDynamicNode(1173); + + var result = asDynamic.Down(); + + Assert.IsNotNull(result); + + Assert.AreEqual((int)1174, (int)result.Id); + } + + [Test] + public void Next() + { + var asDynamic = GetDynamicNode(1173); + + var result = asDynamic.Next(); + + Assert.IsNotNull(result); + + Assert.AreEqual((int)1175, (int)result.Id); + } + + [Test] + public void Next_Without_Sibling() + { + var asDynamic = GetDynamicNode(1178); + + Assert.IsNull(asDynamic.Next()); + } + + [Test] + public void Previous_Without_Sibling() + { + var asDynamic = GetDynamicNode(1173); + + Assert.IsNull(asDynamic.Previous()); + } + + [Test] + public void Previous() + { + var asDynamic = GetDynamicNode(1176); + + var result = asDynamic.Previous(); + + Assert.IsNotNull(result); + + Assert.AreEqual((int)1174, (int)result.Id); + } + } + + /// + /// Extension methods used in tests + /// + public static class TestExtensionMethods + { + public static bool ContainsValue(this string s, int val) + { + return s.Contains(val.ToString()); + } + } } \ No newline at end of file diff --git a/src/Umbraco.Tests/PublishedContent/DynamicPublishedContentTests.cs b/src/Umbraco.Tests/PublishedContent/DynamicPublishedContentTests.cs index e8bb815802..40049d8d2f 100644 --- a/src/Umbraco.Tests/PublishedContent/DynamicPublishedContentTests.cs +++ b/src/Umbraco.Tests/PublishedContent/DynamicPublishedContentTests.cs @@ -1,7 +1,9 @@ using System; +using System.IO; using System.Linq; using NUnit.Framework; using Umbraco.Core; +using Umbraco.Core.Configuration; using Umbraco.Core.Models; using Umbraco.Core.PropertyEditors; using Umbraco.Web; @@ -24,6 +26,8 @@ namespace Umbraco.Tests.PublishedContent typeof(YesNoPropertyEditorValueConverter) }); + UmbracoSettings.SettingsFilePath = Core.IO.IOHelper.MapPath(Core.IO.SystemDirectories.Config + Path.DirectorySeparatorChar, false); + //need to specify a custom callback for unit tests PublishedContentHelper.GetDataTypeCallback = (docTypeAlias, propertyAlias) => { diff --git a/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs b/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs index 69525d361d..cc7873afbf 100644 --- a/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs +++ b/src/Umbraco.Tests/TestHelpers/SettingsForTests.cs @@ -52,8 +52,6 @@ namespace Umbraco.Tests.TestHelpers SaveSetting("umbracoReservedPaths"); SaveSetting("umbracoReservedUrls"); SaveSetting("umbracoConfigurationStatus"); - - SaveSetting(GlobalSettings.UmbracoConnectionName); } public static bool HideTopLevelNodeFromPath diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index 164713a5f1..dc3f453ab7 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -264,6 +264,7 @@ +