diff --git a/src/Fortis.Tests/App_Config/Include/Sitecore.FakeDb.RenderFieldPipeline.config b/src/Fortis.Tests/App_Config/Include/Sitecore.FakeDb.RenderFieldPipeline.config new file mode 100644 index 0000000..e8a9466 --- /dev/null +++ b/src/Fortis.Tests/App_Config/Include/Sitecore.FakeDb.RenderFieldPipeline.config @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Fortis.Tests/Fortis.Tests.csproj b/src/Fortis.Tests/Fortis.Tests.csproj index 79f0740..edccc96 100644 --- a/src/Fortis.Tests/Fortis.Tests.csproj +++ b/src/Fortis.Tests/Fortis.Tests.csproj @@ -179,6 +179,7 @@ + diff --git a/src/Fortis.Tests/Model/Fields/FieldWrapperTestClass.cs b/src/Fortis.Tests/Model/Fields/FieldWrapperTestClass.cs index 4211aed..fce1e70 100644 --- a/src/Fortis.Tests/Model/Fields/FieldWrapperTestClass.cs +++ b/src/Fortis.Tests/Model/Fields/FieldWrapperTestClass.cs @@ -3,7 +3,9 @@ using Fortis.Providers; using NSubstitute; using Sitecore.Data; +using Sitecore.Data.Items; using Sitecore.FakeDb; +using Sitecore.FakeDb.Sites; namespace Fortis.Tests.Model.Fields { @@ -30,15 +32,25 @@ protected FieldWrapperTestClass() this.Field = new DbField(FieldName, ID.NewID); item.Fields.Add(this.Field); this.Db.Add(item); + + // init sitecore context + Sitecore.Context.Site = new FakeSiteContext("website"); + Sitecore.Context.Item = this.Item; } - protected TFieldWrapper FieldWrapper + protected Item Item + { + get { return this.Db.GetItem("/sitecore/content/Test"); } + } + + protected TFieldWrapper FieldWrapper { get { - var item = this.Db.GetItem("/sitecore/content/Test"); - var field = item.Fields[FieldName]; - return (TFieldWrapper) Activator.CreateInstance(typeof (TFieldWrapper), field, this.SpawnProvider); + return (TFieldWrapper) Activator.CreateInstance( + typeof (TFieldWrapper), + this.Item.Fields[FieldName], + this.SpawnProvider); } } diff --git a/src/Fortis.Tests/Model/Fields/RichTextFieldWrapperTests.cs b/src/Fortis.Tests/Model/Fields/RichTextFieldWrapperTests.cs index 6fd9add..7485b66 100644 --- a/src/Fortis.Tests/Model/Fields/RichTextFieldWrapperTests.cs +++ b/src/Fortis.Tests/Model/Fields/RichTextFieldWrapperTests.cs @@ -10,22 +10,20 @@ namespace Fortis.Tests.Model.Fields /// public class RichTextFieldWrapperTests : FieldWrapperTestClass { - //[Theory] - //[InlineData("", "")] - //[InlineData(" ", " ")] - //[InlineData("test", "test")] - //public void Value_SpecificRawValue_ReturnsExpectedHtmlStringValue(string rawValue, string expectedStringValue) - //{ - // var expectedValue = new HtmlString(expectedStringValue); + [Theory] + [InlineData("", "")] + [InlineData(" ", " ")] + [InlineData("test", "test")] + public void Value_SpecificRawValue_ReturnsExpectedHtmlStringValue(string rawValue, string expectedValue) + { + this.Field.Value = rawValue; - // this.Field.Value = rawValue; + var actual = this.FieldWrapper.Value; + // Unable to compare two HtmlString objects here, need to compare strings instead. + Assert.Equal(expectedValue, actual.ToHtmlString()); + } - // var actual = this.FieldWrapper.Value; - - // Assert.Equal(expectedValue, actual); - //} - - [Theory] + [Theory] [InlineData("", false)] [InlineData(" ", false)] [InlineData("test", true)] diff --git a/src/Fortis/Model/Fields/IntegerFieldWrapper.cs b/src/Fortis/Model/Fields/IntegerFieldWrapper.cs index 9f54f3f..7f88542 100644 --- a/src/Fortis/Model/Fields/IntegerFieldWrapper.cs +++ b/src/Fortis/Model/Fields/IntegerFieldWrapper.cs @@ -29,7 +29,7 @@ public long Value get { InitializeValue(); - return _value.Value; + return _value ?? default(long); } } diff --git a/src/Fortis/Model/Fields/ListFieldWrapper.cs b/src/Fortis/Model/Fields/ListFieldWrapper.cs index 9d0a3dd..f80359a 100644 --- a/src/Fortis/Model/Fields/ListFieldWrapper.cs +++ b/src/Fortis/Model/Fields/ListFieldWrapper.cs @@ -62,31 +62,39 @@ public IEnumerable Value { get { - if (_ids == null) - { - var listField = (MultilistField)Field; - var ids = new List(); - - foreach (var id in listField.Items) - { - Guid guid; - - if (Guid.TryParse(id, out guid)) - { - ids.Add(guid); - } - } - - _ids = ids; - } - + this.InitializeValue(); return _ids; } } public override bool HasValue { - get { return _ids != null && Value.Any(); } + get + { + this.InitializeValue(); + return _ids.Any(); + } } + + private void InitializeValue() + { + if (_ids == null) + { + var listField = (MultilistField)Field; + var ids = new List(); + + foreach (var id in listField.Items) + { + Guid guid; + + if (Guid.TryParse(id, out guid)) + { + ids.Add(guid); + } + } + + _ids = ids; + } + } } } \ No newline at end of file diff --git a/src/Fortis/Model/Fields/NumberFieldWrapper.cs b/src/Fortis/Model/Fields/NumberFieldWrapper.cs index 015f688..19938f2 100644 --- a/src/Fortis/Model/Fields/NumberFieldWrapper.cs +++ b/src/Fortis/Model/Fields/NumberFieldWrapper.cs @@ -34,7 +34,7 @@ public float Value { this.InitializeValue(); - return _value.Value; + return _value ?? default(float); } }