Advertisement
robincurts

Untitled

Oct 10th, 2015
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.63 KB | None | 0 0
  1. using System;
  2. using FluentAssertions;
  3. using Moq;
  4. using NUnit.Framework;
  5. using Sitecore.Data;
  6. using Sitecore.Data.Items;
  7. using Sitecore.FakeDb;
  8.  
  9. namespace NYL.UnitTests.FakeDB
  10. {
  11.     [TestFixture]
  12.     public class FakeDbFieldValueTest
  13.     {
  14.         private readonly Mock<IRepository> _repo = new Mock<IRepository>();
  15.         private readonly ID _tplId = ID.NewID;
  16.         private readonly ID _fieldId = ID.NewID;
  17.         private readonly string _fieldName = "F";
  18.         private Db database;
  19.        
  20.         [SetUp]
  21.         public void SetUp()
  22.         {
  23.             database = FakeDatabase();
  24.             _repo.Setup(m => m.GetListOfItems()).Returns(Mock_GetListOfItems());
  25.         }
  26.  
  27.         [Test]
  28.         public void Test_FakeDbFieldRetentionViaMock()
  29.         {
  30.             using (database)
  31.             {
  32.                 // arrange
  33.                 var items = _repo.Object.GetListOfItems();
  34.  
  35.                 // assert
  36.                 items.Should().NotBeNull();
  37.  
  38.                 foreach (var item in items)
  39.                 {
  40.                     // Fields are null after passed back through mock
  41.                     item.Fields[_fieldName].Should().NotBeNull();
  42.                     item[_fieldName].Should().NotBeNullOrEmpty();
  43.                 }
  44.             }
  45.  
  46.         }
  47.  
  48.         private Item[] Mock_GetListOfItems()
  49.         {
  50.             using (database)
  51.             {
  52.                 var query = string.Format("fast:/sitecore/content/Home//*[@@templateid = '{0}']", _tplId);
  53.                 var items = database.Database.SelectItems(query);
  54.  
  55.                 foreach (var item in items)
  56.                 {
  57.                     // Field Values render fine at creation
  58.                     item.Fields[_fieldName].Should().NotBeNull();
  59.                     item[_fieldName].Should().NotBeNullOrEmpty();
  60.                 }
  61.  
  62.                 return items;
  63.             }
  64.         }
  65.  
  66.         private Db FakeDatabase()
  67.         {
  68.             return new Db
  69.             {
  70.                 new DbTemplate("Child Tpl", _tplId)
  71.                 {
  72.                     new DbField(_fieldName, _fieldId)
  73.                 },
  74.                 new DbItem("Home")
  75.                 {
  76.                     new DbItem("First Child", ID.NewID, _tplId)
  77.                     {
  78.                         {_fieldName, "Value One"}
  79.                     },
  80.                     new DbItem("Second Child", ID.NewID, _tplId)
  81.                     {
  82.                         {_fieldName, "Value Two"}
  83.                     }
  84.                 }
  85.             };
  86.         }
  87.  
  88.  
  89.     }
  90.  
  91.     public interface IRepository
  92.     {
  93.         Item[] GetListOfItems();
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement