示例#1
0
        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);
        }
示例#2
0
        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));
        }