public void Should_Return_MergedOptionsAndValuesSuccessfully()
{
var option1 = TestDataProvider.CreateNewLayoutOption();
var option2 = TestDataProvider.CreateNewLayoutOption();
var option3 = TestDataProvider.CreateNewLayoutOption();
var option4 = TestDataProvider.CreateNewLayoutOption();
var option5 = TestDataProvider.CreateNewLayoutOption();
var optionValue1 = TestDataProvider.CreateNewPageOption();
var optionValue2 = TestDataProvider.CreateNewPageOption();
var optionValue3 = TestDataProvider.CreateNewPageOption();
var optionValue4 = TestDataProvider.CreateNewPageOption();
var optionValue5 = TestDataProvider.CreateNewPageOption();
optionValue1.Key = option1.Key;
optionValue2.Key = option2.Key;
option1.Type = option2.Type = option3.Type = option4.Type = option5.Type = OptionType.Text;
optionValue1.Type = optionValue2.Type = optionValue3.Type = optionValue4.Type = optionValue5.Type = OptionType.Text;
option3.DefaultValue = null;
optionValue4.Value = null;
var service = CreateOptionService();
var optionValues = new List<IOptionValueEntity> { optionValue1, optionValue2, optionValue3, optionValue4, optionValue5 };
var options = new List<IOptionEntity> { option1, option2, option3, option4, option5 };
var result = service.GetMergedOptionValues(options, optionValues);
Assert.NotNull(result);
Assert.AreEqual(result.Count, 8);
Assert.AreEqual(6, result.Count(o => o.Value != null));
}