Fixes DynamicNode issue not implementing IEnumerable<DynamicNode>

Adds a few unit tests for DynamicDocument/DynamicNode and fixes both to properly support the 'Take' method
as this wasn't really working. Not sure how or why it was working previously. Have also allowed for extension
methods to be executed against either of these objects that accept IQueryable which was not supported before.
This commit is contained in:
Shannon Deminick
2012-08-28 09:20:30 +07:00
parent 4d2b145369
commit bc3a5122dd
7 changed files with 131 additions and 31 deletions

View File

@@ -18,7 +18,58 @@ namespace Umbraco.Tests.DynamicDocument
/// <param name="id"></param>
/// <returns></returns>
protected abstract dynamic GetDynamicNode(int id);
[Test]
public void Children_Order_By_Update_Date()
{
var asDynamic = GetDynamicNode(1173);
var ordered = asDynamic.Children.OrderBy("UpdateDate");
var casted = (IEnumerable<TDocument>)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 Take()
{
var asDynamic = GetDynamicNode(1173);
var ordered = asDynamic.Children.OrderBy("UpdateDate");
var take = ordered.Take(2);
var casted = (IEnumerable<TDocument>)take;
Assert.AreEqual(2, casted.Count());
}
[Test]
public void Ancestors_Where_Visible()
{
var asDynamic = GetDynamicNode(1174);
var whereVisible = asDynamic.Ancestors().Where("Visible");
var casted = (IEnumerable<TDocument>)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()
{