public void NodeList_ReplaceEumerableExtensions()
{
var firstId = 1001;
var skip = 10;
var take = 15;
var baseList = new NodeList<Node>(Enumerable.Range(firstId, 42));
var skipedList = baseList.Skip(skip);
var takenList = skipedList.Take(take);
var castList = takenList.Cast<ContentType>();
Assert.IsInstanceOfType(skipedList, typeof(NodeList<Node>), "List#1 is not an instance of NodeList<Node> but " + skipedList.GetType().FullName);
Assert.IsInstanceOfType(takenList, typeof(NodeList<Node>), "List#2 is not an instance of NodeList<Node> but " + takenList.GetType().FullName);
Assert.IsInstanceOfType(castList, typeof(NodeList<ContentType>), "List#3 is not an instance of NodeList<Node> but " + castList.GetType().FullName);
Assert.IsTrue(takenList.First().Id == firstId + skip, String.Concat("First id is:", takenList.First().Id, ".Expected: ", firstId + skip));
Assert.IsTrue(takenList.Last().Id == firstId + skip + take - 1, String.Concat("Last id is:", takenList.Last().Id, ".Expected: ", firstId + skip + take - 1));
}