public void First_WithPredicate() { //Assign Item item = _db.GetItem("/sitecore/content/DynamicItem/Test"); string name = "Child2"; dynamic d = new DynamicItem(item); //Act var child = d.Children.First(Dy.Fc(x => x.Name == "Child2")); //Assert Assert.AreEqual("/sitecore/content/DynamicItem/Test/Child2", child.Path); }
public void FirstOrDefault() { //Assign Item item = _db.GetItem("/sitecore/content/DynamicItem/Test"); dynamic d = new DynamicItem(item); //Act var child = d.Children.FirstOrDefault(); //Assert Assert.AreEqual("/sitecore/content/DynamicItem/Test/Child1", child.Path); }
public void DynamicParent_ReturnsParent() { //Assign Item item = _db.GetItem("/sitecore/content/DynamicItem/Test"); dynamic d = new DynamicItem(item); //Act var parent = d.Parent; string path = parent.Path; //Assert Assert.AreEqual("/sitecore/content/DynamicItem", path); }
public void DynamicInfo_ReturnsItemInfo() { //Assign Item item = _db.GetItem("/sitecore/content/DynamicItem/Test"); dynamic d = new DynamicItem(item); //Act string path = d.Path; string name = d.Name; //Assert Assert.AreEqual("/sitecore/content/DynamicItem/Test", path); Assert.AreEqual("Test", name); }
public void DynamicFields_ReturnsFields() { //Assign Item item = _db.GetItem("/sitecore/content/DynamicItem/Test"); dynamic d = new DynamicItem(item); //Act string dateTime = d.DateTime; string text = d.SingleLineText; //Assert Assert.AreEqual("some awesome dynamic content", text); Assert.AreEqual("15/02/2012 02:30:00", dateTime); }
public void DynamicParent_ReturnsChildren() { //Assign Item item = _db.GetItem("/sitecore/content/DynamicItem/Test"); dynamic d = new DynamicItem(item); //Act var children = d.Children; //Assert Assert.AreEqual(3, children.Count()); foreach (var child in d.Children) { string path = child.Path; Assert.IsTrue(path.StartsWith("/sitecore/content/DynamicItem/Test/")); } }
public void Count() { //Assign Item item = _db.GetItem("/sitecore/content/DynamicItem/Test"); dynamic d = new DynamicItem(item); //Act var count = d.Children.Count(); //Assert Assert.AreEqual(3, count); }
public void ForEach() { //Assign Item item = _db.GetItem("/sitecore/content/DynamicItem/Test"); dynamic d = new DynamicItem(item); //Act var children = d.Children; //Assert int total = 0; foreach (var child in children) { total++; switch (total) { case 1: Assert.AreEqual("/sitecore/content/DynamicItem/Test/Child1", child.Path); break; case 2: Assert.AreEqual("/sitecore/content/DynamicItem/Test/Child2", child.Path); break; case 3: Assert.AreEqual("/sitecore/content/DynamicItem/Test/Child3", child.Path); break; } } Assert.AreEqual(3, total); }
public void Where_Select_First_DyamicsTypes() { //Assign Item item = _db.GetItem("/sitecore/content/DynamicItem/Test"); dynamic d = new DynamicItem(item); //Act var child = d.Children.Where(Dy.Fc(x=> x.Name == "Child2")).Select(Dy.FcT(x => new { NewPath = x.Path, NewName = x.Name })).First(); //Assert Assert.AreEqual("/sitecore/content/DynamicItem/Test/Child2", child.NewPath); Assert.AreEqual("Child2", child.NewName); }
public void Select_ToDynamic() { //Assign Item item = _db.GetItem("/sitecore/content/DynamicItem/Test"); dynamic d = new DynamicItem(item); //Act var children = d.Children.Select(Dy.FcT(x => new { Name = x.Name })) as IEnumerable<dynamic>; var child = children.First(); //Assert Assert.AreEqual("Child1", child.Name); }
public void All() { //Assign Item item = _db.GetItem("/sitecore/content/DynamicItem/Test"); dynamic d = new DynamicItem(item); //Act var result1 = d.Children.All(Dy.Fc(x => x.Name.StartsWith("Child"))); var result2 = d.Children.All(Dy.Fc(x => x.Name.StartsWith("Child2"))); //Assert Assert.AreEqual(true, result1); Assert.AreEqual(false, result2); }
public void Where() { //Assign Item item = _db.GetItem("/sitecore/content/DynamicItem/Test"); dynamic d = new DynamicItem(item); //Act var child = d.Children.Where(Dy.Fc(x => x.Name == "Child2")).First(); //Assert Assert.AreEqual("/sitecore/content/DynamicItem/Test/Child2", child.Path); }
public void ElementAt() { //Assign Item item = _db.GetItem("/sitecore/content/DynamicItem/Test"); dynamic d = new DynamicItem(item); //Act var child = d.Children.ElementAt(1); //Assert Assert.AreEqual("/sitecore/content/DynamicItem/Test/Child2", child.Path); }
public override bool TryGetMember(GetMemberBinder binder, out object result) { result = null; string name = binder.Name; if (_item.Fields[name] != null) { FieldRenderer render = new FieldRenderer(); render.FieldName = name; render.Item = _item; result = render.Render(); return true; } SitecoreInfoType infoType; if (Enum.TryParse<SitecoreInfoType>(name, out infoType)) { result = SitecoreInfoHandler.GetItemInfo(infoType, _item, null); return true; } switch (name) { case "Parent": result = new DynamicItem(_item.Parent); break; case "Children": result = new DynamicCollection<DynamicItem>(_item.Children.Select(x => new DynamicItem(x)).ToArray()); break; } if (result != null) return true; throw new NotSupportedException("No field of Sitecore info matches the name {0} for item {1}".Formatted(name, _item.Paths.FullPath)); }