Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using FluentAssertions;
- using Moq;
- using NUnit.Framework;
- using Sitecore.Data;
- using Sitecore.Data.Items;
- using Sitecore.FakeDb;
- namespace NYL.UnitTests.FakeDB
- {
- [TestFixture]
- public class FakeDbFieldValueTest
- {
- private readonly Mock<IRepository> _repo = new Mock<IRepository>();
- private readonly ID _tplId = ID.NewID;
- private readonly ID _fieldId = ID.NewID;
- private readonly string _fieldName = "F";
- private Db database;
- [SetUp]
- public void SetUp()
- {
- database = FakeDatabase();
- _repo.Setup(m => m.GetListOfItems()).Returns(Mock_GetListOfItems());
- }
- [Test]
- public void Test_FakeDbFieldRetentionViaMock()
- {
- using (database)
- {
- // arrange
- var items = _repo.Object.GetListOfItems();
- // assert
- items.Should().NotBeNull();
- foreach (var item in items)
- {
- // Fields are null after passed back through mock
- item.Fields[_fieldName].Should().NotBeNull();
- item[_fieldName].Should().NotBeNullOrEmpty();
- }
- }
- }
- private Item[] Mock_GetListOfItems()
- {
- using (database)
- {
- var query = string.Format("fast:/sitecore/content/Home//*[@@templateid = '{0}']", _tplId);
- var items = database.Database.SelectItems(query);
- foreach (var item in items)
- {
- // Field Values render fine at creation
- item.Fields[_fieldName].Should().NotBeNull();
- item[_fieldName].Should().NotBeNullOrEmpty();
- }
- return items;
- }
- }
- private Db FakeDatabase()
- {
- return new Db
- {
- new DbTemplate("Child Tpl", _tplId)
- {
- new DbField(_fieldName, _fieldId)
- },
- new DbItem("Home")
- {
- new DbItem("First Child", ID.NewID, _tplId)
- {
- {_fieldName, "Value One"}
- },
- new DbItem("Second Child", ID.NewID, _tplId)
- {
- {_fieldName, "Value Two"}
- }
- }
- };
- }
- }
- public interface IRepository
- {
- Item[] GetListOfItems();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement