Add tests for Models and ValueConverter
This commit is contained in:
@@ -49,7 +49,9 @@
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Models\FieldsetTests.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="PropertyValueConverter\PropertyValueConverterTests.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Data\sample-1.json" />
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{"fieldsets":[{"alias":"archUi","properties":[{"alias":"blurb","value":"A blurb here"},{"alias":"boxHeadline","value":"Box 1 Title"},{"alias":"link","value":"3175"},{"alias":"show","value":"1"}],"remove":false,"collapse":true,"isValid":true},{"alias":"archUi","properties":[{"alias":"boxHeadline","value":"Another Box"},{"alias":"blurb","value":"Some content"},{"alias":"link","value":"3175"},{"alias":"show","value":"0"}],"remove":false,"collapse":true,"isValid":true}]}
|
||||
@@ -0,0 +1,64 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Archetype.Umbraco.PropertyConverters;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace Archetype.Tests.Models
|
||||
{
|
||||
|
||||
[TestFixture]
|
||||
public class FieldsetTests
|
||||
{
|
||||
|
||||
private string _sampleJson;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
_sampleJson = File.ReadAllText("..\\..\\Data\\sample-1.json");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Get_Fieldset_Property_By_Alias()
|
||||
{
|
||||
var converter = new ArchetypeValueConverter();
|
||||
var result = (Archetype.Umbraco.Models.Archetype)converter.ConvertDataToSource(null, _sampleJson, false);
|
||||
|
||||
var fieldset = result.Fieldsets.First();
|
||||
var propertyValue = fieldset.GetValue("boxHeadline");
|
||||
|
||||
Assert.That(propertyValue == "Box 1 Title");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Convert_Property_Value_Types()
|
||||
{
|
||||
var converter = new ArchetypeValueConverter();
|
||||
var result = (Archetype.Umbraco.Models.Archetype)converter.ConvertDataToSource(null, _sampleJson, false);
|
||||
|
||||
var fieldset = result.Fieldsets.First();
|
||||
|
||||
Assert.That(fieldset.GetValue<int>("link") == 3175);
|
||||
Assert.That(fieldset.GetValue<bool>("show") == true);
|
||||
Assert.That(fieldset.GetValue<string>("blurb") == "A blurb here");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Returns_String_When_No_Type_Specified()
|
||||
{
|
||||
var converter = new ArchetypeValueConverter();
|
||||
var result = (Archetype.Umbraco.Models.Archetype)converter.ConvertDataToSource(null, _sampleJson, false);
|
||||
|
||||
var fieldset = result.Fieldsets.First();
|
||||
|
||||
var property = fieldset.GetValue("link");
|
||||
Assert.That(property is string);
|
||||
Assert.That(property == "3175");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Archetype.Umbraco.PropertyConverters;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core.Models.PublishedContent;
|
||||
|
||||
namespace Archetype.Tests.PropertyValueConverter
|
||||
{
|
||||
[TestFixture]
|
||||
public class PropertyValueConverterTests
|
||||
{
|
||||
|
||||
private string _sampleJson;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
_sampleJson = File.ReadAllText("..\\..\\Data\\sample-1.json");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Returns_Null_When_Data_Is_Null()
|
||||
{
|
||||
var converter = new ArchetypeValueConverter();
|
||||
var result = converter.ConvertDataToSource(null, null, false);
|
||||
|
||||
Assert.IsNull(result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Returns_Empty_String_When_Data_Is_Empty_String()
|
||||
{
|
||||
var data = "";
|
||||
var converter = new ArchetypeValueConverter();
|
||||
var result = converter.ConvertDataToSource(null, data, false);
|
||||
|
||||
Assert.AreEqual("", result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Returns_Original_String_When_Data_Is_Invalid_Json()
|
||||
{
|
||||
var data = "{ invalid";
|
||||
var converter = new ArchetypeValueConverter();
|
||||
var result = converter.ConvertDataToSource(null, data, false);
|
||||
|
||||
Assert.AreEqual(data, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Serialize_From_Json_Model()
|
||||
{
|
||||
var converter = new ArchetypeValueConverter();
|
||||
var result = (Archetype.Umbraco.Models.Archetype)converter.ConvertDataToSource(null, _sampleJson, false);
|
||||
|
||||
Assert.That(result != null);
|
||||
Assert.That(result.Fieldsets.Count() == 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user