Added better support for Skip for DynamicDocument and DynamicNode and added unit tests.

This commit is contained in:
Shannon Deminick
2012-08-28 09:33:34 +07:00
parent bc3a5122dd
commit 3cd1592abc
3 changed files with 37 additions and 4 deletions

View File

@@ -83,6 +83,11 @@ namespace Umbraco.Core.Dynamics
result = new DynamicDocumentList(this.Take((int)args.First()));
return true;
}
if (name == "Skip")
{
result = new DynamicDocumentList(this.Skip((int)args.First()));
return true;
}
if (name == "InGroupsOf")
{
int groupSize = 0;

View File

@@ -36,16 +36,39 @@ namespace Umbraco.Tests.DynamicDocument
}
[Test]
public void Take()
public void HasProperty()
{
var asDynamic = GetDynamicNode(1173);
var ordered = asDynamic.Children.OrderBy("UpdateDate");
var take = ordered.Take(2);
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<TDocument>)skip;
Assert.AreEqual(2, casted.Count());
Assert.IsTrue(casted.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[]{1177, 1178}));
}
[Test]
public void Take()
{
var asDynamic = GetDynamicNode(1173);
var take = asDynamic.Children.Take(2);
var casted = (IEnumerable<TDocument>)take;
Assert.AreEqual(2, casted.Count());
Assert.IsTrue(casted.Select(x => ((dynamic)x).Id).ContainsAll(new dynamic[] { 1174, 1176 }));
}
[Test]

View File

@@ -84,6 +84,11 @@ namespace umbraco.MacroEngines
result = new DynamicNodeList(this.Take((int)args.First()));
return true;
}
if (name == "Skip")
{
result = new DynamicNodeList(this.Skip((int)args.First()));
return true;
}
if (name == "InGroupsOf")
{
int groupSize = 0;