public Item MakeItem(ItemDataAttribute itemData) { string itemName = itemData.Name ?? _fixture.Create <string>("itemName"); _fixture.Customizations.Insert(0, new ItemNameBuilder(itemName)); _fixture.Customizations.Insert(0, new TemplateIdBuilder(itemData.TemplateId)); _fixture.Customizations.Insert(0, new ItemIdBuilder(itemData.ItemId)); if (itemData.HasFields) { _fixture.Customizations.Insert(0, new ItemFieldBuilder(_fixture)); } ItemData data = _fixture.Create <ItemData>(); Database db = _fixture.Create <Database>(); var item = Substitute.For <Item>(data.Definition.ID, data, db); item.Name.Returns(item.InnerData.Definition.Name); item.TemplateID.Returns(item.InnerData.Definition.TemplateID); SetItemFields(item); item.Paths.Returns( _fixture.Build <ItemPath>().FromFactory(() => Substitute.For <ItemPath>(item)) .Create()); return(item); }
public object Create(object request, ISpecimenContext context) { ParameterInfo info = request as ParameterInfo; if (info == null) { return(new NoSpecimen()); } ItemDataAttribute itemData = info.GetCustomAttributes(typeof(ItemDataAttribute)).FirstOrDefault() as ItemDataAttribute; if (itemData == null) { return(new NoSpecimen()); } return(new AutoSitecoreFactory(_fixture).MakeItem(itemData)); }