Added better support for Skip for DynamicDocument and DynamicNode and added unit tests.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user